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
位移,以字元為單位,從 HardwareID 開頭 緩衝區開始 CompatIDs 清單。
這個值也可以用來判斷 CompatIDs 清單前面是否有 硬體標識碼。 如果此值大於 1,HardwareID 緩衝區中的第一個字串就是硬體識別符。 如果此值小於或等於 1,則沒有任何硬體識別碼。
CompatIDsLength
CompatIDs 清單的長度,以字元為單位,從 HardwareID 緩衝區開頭開始的位移 CompatIDsOffset。
如果 CompatIDsLength 為非零,CompatIDs 清單就會在清單結尾包含一或多個以 NULL 結尾加上其他 NULL 字元的 NULL 終止字串。
如果 CompatIDsLength 為零,CompatIDs 清單會是空的。 在此情況下,清單結尾沒有額外的NULL字元。
Reserved
保留。 僅供內部使用。
SectionName[LINE_LEN]
NULL 終止的字串,其中包含此驅動程式的 INF DDInstall 區段名稱。 這必須是基本 DDInstall 區段名稱,例如 InstallSec,而不需要任何 OS/架構特定的擴充功能。
InfFileName[MAX_PATH]
NULL 終止的字串,其中包含此驅動程式之 INF 檔案的完整名稱。
DrvDescription[LINE_LEN]
描述驅動程式的NULL終止字串。
HardwareID[ANYSIZE_ARRAY]
緩衝區,其中包含標識符清單(單一 硬體標識符,後面接著 兼容標識符清單)。 這些識別碼會對應至 INF Models 區段中的硬體識別碼和相容識別碼,。
清單中的每個識別碼都是以 NULL 結尾的字串。
如果硬體標識碼存在(也就是說,如果 CompatIDsOffset 大於一個),則會在緩衝區開頭找到這個單一 NULL 終止的字元串。
如果 CompatIDs 清單不是空的(也就是說,如果 CompatIDsLength 不是零),CompatIDs 清單會從此緩衝區開頭 CompatIDsOffset 位移開始,並以清單結尾的額外 NULL 字元終止。
言論
硬體識別碼 和裝置 兼容標識碼 會以下列順序指定於 INF Models 區段:
- 第一個識別碼 (如果指定)是裝置的硬體識別碼。
- 其餘標識碼(如果指定)是裝置的相容標識碼。
例如,根據 硬體標識符清單 和 兼容標識符的清單, 在 INF Models 區段中指定的方式,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 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
標頭 | setupapi.h (包括 Setupapi.h) |