funzione WinUsb_QueryPipe (winusb.h)
La funzione WinUsb_QueryPipe recupera informazioni sull'endpoint specificato e sulla pipe associata per un'interfaccia.
Sintassi
BOOL WinUsb_QueryPipe(
[in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
[in] UCHAR AlternateInterfaceNumber,
[in] UCHAR PipeIndex,
[out] PWINUSB_PIPE_INFORMATION PipeInformation
);
Parametri
[in] InterfaceHandle
Handle opaco per un'interfaccia che contiene l'endpoint a cui è associata la pipe.
Per eseguire una query sulla pipe associata a un endpoint nella prima interfaccia, usare l'handle restituito da WinUsb_Initialize. Per tutte le altre interfacce, usare l'handle per l'interfaccia di destinazione, recuperata da WinUsb_GetAssociatedInterface.
[in] AlternateInterfaceNumber
Valore che specifica l'interfaccia alternativa per cui restituire le informazioni.
[in] PipeIndex
Valore che specifica la pipe per restituire informazioni. Questo valore non corrisponde al campo bEndpointAddress nel descrittore dell'endpoint. Un valore PipeIndex pari a 0 indica il primo endpoint associato all'interfaccia, un valore pari a 1 indica il secondo endpoint e così via. PipeIndex deve essere minore del valore nel campo bNumEndpoints del descrittore di interfaccia.
[out] PipeInformation
Puntatore, nell'output, a una struttura WINUSB_PIPE_INFORMATION allocata dal chiamante che contiene informazioni sulla pipe.
Valore restituito
WinUsb_QueryPipe restituisceTRUE se l'operazione ha esito positivo. In caso contrario, questa funzione restituisce FALSE e il chiamante può recuperare l'errore registrato chiamando GetLastError.
GetLastError può restituire il codice di errore seguente.
Codice restituito | Descrizione |
---|---|
|
Il chiamante ha passato NULL nel parametro InterfaceHandle . |
|
Il chiamante ha passato NULL nel parametro PipeInformation ; Impossibile trovare il descrittore di interfaccia per l'handle specificato in InterfaceHandle. |
|
Il valore passato nel parametro PipeIndex è maggiore del valore bNumEndpoints del descrittore di interfaccia; Impossibile trovare il descrittore dell'endpoint per l'interfaccia specificata. |
Commenti
La funzione WinUsb_QueryPipe non recupera informazioni sulla pipe del controllo.
Ogni interfaccia nel dispositivo USB può avere più endpoint. Per comunicare con ognuno di questi endpoint, il driver del bus crea pipe per ogni endpoint nell'interfaccia. Gli indici pipe sono in base zero. Pertanto, per n numero di endpoint, gli indici delle pipe vengono impostati da n-1. WinUsb_QueryPipe analizza il descrittore di configurazione per ottenere l'interfaccia specificata dal chiamante. Cerca nel descrittore di interfaccia il descrittore dell'endpoint associato alla pipe specificata dal chiamante. Se l'endpoint viene trovato, la funzione popola la struttura WINUSB_PIPE_INFORMATION allocata dal chiamante con le informazioni del descrittore dell'endpoint.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | winusb.h (include Winusb.h) |
Libreria | Winusb.lib |
DLL | Winusb.dll |