class axl::sys::win::DeviceInfo

#include <axl_sys_win_DeviceInfo.h>

class DeviceInfo
{
public:
    // construction

    DeviceInfo();

    DeviceInfo(
        HDEVINFO devInfoSet,
        const SP_DEVINFO_DATA* devInfoData
        );

    // methods

    HDEVINFO
    getDevInfoSet();

    SP_DEVINFO_DATA*
    getDevInfoData();

    bool
    getDeviceRegistryProperty(
        uint_t propId,
        void* buffer,
        size_t size,
        dword_t* requiredSize
        );

    bool
    getDeviceRegistryProperty(
        uint_t propId,
        sl::Array<char>* buffer
        );

    bool
    getDeviceRegistryProperty(
        uint_t propId,
        sl::String_w* string
        );

    bool
    getDeviceRegistryProperty(
        uint_t propId,
        sl::String* string
        );

    bool
    setDeviceRegistryProperty(
        uint_t propId,
        const void* buffer,
        size_t size
        );

    HKEY
    openDeviceRegistryKey(REGSAM keyAccess);

    bool
    getDeviceInstallParams(SP_DEVINSTALL_PARAMS_W* params);

    bool
    setDeviceInstallParams(const SP_DEVINSTALL_PARAMS_W* params);

    bool
    getClassInstallParams(
        void* buffer,
        size_t size,
        dword_t* requiredSize
        );

    bool
    getClassInstallParams(sl::Array<char>* buffer);

    bool
    setClassInstallParams(
        const void* params,
        size_t size
        );

    bool
    callClassInstaller(DI_FUNCTION function);

    bool
    restartDevice(bool* isRebootRequired);
};