IRP_MN_QUERY_DEVICE_TEXT

Le gestionnaire PnP utilise cette IRP pour obtenir la description ou les informations d’emplacement d’un appareil.

Les pilotes de bus doivent gérer cette demande pour leurs appareils enfants si le bus prend en charge ces informations. Les pilotes de fonction et de filtre ne gèrent pas cette IRP.

Valeur

0x0C

Code majeur

IRP_MJ_PNP

Date d’envoi

Le gestionnaire PnP envoie deux de ces IRP lorsqu’un appareil est énuméré : l’un pour interroger la description de l’appareil et l’autre pour interroger les informations d’emplacement.

Le gestionnaire PnP envoie cette IRP à IRQL PASSIVE_LEVEL dans un contexte de thread arbitraire.

Paramètres d’entrée

Le membre Parameters.QueryDeviceText.DeviceTextType de la structure IO_STACK_LOCATION est une valeur DEVICE_TEXT_TYPE spécifiant la chaîne demandée. Les valeurs possibles pour DEVICE_TEXT_TYPE incluent DeviceTextDescription et DeviceTextLocationInformation.

Parameters.QueryDeviceText.LocaleId est un LCID qui spécifie les paramètres régionaux pour le texte demandé.

Paramètres de sortie

Retourné dans le bloc de status d’E/S.

Bloc d’état E/S

Un pilote définit Irp-IoStatus.Status> sur STATUS_SUCCESS ou sur un status d’erreur approprié.

En cas de réussite, un pilote de bus définit Irp-IoStatus.Information> sur un pointeur vers un bloc de mémoire alloué par le pilote contenant une mémoire tampon WCHAR avec les informations demandées. En cas d’erreur, le pilote de bus définit Irp-IoStatus.Information> sur zéro.

Opération

Les conducteurs de bus sont vivement encouragés à retourner des descriptions d’appareils pour leurs appareils enfants. Cette chaîne s’affiche dans la fenêtre contextuelle Nouveau matériel trouvé si aucune correspondance INF n’est trouvée pour l’appareil.

Les conducteurs de bus sont également encouragés à retourner LocationInformation pour leurs appareils enfants, mais ces informations sont facultatives. Le format de cette chaîne dépend du bus. Le Gestionnaire de périphériques affiche cette chaîne sous l’onglet propriétés générales de l’appareil. Les fournisseurs doivent choisir une chaîne qui transmet des informations utiles aux utilisateurs et au personnel du support technique. Par exemple, pour PCI, la chaîne contient le bus, l’appareil et la fonction. Pour carte PC, la chaîne contient l’emplacement.

Si un pilote de bus retourne des informations en réponse à cette IRP, il alloue une chaîne Unicode terminée par NULL à partir de la mémoire paginée. Le gestionnaire PnP libère la chaîne quand elle n’est plus nécessaire.

Si un appareil ne fournit pas de description ou d’informations d’emplacement, le pilote de bus parent de l’appareil effectue l’IRP (IoCompleteRequest) sans modifier Irp-IoStatus.Status> ou Irp-IoStatus.Information>.

Les pilotes de fonction et de filtre ne gèrent pas cette IRP ; ils le passent au pilote inférieur suivant sans modification de Irp-IoStatus>.

Les pilotes des bus qui prennent en charge différentes chaînes de texte pour différents paramètres régionaux doivent être en mesure de gérer une demande pour une langue qui n’est pas explicitement prise en charge par l’appareil. Dans ce cas, le pilote de bus doit retourner la correspondance la plus proche pour les paramètres régionaux ou doit secours et retourner une chaîne de paramètres régionaux prise en charge appropriée.

Consultez Plug-and-Play pour connaître les règles générales de gestion Plug-and-Play irps mineurs.

Envoi de cette IRP

Réservé pour le système. Les pilotes ne doivent pas envoyer cette IRP.

Spécifications

En-tête

Wdm.h (inclure Wdm.h, Ntddk.h ou Ntifs.h)