SetupDiGetDeviceInterfaceDetailA 関数 (setupapi.h)
SetupDiGetDeviceInterfaceDetail 関数は、デバイス インターフェイスに関する詳細を返します。
構文
WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailA(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
[out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
[in] DWORD DeviceInterfaceDetailDataSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSP_DEVINFO_DATA DeviceInfoData
);
パラメーター
[in] DeviceInfoSet
詳細を取得するインターフェイスを含む デバイス情報セット へのポインター。 このハンドルは通常、 SetupDiGetClassDevs によって返されます。
[in] DeviceInterfaceData
詳細を取得する DeviceInfoSet のインターフェイスを指定するSP_DEVICE_INTERFACE_DATA構造体へのポインター。 この型のポインターは、通常、 SetupDiEnumDeviceInterfaces によって返されます。
[out, optional] DeviceInterfaceDetailData
指定したインターフェイスに関する情報を受け取る SP_DEVICE_INTERFACE_DETAIL_DATA 構造体へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 DeviceInterfaceDetailSize が 0 の場合、このパラメーターは NULL である必要があります。 このパラメーターを指定した場合、呼び出し元は、この関数を呼び出す前に DeviceInterfaceDetailData.cbSize を sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) に設定する必要があります。 cbSize メンバーには、データ構造の固定部分のサイズが常に含まれます。末尾の可変長文字列を反映するサイズではありません。
[in] DeviceInterfaceDetailDataSize
DeviceInterfaceDetailData バッファーのサイズ。 構造体の固定部分を格納するには、少なくともバッファー (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA、 DevicePath) + sizeof(TCHAR)) バイトを指定し、空のMULTI_SZ文字列を終了するには 1 つの NULL を 指定する必要があります。
DeviceInterfaceDetailData が NULL の場合、このパラメーターは 0 である必要があります。
[out, optional] RequiredSize
DeviceInterfaceDetailData バッファーの必要なサイズを受け取る DWORD 型の変数へのポインター。 このサイズには、構造体の固定部分のサイズと、可変長デバイス パス文字列に必要なバイト数が含まれます。 このパラメーターは省略可能であり、 NULL にすることができます。
[out, optional] DeviceInfoData
要求されたインターフェイスをサポートするデバイスに関する情報を受け取るバッファーへのポインター。 呼び出し元は、DeviceInfoData.cbSize を sizeof(SP_DEVINFO_DATA) に設定する必要があります。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
関数がエラーなしで完了した場合、SetupDiGetDeviceInterfaceDetail は TRUE を返します。 関数がエラーで完了した場合、 FALSE が返され、 GetLastError を呼び出すことによってエラーのエラー コードを取得できます。
解説
この関数を使用してインターフェイスの詳細を取得するには、通常、次の 2 つの手順を実行します。
- 必要なバッファー サイズを取得します。 NULLDeviceInterfaceDetailData ポインター、DeviceInterfaceDetailDataSize が 0、有効な RequiredSize 変数を使用して SetupDiGetDeviceInterfaceDetail を呼び出します。 このような呼び出しに応答して、この関数は RequiredSize で必要なバッファー サイズを返し、 GetLastError がERROR_INSUFFICIENT_BUFFERを返して失敗します。
- 適切なサイズのバッファーを割り当て、関数をもう一度呼び出してインターフェイスの詳細を取得します。
SetupDiGetDeviceInterfaceDetail を使用すると、 DeviceInfoData のみを取得できます。 インターフェイスが存在するが DeviceInterfaceDetailData が NULL の場合、この関数は失敗し、 GetLastError はERROR_INSUFFICIENT_BUFFERを返し、 DeviceInfoData 構造体にはインターフェイスを公開するデバイスに関する情報が入力されます。
注意
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupDiGetDeviceInterfaceDetail を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | setupapi.h (Setupapi.h を含む) |
Library | Setupapi.lib |