Сорри за небольшой оффтоп (модератор, пни, плз, если неправ, в нужный топик - я не нашел более подходящего), но здесь приведены копозиты из стандарных классов. А у меня немного другая проблема: хочу композит CDC+Generic, причем для Generic надо писать драйвер. Устройство бвло простым - драйвер работал, успешно получая дескриптор конфигурации, парсил его и перечислял конечные точки. А когда я пытаюсь поставить тот же драйвер для части составного устройства, драйвер затыкается на получении дескриптора конфигурации с ошибкой STATUS_DEVICE_NOT_READY ((NTSTATUS)0xC00000A3).
Мысли идут по двум путям:
1. обойтись без дескриптора конфигурации, но тогда как перечислить конечные точки интерфейса?
2. Получить парента (сам композитный девайс) (как?), и как тогда определить, к какому MI меня подключили?
При этом CDC драйсер ставиться нормально. Драйвер слизал из скелета Агурова.
В программировании на нулевом кольце почти новичок, заранее спсб за любую подсказку
Код
UsbBuildGetDescriptorRequest(
urb,
(USHORT) sizeof(struct _URB_CONTROL_DESCRIPTOR_REQUEST),
USB_CONFIGURATION_DESCRIPTOR_TYPE,
0,
0,
configurationDescriptor,
NULL,
sizeof(USB_CONFIGURATION_DESCRIPTOR),
NULL);
ntStatus = DoCallUSBD(DeviceObject, urb, FALSE, NULL); // <===== вот тут возврат "NOT READY"
Сообщение отредактировал Remix - Feb 11 2009, 08:39