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


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

См. также раздел

Отправка URB

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate