SetupDiGetDriverInfoDetail

BOOLEAN
SetupDiGetDriverInfoDetail(
IN HDEVINFO DeviceInfoSet,
IN PSP_DEVINFO_DATA DeviceInfoData, /* optional */
IN PSP_DRVINFO_DATA DriverInfoData,
OUT PSP_DRVINFO_DETAIL_DATA DriverInfoDetailData, /* optional */
IN DWORD DriverInfoDetailDataSize,
OUT PDWORD RequiredSize /* optional */
);

SetupDiGetDriverInfoDetail retrieves detailed information for a specified driver.

Parameters

DeviceInfoSet

Supplies a handle to the device information set that contains a driver information structure for which to retrieve details.

DeviceInfoData

Supplies a pointer to an SP_DEVINFO_DATA structure that contains a driver information structure for which to retrieve details. If this parameter is not specified, the driver referenced is a member of the global class driver list owned by the device information set.

DriverInfoData

Supplies a pointer to an SP_DRVINFO_DATA structure that specifies the driver for which details are to be retrieved.

DriverInfoDetailData

Supplies a pointer to an SP_DRVINFO_DETAIL_DATA structure that receives detailed information about the specified driver. If this parameter is not specified, DriverInfoDetailDataSize must be 0. If this parameter is specified, the cbSize field of this structure must be set to the size, in bytes, of the structure before calling SetupDiGetDriverInfoDetail.

DriverInfoDetailDataSize

Supplies the size, in bytes, of the DriverInfoDetailData buffer.

RequiredSize

Supplies a pointer to a variable that receives the number of bytes required to store the detailed driver information. This value includes both the size of the structure and the additional bytes required for the variable-length character buffer at the end that holds the hardware ID and the compatible IDs MULTI_SZ list.

Return Value

The function returns TRUE if it is successful. Otherwise it returns FALSE and the logged error can be retrieved with a call to GetLastError.

Comments

If the specified driver information member and the caller-supplied buffer are both valid, this function is guaranteed to fill in all static fields in the SP_DRVINFO_DETAIL_DATA structure and as many IDs as possible in the variable-length buffer at the end while still maintaining MULTI_SZ format. In this case, the function returns FALSE and a call to GetLastError returns ERROR_INSUFFICIENT_BUFFER. If specified, RequiredSize contains the total number of bytes required for the structure with all IDs.

See Also

SetupDiEnumDriverInfo, SetupDiGetSelectedDriver