共用方式為


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

SP_DEVINFO_DATA 結構的指標,指定 deviceInfoSet中的裝置信息專案。 這個參數是選擇性的,而且可以 NULL。 如果指定此參數,SetupDiEnumDriverInfo 列舉指定裝置的驅動程式清單。 如果此參數 NULLSetupDiEnumDriverInfo 列舉與 deviceInfoSet 相關聯的全域類別驅動程式清單(此列表的類型為 SPDIT_CLASSDRIVER)。

[in] DriverType

要列舉的驅動程式清單類型,必須是下列其中一個值:

SPDIT_CLASSDRIVER

列舉類別驅動程式清單。 如果未指定 deviceInfoData,則必須指定此驅動程式清單類型

SPDIT_COMPATDRIVER

列舉指定裝置的相容驅動程序清單。 只有在同時指定 deviceInfoData 時,才能指定此驅動程式清單類型。

[in] MemberIndex

要擷取之驅動程式信息成員之以零起始的索引。

[out] DriverInfoData

呼叫端初始化 SP_DRVINFO_DATA 結構的指標,可接收列舉驅動程序的相關信息。 呼叫端必須設定 driverInfoData 。在 呼叫 setupDiEnumDriverInfo之前,先cbSizesizeof(SP_DRVINFO_DATA。 如果未正確設定 cbSize 成員,SetupDiEnumDriverInfo 會傳回 FALSE

傳回值

如果函式成功,函式會傳回 TRUE。 否則,它會傳回 FALSE,而且可以使用呼叫 getLastError 擷取記錄的錯誤。

言論

若要列舉驅動程式資訊集成員,安裝程式應該先呼叫 setupDiEnumDriverInfo ,並將 MemberIndex 參數設定為 0。 然後,它應該遞增 MemberIndex,並呼叫 SetupDiEnumDriverInfo,直到沒有其他值為止。 當沒有其他值時,函式會失敗,而且對 getLastError 的呼叫會傳回ERROR_NO_MORE_ITEMS。

如果您未正確初始化 cbSize 由 driverInfoData 指標所提供的SP_DRVINFO_DATA結構成員,函式將會失敗並記錄錯誤ERROR_INVALID_USER_BUFFER。

若要建置與特定裝置相關聯的驅動程式清單,或與裝置資訊集的全域類別驅動程式清單,請先使用 SetupDiBuildDriverInfoList 然後將該列表傳遞至 SetupDiEnumDriverInfo

注意

setupapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetupDiEnumDriverInfo 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Microsoft Windows 2000 和更新版本的 Windows 中提供。
目標平臺 桌面
標頭 setupapi.h (包括 Setupapi.h)
連結庫 Setupapi.lib

另請參閱

SetupDiBuildDriverInfoList