pub unsafe fn SetupDiCreateDeviceInfoA<P0, P1, P2, P3>(
    deviceinfoset: P0,
    devicename: P1,
    classguid: *const GUID,
    devicedescription: P2,
    hwndparent: P3,
    creationflags: SETUP_DI_DEVICE_CREATION_FLAGS,
    deviceinfodata: Option<*mut SP_DEVINFO_DATA>
) -> Result<()>
where P0: IntoParam<HDEVINFO>, P1: IntoParam<PCSTR>, P2: IntoParam<PCSTR>, P3: IntoParam<HWND>,