SP_DRVINFO_DETAIL_DATA_A構造 (setupapi.h)
SP_DRVINFO_DETAIL_DATA構造体には、特定のドライバー情報構造に関する詳細情報が含まれています。
構文
typedef struct _SP_DRVINFO_DETAIL_DATA_A {
DWORD cbSize;
FILETIME InfDate;
DWORD CompatIDsOffset;
DWORD CompatIDsLength;
ULONG_PTR Reserved;
CHAR SectionName[LINE_LEN];
CHAR InfFileName[MAX_PATH];
CHAR DrvDescription[LINE_LEN];
CHAR HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;
メンバー
cbSize
SP_DRVINFO_DETAIL_DATA構造体のサイズ (バイト単位)。
InfDate
このドライバーの INF ファイルの日付。
CompatIDsOffset
CompatIDs リストが開始する HardwareID バッファーの先頭からのオフセット (文字単位)。
この値を使用して、CompatIDs リストの前に ハードウェア ID があるかどうかを判断することもできます。 この値が 1 より大きい場合、 HardwareID バッファーの最初の文字列はハードウェア ID です。 この値が 1 以下の場合、ハードウェア ID はありません。
CompatIDsLength
HardwareID バッファーの先頭からオフセット CompatIDsOffset から始まる CompatIDs リストの長さ (文字数)。
CompatIDsLength が 0 以外の場合、CompatIDs リストには、リストの末尾に追加の NULL 文字を含む NULL で終わる 1 つ以上の文字列が含まれます。
CompatIDsLength が 0 の場合、CompatIDs リストは空です。 その場合、リストの末尾に追加の NULL 文字はありません。
Reserved
予約済み。 内部使用専用です。
SectionName[LINE_LEN]
このドライバーの INF DDInstall セクション の名前を含む NULL で終わる文字列。 これは、OS/アーキテクチャ固有の拡張機能を使用せずに、InstallSec などの基本的な DDInstall セクション名である必要があります。
InfFileName[MAX_PATH]
このドライバーの INF ファイルの完全修飾名を含む NULL で終わる文字列。
DrvDescription[LINE_LEN]
ドライバーを記述する NULL で終わる文字列。
HardwareID[ANYSIZE_ARRAY]
ID の一覧 (1 つの ハードウェア ID の後に 互換性のある ID の一覧が続く) を含むバッファー。 これらの ID は、 INF モデル セクションのハードウェア ID と互換性のある ID に対応します。
リスト内の各 ID は NULL で終わる文字列です。
ハードウェア ID が存在する場合 (つまり、 CompatIDsOffset が 1 より大きい場合)、この単一の NULL で終わる文字列はバッファーの先頭にあります。
CompatIDs リストが空でない場合 (つまり、 CompatIDsLength が 0 でない場合)、CompatIDs リストは、このバッファーの先頭からオフセット CompatIDsOffset から開始され、リストの末尾に追加の NULL 文字で終了します。
注釈
デバイスの ハードウェア ID と 互換性のある ID は、「 INF モデル」セクション で次の順序で指定します。
- 最初の ID (指定されている場合) は、デバイスのハードウェア ID です。
- 残りの ID (指定されている場合) は、デバイスの互換性のある ID です。
たとえば、[INF モデル] セクションでハードウェア ID と互換性のある ID の一覧がどのように指定されているかに応じて、HardwareID バッファーは次のようになります。
- \0
- <HWID>\0
- <HWID>\0<COMPATID_1>\0...<>COMPATID_N\0\0
- \0<COMPATID_1>\0...<>COMPATID_N\0\0
// parse the hardware ID, if it exists
if (CompatIDsOffset > 1)
{
// Parse for hardware ID from index 0.
// This is a single NULL-terminated string
}
// Parse the compatible IDs, if they exist
if (CompatIDsLength > 0)
{
// Parse for list of compatible IDs from CompatIDsOffset.
// This is a double NULL-terminated list of strings (i.e. MULTI-SZ)
}
注意
setupapi.h ヘッダーは、SP_DRVINFO_DETAIL_DATAをエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
Header | setupapi.h (Setupapi.h を含む) |