_URB_CONTROL_VENDOR_OR_CLASS_REQUEST struttura (usb.h)
La struttura _URB_CONTROL_VENDOR_OR_CLASS_REQUEST viene usata dai driver client USB per emettere un comando specifico del fornitore o della classe a un dispositivo, un'interfaccia, un endpoint o un'altra destinazione definita dal dispositivo.
Sintassi
struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
struct _URB_HEADER Hdr;
PVOID Reserved;
ULONG TransferFlags;
ULONG TransferBufferLength;
PVOID TransferBuffer;
PMDL TransferBufferMDL;
struct _URB *UrbLink;
struct _URB_HCD_AREA hca;
UCHAR RequestTypeReservedBits;
UCHAR Request;
USHORT Value;
USHORT Index;
USHORT Reserved1;
};
Members
Hdr
Puntatore a una struttura _URB_HEADER che specifica le informazioni sull'intestazione DELL'AREA. Hdr.Function deve essere uno dei URB_FUNCTION_CLASS_XXX o URB_FUNCTION_VENDOR_XXX GET_STATUS e Hdr.Length deve essere sizeof(_URB_CONTROL_VENDOR_OR_CLASS_REQUEST)
.
Reserved
TransferFlags
Specifica zero, uno o una combinazione dei flag seguenti:
Valore | Significato |
---|---|
|
È impostato per richiedere i dati da un dispositivo. Per trasferire i dati in un dispositivo, questo flag deve essere chiaro. Il flag deve essere impostato se la pipe è una pipe di trasferimento di interruzioni. |
|
È impostato per indirizzare il controller host a non restituire un errore quando riceve un pacchetto dal dispositivo che è più breve rispetto alle dimensioni massime del pacchetto per l'endpoint. Le dimensioni massime dei pacchetti per l'endpoint vengono segnalate nel membro bMaxPacketSize0 della struttura USB_DEVICE_DESCRIPTOR (descrittore dispositivo) per l'endpoint di controllo predefinito. Per un endpoint di controllo non predefinito, le dimensioni massime dei pacchetti sono impostate nel membro wMaxPacketSize della struttura USB_ENDPOINT_DESCRIPTOR (descrittore dell'endpoint).
Quando il controller host riceve un pacchetto la cui lunghezza è più breve del valore wMaxPacketSize in un endpoint di controllo, il comportamento è il seguente a seconda del tipo di controller host:
Questo flag non deve essere impostato a meno che non sia impostato anche USBD_TRANSFER_DIRECTION_IN. |
TransferBufferLength
Specifica la lunghezza, in byte, del buffer specificato in TransferBuffer o descritto in TransferBufferMDL. Il driver del controller host restituisce il numero di byte inviati a o letti dalla pipe in questo membro.
TransferBuffer
Puntatore a un buffer residente per il trasferimento o null se viene fornito un MDL in TransferBufferMDL. Il contenuto di questo buffer dipende dal valore di TransferFlags. Se USBD_TRANSFER_DIRECTION_IN viene specificato questo buffer conterrà i dati letti dal dispositivo restituito dal driver del controller host. In caso contrario, questo buffer contiene dati forniti dal driver per il trasferimento nel dispositivo.
TransferBufferMDL
Puntatore a un MDL che descrive un buffer residente o è NULL se viene fornito un buffer in TransferBuffer. Il contenuto del buffer dipende dal valore di TransferFlags. Se viene specificato USBD_TRANSFER_DIRECTION_IN, il buffer descritto conterrà i dati letti dal dispositivo restituito dal driver del controller host. In caso contrario, il buffer contiene dati forniti dal driver per il trasferimento nel dispositivo. Questa MDL deve essere allocata dal pool non a pagina.
UrbLink
Riservato. Non usare.
hca
Riservato. Non usare.
RequestTypeReservedBits
Riservato. Non usare.
Request
Specifica il codice di richiesta definito dal fornitore o USB per il dispositivo, l'interfaccia, l'endpoint o un'altra destinazione definita dal dispositivo.
Value
Specifica un valore, specifico per Request, che diventa parte del pacchetto di installazione definito da USB per la destinazione. Questo valore è definito dall'autore del codice usato in Request.
Index
Specifica l'indice definito dal dispositivo, restituito da una richiesta di configurazione riuscita, se la richiesta è per un endpoint o un'interfaccia. In caso contrario, l'indice deve essere zero.
Reserved1
Riservato. Non usare.
Commenti
I driver possono usare il formato di routine del servizio UsbBuildVendorRequest .
I membri riservati di questa struttura devono essere considerati opachi e sono riservati per l'uso del sistema.
Requisiti
Requisito | Valore |
---|---|
Intestazione | usb.h (include Usb.h) |