Função USBD_AssignUrbToIoStackLocation (usbdlib.h)

A rotina USBD_AssignUrbToIoStackLocation é chamada por um driver cliente para associar um URB ao próximo local de pilha do IRP.

Sintaxe

void USBD_AssignUrbToIoStackLocation(
  [in] USBD_HANDLE        USBDHandle,
  [in] PIO_STACK_LOCATION IoStackLocation,
  [in] PURB               Urb
);

Parâmetros

[in] USBDHandle

Um identificador USBD recuperado em uma chamada anterior para a rotina USBD_CreateHandle .

[in] IoStackLocation

Ponteiro para o próximo local de pilha do IRP (IO_STACK_LOCATION). O driver cliente recebeu um ponteiro para o local da pilha em uma chamada anterior para IoGetNextIrpStackLocation.

[in] Urb

Ponteiro para a estrutura URB alocada por USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild ou USBD_SelectInterfaceUrbAllocateAndBuild.

Retornar valor

Nenhum

Comentários

Se o driver cliente alocou um URB chamando USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild ou USBD_SelectInterfaceUrbAllocateAndBuild, o driver deverá chamar USBD_AssignUrbToIoStackLocation para associar o URB a IO_STACK_LOCATION associados ao IRP. Para URBs alocados por essas rotinas, USBD_AssignUrbToIoStackLocation substitui a configuração Parameters.Others.Argument1 de IO_STACK_LOCATION para a URB. (consulte IOCTL_INTERNAL_USB_SUBMIT_URB).

O driver cliente não deve chamar USBD_AssignUrbToIoStackLocation para um URB alocado usando outros mecanismos, como alocar o URB na pilha. Caso contrário, a pilha de driver USB gera uma verificação de bugs.

O driver cliente deve chamar USBD_AssignUrbToIoStackLocation antes de chamar IoCallDriver para enviar a solicitação. USBD_AssignUrbToIoStackLocation preenche o próximo local de pilha do IRP com o URB. A rotina também atualiza o membro FileObject do IO_STACK_LOCATION.

Para obter um exemplo de código, consulte Como enviar um URB.

Requisitos

Requisito Valor
Cliente mínimo com suporte Requer WDK para Windows 8. Tem como destino o Windows Vista e versões posteriores do sistema operacional Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho usbdlib.h
Biblioteca Usbdex.lib
IRQL <=DISPATCH_LEVEL

Confira também

Como enviar um URB

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate