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を返します。 考えられるエラーの戻り値を次に示します。
リターン コード | 説明 |
---|---|
|
指定したインターフェイス クラスのエイリアスがないことを示している可能性があります。 |
|
指定したインターフェイス クラスのエイリアスがないことを示している可能性があります。 |
|
無効な 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) |