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。緩衝區 會指向包含別名名稱的字串。 當不再需要 Unicode 字串時,呼叫端必須使用 RtlFreeUnicodeString 釋放 Unicode 字串 。
傳回值
如果呼叫成功,IoGetDeviceInterfaceAlias 會傳回STATUS_SUCCESS。 可能的錯誤傳回值如下所述。
傳回碼 | Description |
---|---|
|
可能表示指定的介面類別沒有別名。 |
|
可能表示指定的介面類別沒有別名。 |
|
可能表示無效 的 SymbolicLinkName 或無效 的 AliasClassGuid。 |
備註
如果裝置介面是由相同的基礎裝置公開,而且具有相同的介面參考字串,但屬於不同的介面類別,則裝置介面會被視為別名。
SymbolicLinkName 參數會指定屬於特定介面類別之特定裝置的裝置介面實例,並具有特定的參考字串。 IoGetDeviceInterfaceAlias 會針對相同的裝置和參考字串傳回另一個裝置介面實例,但如果存在,則會傳回不同的介面類別。
例如,容錯磁碟區的函式驅動程式可以註冊並設定兩個裝置介面,其中一個容錯磁碟區介面類別和其中一個磁碟區介面類別。 另一個驅動程式可以使用其中一個介面的符號連結呼叫 IoGetDeviceInterfaceAlias ,並藉由指定其介面類別來詢問另一個介面是否存在。
如果兩個裝置介面與 NULL 參考字串是由相同的基礎裝置公開,而且有不同的介面類別 GUID,則為別名。
IoGetDeviceInterfaceAlias 的呼叫端必須在 IRQL = PASSIVE_LEVEL系統線程的內容中執行。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅一节) |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) 、 PowerIrpDDis (wdm) |