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