Partager via


IoGetDeviceInterfaceAlias, fonction (wdm.h)

La routine IoGetDeviceInterfaceAlias retourne l’interface d’appareil alias de l’instance d’interface d’appareil spécifiée, si l’alias existe.

Syntaxe

NTSTATUS IoGetDeviceInterfaceAlias(
  [in]  PUNICODE_STRING SymbolicLinkName,
  [in]  const GUID      *AliasInterfaceClassGuid,
  [out] PUNICODE_STRING AliasSymbolicLinkName
);

Paramètres

[in] SymbolicLinkName

Pointeur vers le nom de l’instance d’interface de l’appareil pour laquelle récupérer un alias. L’appelant a généralement reçu cette chaîne d’un appel à IoGetDeviceInterfaces ou dans une structure de notification PnP.

[in] AliasInterfaceClassGuid

Pointeur vers un GUID spécifiant la classe d’interface de l’alias à récupérer.

[out] AliasSymbolicLinkName

Spécifie un pointeur vers une chaîne Unicode NULL. En cas de retour réussi, AliasSymbolicLinkName.tampon pointe vers une chaîne contenant le nom de l’alias. L’appelant doit libérer la chaîne Unicode avec RtlFreeUnicodeString lorsqu’il n’est plus nécessaire.

Valeur de retour

IoGetDeviceInterfaceAlias retourne STATUS_SUCCESS si l’appel a réussi. Les valeurs de retour d’erreur possibles sont décrites ci-dessous.

Retourner le code Description
STATUS_OBJECT_NAME_NOT_FOUND
Indique peut-être qu’il n’existe aucun alias de la classe d’interface spécifiée.
STATUS_OBJECT_PATH_NOT_FOUND
Indique peut-être qu’il n’existe aucun alias de la classe d’interface spécifiée.
STATUS_INVALID_HANDLE
Indique éventuellement un SymbolLinkName non valide ou un AliasClassGuid non valide.

Remarques

Les interfaces d’appareil sont considérées comme des alias s’ils sont exposés par le même appareil sous-jacent et ont des chaînes de référence d’interface identiques, mais sont de classes d’interface différentes.

Le paramètre SymbolicLinkName spécifie une instance d’interface d’appareil pour un appareil particulier, appartenant à une classe d’interface particulière, avec une chaîne de référence particulière. IoGetDeviceInterfaceAlias retourne une autre instance d’interface d’appareil pour la même chaîne d’appareil et de référence, mais d’une autre classe d’interface, le cas échéant.

Par exemple, le pilote de fonction d’un volume à tolérance de panne peut inscrire et définir deux interfaces d’appareil, l’une des classes d’interface de volume à tolérance de panne et l’une de la classe d’interface de volume. Un autre pilote peut appeler IoGetDeviceInterfaceAlias avec le lien symbolique de l’une des interfaces et demander si l’autre interface existe en spécifiant sa classe d’interface.

Deux interfaces d’appareil avec chaînes de référence NULL sont des alias s’ils sont exposés par le même appareil sous-jacent et ont des GUID de classe d’interface différents.

Les appelants de IoGetDeviceInterfaceAlias doivent s’exécuter à IRQL = PASSIVE_LEVEL dans le contexte d’un thread système.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (voir la section Remarques)
règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

IoRegisterDeviceInterface

RtlFreeUnicodeString