Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 108 of file ksproxy.cpp.
Referenced by CKsClockForwarder_Constructor(), and CKsQualityForwarder_Constructor().
{ HDEVINFO hList; SP_DEVICE_INTERFACE_DATA DeviceInterfaceData; PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData; WCHAR Path[MAX_PATH+sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W)]; /* open device list */ hList = SetupDiGetClassDevsW(&Category, NULL, NULL, DIGCF_DEVICEINTERFACE | DIGCF_PRESENT); if (hList == INVALID_HANDLE_VALUE) { /* failed */ return MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, GetLastError()); } /* setup parameters */ DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); if (SetupDiEnumDeviceInterfaces(hList, NULL, &Category, 0, &DeviceInterfaceData)) { /* setup interface data struct */ DeviceInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA_W)Path; DeviceInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W); /* get device interface details */ if (SetupDiGetDeviceInterfaceDetailW(hList, &DeviceInterfaceData, DeviceInterfaceDetailData, sizeof(Path), NULL, NULL)) { /* open device */ *DeviceHandle = CreateFileW(DeviceInterfaceDetailData->DevicePath, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED | FILE_ATTRIBUTE_NORMAL, NULL); if (*DeviceHandle != INVALID_HANDLE_VALUE) { /* operation succeeded */ SetupDiDestroyDeviceInfoList(hList); return NOERROR; } } } /* free device list */ SetupDiDestroyDeviceInfoList(hList); /* failed */ return MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, GetLastError()); }