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 |
---|---|
|
Indique peut-être qu’il n’existe aucun alias de la classe d’interface spécifiée. |
|
Indique peut-être qu’il n’existe aucun alias de la classe d’interface spécifiée. |
|
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) |