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。バッファーは、エイリアスの名前を含む文字列を指します。 呼び出し元は、 不要になったら、RtlFreeUnicodeString を使用して Unicode 文字列を解放する必要があります。

戻り値

IoGetDeviceInterfaceAlias は、 呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラーの戻り値を次に示します。

リターン コード 説明
STATUS_OBJECT_NAME_NOT_FOUND
指定したインターフェイス クラスのエイリアスがないことを示している可能性があります。
STATUS_OBJECT_PATH_NOT_FOUND
指定したインターフェイス クラスのエイリアスがないことを示している可能性があります。
STATUS_INVALID_HANDLE
無効な SymbolicLinkName または無効な AliasClassGuid を示している可能性があります。

注釈

デバイス インターフェイスは、同じ基になるデバイスによって公開され、インターフェイス参照文字列が同じであるが、インターフェイス クラスが異なる場合、エイリアスと見なされます。

SymbolicLinkName パラメーターは、特定の参照文字列を使用して、特定のインターフェイス クラスに属する特定のデバイスのデバイス インターフェイス インスタンスを指定します。 IoGetDeviceInterfaceAlias は 、同じデバイスと参照文字列に対して別のデバイス インターフェイス インスタンスを返しますが、存在する場合は別のインターフェイス クラスを返します。

たとえば、フォールト トレラント ボリュームのファンクション ドライバーでは、フォールト トレラント ボリューム インターフェイス クラスとボリューム インターフェイス クラスの 1 つである 2 つのデバイス インターフェイスを登録して設定できます。 別のドライバーは、いずれかのインターフェイスのシンボリック リンクを使用して IoGetDeviceInterfaceAlias を 呼び出し、インターフェイス クラスを指定してもう一方のインターフェイスが存在するかどうかを確認できます。

NULL 参照文字列を持つ 2 つのデバイス インターフェイスは、それらが同じ基になるデバイスによって公開され、インターフェイス クラス GUID が異なる場合はエイリアスです。

IoGetDeviceInterfaceAlias の呼び出し元は、システム スレッドのコンテキストで IRQL = PASSIVE_LEVELで実行されている必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

IoRegisterDeviceInterface

RtlFreeUnicodeString