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
USBD_SelectConfigUrbAllocateAndBuild