Condividi tramite


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
ERROR_INVALID_HANDLE
Il chiamante ha passato NULL nel parametro InterfaceHandle .
ERROR_INVALID_PARAMETER
Il chiamante ha passato NULL nel parametro PipeInformation ; Impossibile trovare il descrittore di interfaccia per l'handle specificato in InterfaceHandle.
ERROR_NO_MORE_ITEMS
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

Vedi anche

WINUSB_PIPE_INFORMATION

WinUSB

Funzioni WinUSB

WinUsb_Initialize