Поделиться через


функция 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.

Возвращаемое значение

Никакой

Замечания

Если драйвер клиента выделил URB путем вызова USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuildили USBD_SelectInterfaceUrbAllocateAndBuild, драйвер должен вызвать USBD_AssignUrbToIoStackLocation связать URB с IO_STACK_LOCATION, связанной с IRP. Для URI, выделенных этими подпрограммами, 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

См. также

Отправка URB

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate