SetupDiGetDeviceInterfaceAlias 関数 (setupapi.h)

SetupDiGetDeviceInterfaceAlias 関数は、指定されたデバイス インターフェイスのエイリアスを返します。

構文

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceAlias(
  [in]  HDEVINFO                  DeviceInfoSet,
  [in]  PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]  const GUID                *AliasInterfaceClassGuid,
  [out] PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData
);

パラメーター

[in] DeviceInfoSet

エイリアスを取得するデバイス インターフェイスを含むデバイス 情報セット へのポインター。 通常、このハンドルは SetupDiGetClassDevs によって返されます。

[in] DeviceInterfaceData

エイリアスを取得する DeviceInfoSet のデバイス インターフェイスを指定するSP_DEVICE_INTERFACE_DATA構造体へのポインター。 このポインターは通常、 SetupDiEnumDeviceInterfaces によって返されます。

[in] AliasInterfaceClassGuid

取得するエイリアスのインターフェイス クラスを指定する GUID へのポインター。

[out] AliasDeviceInterfaceData

正常に返されると、要求されたエイリアスを識別する完了 したSP_DEVICE_INTERFACE_DATA 構造体を含む呼び出し元によって割り当てられたバッファーへのポインター。 呼び出し元は、この関数を呼び出す前に AliasDeviceInterfaceData.cbSizesizeof(SP_DEVICE_INTERFACE_DATA) に設定する必要があります。

戻り値

関数がエラーなしで完了した場合、SetupDiGetDeviceInterfaceAlias はTRUE を返します。 関数がエラーで完了した場合、 FALSE が返され、 GetLastError を呼び出すことによってエラーのエラー コードを取得できます。

GetLastError によって返される可能性のあるエラーを次の表に示します。

リターン コード 説明
ERROR_INVALID_PARAMETER
DeviceInfoSet が無効であるか、DeviceInterfaceData パラメーターが無効です。
ERROR_NO_SUCH_INTERFACE_DEVICE
指定したデバイス インターフェイスの AliasInterfaceClassGuid クラスのエイリアスはありません。
ERROR_INVALID_USER_BUFFER
AliasDeviceInterfaceData バッファーが無効です。

注釈

デバイス インターフェイスは、異なるインターフェイス クラスのエイリアスと見なされますが、同じデバイスでサポートされ、同じ参照文字列を持つ場合です。

SetupDiGetDeviceInterfaceAlias を使用して、複数のインターフェイスを公開するデバイスを見つけることができます。 たとえば、フォールト トレラント ボリュームの一部であり、暗号化されたデータを格納できるディスクがあるとします。 ディスク デバイスのファンクション ドライバーは、フォールト トレラント ボリューム インターフェイスと暗号化ボリューム インターフェイスを登録できます。 これらのインターフェイスは、関数ドライバーが同じ参照文字列で登録し、同じデバイスを参照する場合、デバイス インターフェイスのエイリアスです。 (参照文字列は NULL であるため、等しい可能性があります)。

このようなマルチインターフェイス デバイスを見つけるには、まず、 SetupDiGetClassDevsSetupDiEnumDeviceInterfaces を使用して、フォールト トレラント ボリューム インターフェイスなど、いずれかのインターフェイスを公開するすべての使用可能なデバイスを見つけます。 次に、最初のインターフェイス (フォールト トレラント ボリューム) を持つデバイスを SetupDiGetDeviceInterfaceAlias に渡し、もう一方のインターフェイス クラス (encrypted-volume) のエイリアスを要求します。

要求されたエイリアスが存在するが、呼び出し元が指定した AliasDeviceInterfaceData バッファーが無効な場合、この関数はデバイス インターフェイス要素を DevInfoSet に正常に追加しますが、戻り値として FALSE を 返します。 この場合、 GetLastError は ERROR_INVALID_USER_BUFFERを返します。

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib
[DLL] Setupapi.dll

こちらもご覧ください

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs