SetupDiEnumDriverInfoA 函式 (setupapi.h)
SetupDiEnumDriverInfo函式會列舉驅動程式清單的成員。
語法
WINSETUPAPI BOOL SetupDiEnumDriverInfoA(
[in] HDEVINFO DeviceInfoSet,
[in, optional] PSP_DEVINFO_DATA DeviceInfoData,
[in] DWORD DriverType,
[in] DWORD MemberIndex,
[out] PSP_DRVINFO_DATA_A DriverInfoData
);
參數
[in] DeviceInfoSet
包含要列舉之驅動程式清單的 裝置資訊集 控制碼。
[in, optional] DeviceInfoData
指定DeviceInfoSet中裝置資訊元素之SP_DEVINFO_DATA結構的指標。 此參數是選擇性的,可以是 Null。 如果指定此參數, SetupDiEnumDriverInfo 會列舉指定裝置的驅動程式清單。 如果此參數為 Null, SetupDiEnumDriverInfo 會列舉與 DeviceInfoSet 相關聯的全域類別驅動程式清單, (此清單的類型為 SPDIT_CLASSDRIVER) 。
[in] DriverType
要列舉的驅動程式清單類型,必須是下列其中一個值:
SPDIT_CLASSDRIVER
列舉類別驅動程式清單。 如果未指定 DeviceInfoData ,則必須指定此驅動程式清單類型。
SPDIT_COMPATDRIVER
列舉指定裝置的相容驅動程式清單。 只有在同時指定 DeviceInfoData 時,才能指定此驅動程式清單類型。
[in] MemberIndex
要擷取之驅動程式資訊成員之以零起始的索引。
[out] DriverInfoData
呼叫端初始化 SP_DRVINFO_DATA 結構的指標,可接收列舉驅動程式的相關資訊。 呼叫端必須設定 DriverInfoData。cbSize 以 sizeof (SP_DRVINFO_DATA ) ,再呼叫 SetupDiEnumDriverInfo。 如果未正確設定 cbSize 成員, SetupDiEnumDriverInfo 會傳回 FALSE。
傳回值
如果函式成功,函式會傳回 TRUE 。 否則,它會傳回 FALSE ,而且可以透過呼叫 GetLastError來擷取記錄的錯誤。
備註
若要列舉驅動程式資訊集成員,安裝程式應該先呼叫 SetupDiEnumDriverInfo ,並將 MemberIndex 參數設定為 0。 然後,它應該遞增 MemberIndex 並呼叫 SetupDiEnumDriverInfo ,直到沒有其他值為止。 當沒有任何值時,函式會失敗,而且 GetLastError 的呼叫會傳回ERROR_NO_MORE_ITEMS。
如果您未正確初始化指標DriverInfoData所提供之SP_DRVINFO_DATA結構的cbSize成員,函式將會失敗並記錄錯誤ERROR_INVALID_USER_BUFFER。
若要建置與特定裝置相關聯的驅動程式清單,或與裝置資訊集的全域類別驅動程式清單,請先使用 SetupDiBuildDriverInfoList ,然後將該清單傳遞至 SetupDiEnumDriverInfo。
注意
setupapi.h 標頭會將 SetupDiEnumDriverInfo 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | 可在 Microsoft Windows 2000 和更新版本的 Windows 中使用。 |
目標平臺 | 桌面 |
標頭 | setupapi.h (包括 Setupapi.h) |
程式庫 | Setupapi.lib |