Condividi tramite


Funzione IoGetDeviceInterfaceAlias (wdm.h)

La routine IoGetDeviceInterfaceAlias restituisce l'interfaccia del dispositivo alias dell'istanza dell'interfaccia del dispositivo specificata, se l'alias esiste.

Sintassi

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

Parametri

[in] SymbolicLinkName

Puntatore al nome dell'istanza dell'interfaccia del dispositivo per cui recuperare un alias. Il chiamante ha in genere ricevuto questa stringa da una chiamata a IoGetDeviceInterfaces o in una struttura di notifica PnP.

[in] AliasInterfaceClassGuid

Puntatore a un GUID che specifica la classe di interfaccia dell'alias da recuperare.

[out] AliasSymbolicLinkName

Specifica un puntatore a un NULL stringa Unicode. In caso di esito positivo, AliasSymbolicLinkName.buffer punta a una stringa contenente il nome dell'alias. Il chiamante deve liberare la stringa Unicode con RtlFreeUnicodeString quando non è più necessaria.

Valore restituito

IoGetDeviceInterfaceAlias restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. I possibili valori restituiti dall'errore sono descritti di seguito.

Codice restituito Descrizione
STATUS_OBJECT_NAME_NOT_FOUND
Possibilmente indica che non esiste alcun alias della classe di interfaccia specificata.
STATUS_OBJECT_PATH_NOT_FOUND
Possibilmente indica che non esiste alcun alias della classe di interfaccia specificata.
STATUS_INVALID_HANDLE
Possibilmente indica un SimbolicoLinkName non valido o un AliasClassGuid non valido.

Osservazioni

Le interfacce dispositivo sono considerate alias se sono esposte dallo stesso dispositivo sottostante e hanno stringhe di riferimento di interfaccia identiche, ma sono di classi di interfaccia diverse.

Il parametro SymbolicLinkName specifica un'istanza dell'interfaccia del dispositivo per un determinato dispositivo, appartenente a una determinata classe di interfaccia, con una determinata stringa di riferimento. IoGetDeviceInterfaceAlias restituisce un'altra istanza dell'interfaccia del dispositivo per lo stesso dispositivo e la stessa stringa di riferimento, ma di una classe di interfaccia diversa, se esistente.

Ad esempio, il driver di funzione per un volume a tolleranza di errore potrebbe registrare e impostare due interfacce di dispositivo, una della classe di interfaccia del volume a tolleranza di errore e una della classe di interfaccia del volume. Un altro driver potrebbe chiamare IoGetDeviceInterfaceAlias con il collegamento simbolico per una delle interfacce e chiedere se l'altra interfaccia esiste specificando la relativa classe di interfaccia.

Due interfacce del dispositivo con NULL stringhe di riferimento sono alias se sono esposte dallo stesso dispositivo sottostante e hanno GUID di classe di interfaccia diversi.

I chiamanti di IoGetDeviceInterfaceAlias devono essere in esecuzione in IRQL = PASSIVE_LEVEL nel contesto di un thread di sistema.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 2000.
piattaforma di destinazione Universale
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)
regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedere anche

IoRegisterDeviceInterface

RtlFreeUnicodeString