Share via


fonction HidP_GetCollectionDescription (hidpddi.h)

Remplit un bloc de description d’appareil avec la description de la collection et les informations d’ID de rapport correspondantes pour le descripteur de rapport spécifié. Un minidriver HID n’a généralement pas besoin d’appeler cette fonction. Au lieu de cela, il retourne le descripteur de rapport au pilote Hidclass en réponse à IOCTL_HID_GET_REPORT_DESCRIPTOR.

Syntaxe

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

Paramètres

[in] ReportDesc

Pointeur vers un tableau UCHAR qui contient le descripteur de rapport brut.

[in] DescLength

Longueur du tableau de descripteur de rapport.

[in] PoolType

Valeur POOL_TYPE qui indique le type de pool à partir duquel la mémoire de la liste liée est allouée. Cela inclut chaque élément de tableau HIDP_COLLECTION_DESC de HIDP_DEVICE_DESC, chaque HIDP_PREPARSED_DATA dans chaque HIDP_COLLECTION_DESC, chaque élément de tableau HIDP_REPORT_IDS de HIDP_DEVICE_DESC.

[out] DeviceDescription

Pointeur vers une structure HIDP_DEVICE_DESC remplie avec un bloc de description d’appareil rempli de descripteurs de collection sous forme de listes liées. Il s’agit d’une structure allouée par l’appelant. Toutefois, ses éléments de tableau HIDP_COLLECTION_DESC et HIDP_REPORT_IDS éléments de tableau sont alloués par cette fonction.

Valeur retournée

HidP_GetCollectionDescription pouvez retourner l’une des valeurs suivantes : TRUE s’il remplit correctement le bloc de description de l’appareil. Sinon, il retourne FALSE.

Valeur retournée Description
STATUS_SUCCESS
Analyse réussie du descripteur de rapport et allocation des blocs de mémoire nécessaires pour décrire l’appareil.
STATUS_NO_DATA_DETECTED
Impossible de trouver des collections de niveau supérieur dans le descripteur de rapport.
STATUS_COULD_NOT_INTERPRET
Une erreur a été détectée dans le descripteur de rapport. Consultez le code d’erreur dans le champ Dbg de la structure HIDP_DEVICE_DESC .
STATUS_BUFFER_TOO_SMALL
Trouvé la fin du descripteur de rapport quand il s’attendait à plus de données.
STATUS_INSUFFICIENT_RESOURCES
Échec de l’allocation de mémoire.
STATUS_ILLEGAL_INSTRUCTION
Échec de l’analyse d’un élément dans le descripteur de rapport.
HIDP_STATUS_INVALID_REPORT_TYPE
L’ID de rapport 0 a été trouvé dans le descripteur.

Remarques

Pour un descripteur de rapport brut spécifié par le paramètre ReportDesc , HidP_GetCollectionDescription remplit le bloc DeviceDescription avec une liste liée allouée par l’appelant descripteurs de collection et les informations d’ID de rapport correspondantes qui sont décrites par le descripteur de rapport donné. La mémoire pour les informations de collection et les informations ReportID est allouée en fonction de la valeur PoolType .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 2000 et versions ultérieures de Windows.
Plateforme cible Universal
En-tête hidpddi.h (inclure Hidpddi.h)
Bibliothèque Hidparse.lib
IRQL <= DISPATCH_LEVEL