IoGetDeviceInterfaceAlias 函式 (wdm.h)
如果別名存在,IoGetDeviceInterfaceAlias 例程會傳回指定裝置介面實例的別名裝置介面。
語法
NTSTATUS IoGetDeviceInterfaceAlias(
[in] PUNICODE_STRING SymbolicLinkName,
[in] const GUID *AliasInterfaceClassGuid,
[out] PUNICODE_STRING AliasSymbolicLinkName
);
參數
[in] SymbolicLinkName
要為其擷取別名之裝置介面實例名稱的指標。 呼叫端通常會從呼叫 IoGetDeviceInterfaces 或 PnP 通知結構中收到此字串。
[in] AliasInterfaceClassGuid
GUID 的指標,指定要擷取之別名的介面類別。
[out] AliasSymbolicLinkName
指定 NULL Unicode 字串的指標。 成功傳回時,AliasSymbolicLinkName。Buffer 指向包含別名名稱的字串。 呼叫端必須在不再需要時,釋放具有 RtlFreeUnicodeString 的 Unicode 字串。
傳回值
如果呼叫成功,IoGetDeviceInterfaceAlias 會傳回STATUS_SUCCESS。 可能的錯誤傳回值如下所述。
傳回碼 | 描述 |
---|---|
|
可能表示指定的介面類別沒有別名。 |
|
可能表示指定的介面類別沒有別名。 |
|
可能表示無效的 SymbolicLinkName 或 AliasClassGuid無效。 |
言論
如果裝置介面是由相同的基礎裝置公開且具有相同介面參考字串,但屬於不同的介面類別,則裝置介面會被視為別名。
SymbolicLinkName 參數會指定屬於特定介面類別之特定裝置的裝置介面實例,並具有特定的參考字串。 IoGetDeviceInterfaceAlias 傳回相同裝置和參考字串的另一個裝置介面實例,但如果存在,則會傳回另一個裝置介面實例。
例如,容錯磁碟區的函式驅動程式可以註冊並設定兩個裝置介面,其中一個容錯磁碟區介面類別和其中一個磁碟區介面類別。 另一個驅動程式可以使用其中一個介面的符號連結呼叫 IoGetDeviceInterfaceAlias,並藉由指定介面類別來詢問另一個介面是否存在。
如果兩個具有 NULL 參考字串的裝置介面是由相同的基礎裝置公開,而且有不同的介面類別 GUID,則為別名。
IoGetDeviceInterfaceAlias 的呼叫端必須在系統線程的內容中於 IRQL = PASSIVE_LEVEL執行。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (請參閱一節) |
DDI 合規性規則 | HwStorPortProhibitedDIs(storport),PowerIrpDDis(wdm) |