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 清單前面的 硬體識別碼 。 如果此值大於 1,HardwareID 緩衝區中的第一個字串就是硬體識別符。 如果此值小於或等於 1,則沒有硬體識別碼。
CompatIDsLength
CompatIDs 清單的長度,以字元為單位,從 HardwareID 緩衝區開頭的位移 CompatIDsOffset 開始。
如果 CompatIDsLength 為非零值,CompatIDs 清單會包含一或多個 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 模型一節中的硬體識別碼和相容的標識碼。
清單中的每個識別碼都是以 NULL 結尾的字串。
如果硬體標識碼存在 (亦即,如果 CompatIDsOffset 大於一) ,則會在緩衝區開頭找到這個單一 NULL 終止的字串。
如果 CompatIDs 清單不是空的 (亦即,如果 CompatIDsLength 不是零) ,CompatIDs 清單就會從此緩衝區開頭的位移 CompatIDsOffset 開始,並以清單結尾的額外 NULL 字元終止。
備註
裝置 的硬體識別碼 和 相容識別符 會依下列順序在 INF 模型區段中 指定:
- 如果指定) 是裝置的硬體標識符,則第一個標識碼 (。
- 如果指定的) 與裝置相容標識符,則其餘標識符會 (。
例如,根據 INF 模型區段中指定硬體識別碼和相容標識碼的清單而定,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) |