pub unsafe fn SetupDiGetClassDevsExA<P0, P1, P2, P3>(
    classguid: Option<*const GUID>,
    enumerator: P0,
    hwndparent: P1,
    flags: SETUP_DI_GET_CLASS_DEVS_FLAGS,
    deviceinfoset: P2,
    machinename: P3,
    reserved: Option<*const c_void>
) -> Result<HDEVINFO>
where P0: IntoParam<PCSTR>, P1: IntoParam<HWND>, P2: IntoParam<HDEVINFO>, P3: IntoParam<PCSTR>,