функция USBD_AssignUrbToIoStackLocation (usbdlib.h)
Подпрограмма USBD_AssignUrbToIoStackLocation вызывается драйвером клиента, чтобы связать URB со следующим расположением стека IRP.
Синтаксис
void USBD_AssignUrbToIoStackLocation(
[in] USBD_HANDLE USBDHandle,
[in] PIO_STACK_LOCATION IoStackLocation,
[in] PURB Urb
);
Параметры
[in] USBDHandle
Дескриптор USBD, полученный при предыдущем вызове подпрограммы USBD_CreateHandle .
[in] IoStackLocation
Указатель на следующее расположение стека IRP (IO_STACK_LOCATION). Драйвер клиента получил указатель на расположение стека в предыдущем вызове IoGetNextIrpStackLocation.
[in] Urb
Указатель на структуру URB , выделенную USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild или USBD_SelectInterfaceUrbAllocateAndBuild.
Возвращаемое значение
None
Remarks
Если драйвер клиента выделил URB путем вызова USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild или USBD_SelectInterfaceUrbAllocateAndBuild, драйвер должен вызвать USBD_AssignUrbToIoStackLocation , чтобы связать URB с IO_STACK_LOCATION , связанными с IRP. Для URB, выделенных этими подпрограммами, USBD_AssignUrbToIoStackLocation заменяет параметр Parameters.Others.Argument1IO_STACK_LOCATION на URB. (см . IOCTL_INTERNAL_USB_SUBMIT_URB).
Драйвер клиента не должен вызывать USBD_AssignUrbToIoStackLocation для URB, выделенной с помощью других механизмов, таких как выделение URB в стеке. В противном случае стек usb-драйверов создает проверку ошибок.
Драйвер клиента должен вызвать USBD_AssignUrbToIoStackLocation перед вызовом IoCallDriver для отправки запроса. USBD_AssignUrbToIoStackLocation заполняет следующее расположение стека IRP urb. Подпрограмма также обновляет элемент FileObjectIO_STACK_LOCATION.
Пример кода см. в разделе Отправка URB.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Требуется WDK для Windows 8. Предназначен для Windows Vista и более поздних версий операционной системы Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | usbdlib.h |
Библиотека | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |
См. также раздел
USBD_SelectConfigUrbAllocateAndBuild