PGET_LOCATION_STRING fonction de rappel (ntddk.h)

La routine PnpGetLocationString fournit la partie spécifique de l’appareil de la propriété SPDRP_LOCATION_PATHS de l’appareil.

Syntaxe

PGET_LOCATION_STRING PgetLocationString;

NTSTATUS PgetLocationString(
  [in, out] PVOID Context,
  [out]     PZZWSTR *LocationStrings
)
{...}

Paramètres

[in, out] Context

Pointeur vers des informations de contexte spécifiques à l’interface. L’appelant transmet la valeur qui est passée en tant que membre context de la structure PNP_LOCATION_INTERFACE .

[out] LocationStrings

Pointeur vers une séquence de chaînes Unicode terminées par null, qui est terminée par un autre zéro. Chaque chaîne sert de chaîne d’emplacement pour l’appareil. Les pilotes retournent généralement une seule chaîne.

Valeur retournée

La routine retourne une valeur NTSTATUS pour indiquer la status de l’opération.

Remarques

La structure PNP_LOCATION_INTERFACE fournit un pointeur vers la routine PnpGetLocationString .

La routine PnpGetLocationString fournit la partie spécifique de l’appareil de la chaîne d’emplacement de l’appareil. Le gestionnaire Plug-and-Play (PnP) assemble la chaîne d’emplacement d’un appareil en interrogeant le pilote de l’appareil, le bus de l’appareil et les bus parents, et en concaténant les chaînes fournies.

La routine doit retourner une chaîne qui est unique à l’appareil par rapport à son bus. La chaîne doit être la même pour l’appareil dans toutes les versions du système d’exploitation. Une fois que vous avez sélectionné une chaîne à cet effet, vous ne devez pas la modifier.

Par convention, la chaîne d’emplacement prend la forme ServiceName(BusSpecificLocation). Par exemple, les appareils PCI utilisent PCI(XXYY), où XX est le numéro d’appareil et YY est le numéro de fonction.

La routine PnpGetLocationString appelle une routine telle que ExAllocatePoolWithTag pour allouer la mémoire pour la chaîne d’emplacement. L’appelant est chargé d’appeler la routine ExFreePool pour libérer la mémoire pointée par LocationStrings lorsque la chaîne d’emplacement n’est plus nécessaire.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Server 2003.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ntddk.h (inclure Ntddk.h, Ntifs.h)
IRQL <= PASSIVE_LEVEL

Voir aussi

ExAllocatePoolWithTag

ExFreePool

PNP_LOCATION_INTERFACE