共用方式為


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 字串的指標。 成功傳回時,AliasSymbolicLinkNameBuffer 指向包含別名名稱的字串。 呼叫端必須在不再需要時,釋放具有 RtlFreeUnicodeString 的 Unicode 字串

傳回值

如果呼叫成功,IoGetDeviceInterfaceAlias 會傳回STATUS_SUCCESS。 可能的錯誤傳回值如下所述。

傳回碼 描述
STATUS_OBJECT_NAME_NOT_FOUND
可能表示指定的介面類別沒有別名。
STATUS_OBJECT_PATH_NOT_FOUND
可能表示指定的介面類別沒有別名。
STATUS_INVALID_HANDLE
可能表示無效的 SymbolicLinkNameAliasClassGuid無效。

言論

如果裝置介面是由相同的基礎裝置公開且具有相同介面參考字串,但屬於不同的介面類別,則裝置介面會被視為別名。

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)

另請參閱

IoRegisterDeviceInterface

RtlFreeUnicodeString