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 會列舉指定裝置的驅動程式清單。 如果此參數為 NullSetupDiEnumDriverInfo 會列舉與 DeviceInfoSet 相關聯的全域類別驅動程式清單, (此清單的類型為 SPDIT_CLASSDRIVER) 。

[in] DriverType

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

SPDIT_CLASSDRIVER

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

SPDIT_COMPATDRIVER

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

[in] MemberIndex

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

[out] DriverInfoData

呼叫端初始化 SP_DRVINFO_DATA 結構的指標,可接收列舉驅動程式的相關資訊。 呼叫端必須設定 DriverInfoData。cbSizesizeof (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

另請參閱

SetupDiBuildDriverInfoList