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
STATUS_OBJECT_NAME_NOT_FOUND
可能表示指定的介面類別沒有別名。
STATUS_OBJECT_PATH_NOT_FOUND
可能表示指定的介面類別沒有別名。
STATUS_INVALID_HANDLE
可能表示無效 的 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)

另請參閱

IoRegisterDeviceInterface

RtlFreeUnicodeString