Condividi tramite


funzione HidP_GetCollectionDescription (hidpddi.h)

Riempie un blocco di descrizione del dispositivo con la descrizione della raccolta e le informazioni corrispondenti sull'ID del report per il descrittore di report specificato. Un minidriver HID in genere non deve chiamare questa funzione. Restituisce invece il descrittore del report al driver Hidclass in risposta a IOCTL_HID_GET_REPORT_DESCRIPTOR.

Sintassi

NTSTATUS HidP_GetCollectionDescription(
  [in]  PHIDP_REPORT_DESCRIPTOR ReportDesc,
  [in]  ULONG                   DescLength,
  [in]  POOL_TYPE               PoolType,
  [out] PHIDP_DEVICE_DESC       DeviceDescription
);

Parametri

[in] ReportDesc

Puntatore a una matrice UCHAR contenente il descrittore di report non elaborato.

[in] DescLength

Lunghezza della matrice del descrittore del report.

[in] PoolType

Valore POOL_TYPEche indica il tipo di pool da cui viene allocata la memoria per l'elenco collegato. Sono inclusi ogni elemento matrice HIDP_COLLECTION_DESC di HIDP_DEVICE_DESC, ogni HIDP_PREPARSED_DATA in ogni HIDP_COLLECTION_DESC, ogni elemento della matrice HIDP_REPORT_IDS di HIDP_DEVICE_DESC.

[out] DeviceDescription

Puntatore a una struttura HIDP_DEVICE_DESC popolata con il blocco di descrizione del dispositivo compilato in descrittori di raccolta come elenchi collegati. Si tratta di una struttura allocata dal chiamante. Tuttavia, i relativi elementi matrice HIDP_COLLECTION_DESC e gli elementi della matrice HIDP_REPORT_IDS vengono allocati da questa funzione.

Valore restituito

HidP_GetCollectionDescription possibile restituire uno di questi valori: TRUE se viene riempito correttamente il blocco di descrizione del dispositivo. In caso contrario, restituisce FALSE.

Valore restituito Descrizione
STATUS_SUCCESS
Il descrittore del report è stato analizzato correttamente e allocato i blocchi di memoria necessari per descrivere il dispositivo.
STATUS_NO_DATA_DETECTED
Impossibile trovare raccolte di livello superiore nel descrittore del report.
STATUS_COULD_NOT_INTERPRET
È stato rilevato un errore nel descrittore del report. Vedere il codice di errore nel campo Dbg della struttura HIDP_DEVICE_DESC.
STATUS_BUFFER_TOO_SMALL
È stata trovata la fine del descrittore del report quando si prevede un maggior numero di dati.
STATUS_INSUFFICIENT_RESOURCES
Impossibile allocare memoria.
STATUS_ILLEGAL_INSTRUCTION
Impossibile analizzare un elemento nel descrittore del report.
HIDP_STATUS_INVALID_REPORT_TYPE
L'ID del report 0 è stato trovato nel descrittore.

Osservazioni

Per un descrittore di report non elaborato specificato dal parametro ReportDesc, HidP_GetCollectionDescription compila il blocco DeviceDescription con un elenco collegato allocato dal chiamante dei descrittori di raccolta e le informazioni corrispondenti sull'ID report descritte dal descrittore del report specificato. La memoria per le informazioni sulla raccolta e le informazioni reportID vengono allocate in base al valore PoolType.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows 2000 e versioni successive di Windows.
piattaforma di destinazione Universale
intestazione hidpddi.h (include Hidpddi.h)
libreria Hidparse.lib
IRQL <= DISPATCH_LEVEL