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 をします。Buffer は、エイリアスの名前を含む文字列を指します。 呼び出し元は、不要になったら、RtlFreeUnicodeString を使用して Unicode 文字列を解放する必要があります。
戻り値
IoGetDeviceInterfaceAlias は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラー戻り値を次に示します。
リターン コード | 形容 |
---|---|
|
指定したインターフェイス クラスのエイリアスがないことを示している可能性があります。 |
|
指定したインターフェイス クラスのエイリアスがないことを示している可能性があります。 |
|
SymbolicLinkName が無効であるか、または無効な AliasClassGuidを示している可能性があります。 |
備考
デバイス インターフェイスは、同じ基になるデバイスによって公開され、インターフェイス参照文字列が同じであるが、インターフェイス クラスが異なる場合、エイリアスと見なされます。
SymbolicLinkName パラメーターは、特定の参照文字列を使用して、特定のインターフェイス クラスに属する特定のデバイスのデバイス インターフェイス インスタンスを指定します。 IoGetDeviceInterfaceAlias は、同じデバイスと参照文字列に対して別のデバイス インターフェイス インスタンスを返しますが、存在する場合は別のインターフェイス クラスを返します。
たとえば、フォールト トレラント ボリュームのファンクション ドライバーは、フォールト トレラント ボリューム インターフェイス クラスとボリューム インターフェイス クラスの 1 つである 2 つのデバイス インターフェイスを登録して設定できます。 別のドライバーは、いずれかのインターフェイスのシンボリック リンク IoGetDeviceInterfaceAlias を呼び出し、そのインターフェイス クラスを指定して他のインターフェイスが存在するかどうかを確認できます。
NULL 参照文字列を持つ 2 つのデバイス インターフェイスは、それらが同じ基になるデバイスによって公開され、インターフェイス クラス GUID が異なる場合はエイリアスです。
IoGetDeviceInterfaceAlias の呼び出し元は、システム スレッドのコンテキストで IRQL = PASSIVE_LEVELで実行されている必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
RtlFreeUnicodeString の