47 interface_data.
cbSize =
sizeof(interface_data);
63 logmsg(
"ProcessExistingDevices() failed to allocate detail_data\n");
80 device_data.
cbSize =
sizeof(device_data);
133 ZeroMemory(¬ification_filter,
sizeof(notification_filter));
140 ¬ification_filter,
141 DEVICE_NOTIFY_SERVICE_HANDLE
BOOL AppendAudioDeviceToList(PnP_AudioDevice *device)
#define DBT_DEVTYP_DEVICEINTERFACE
BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO DeviceInfoSet, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData, DWORD DeviceInterfaceDetailDataSize, PDWORD RequiredSize, PSP_DEVINFO_DATA DeviceInfoData)
VOID UnregisterDeviceNotifications(VOID)
SERVICE_STATUS_HANDLE service_status_handle
DWORD WINAPI GetLastError(VOID)
struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA_W
BOOL RegisterForDeviceNotifications(VOID)
GLenum GLuint GLenum GLsizei length
#define DestroyDeviceDescriptor(descriptor)
DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
DWORD ProcessDeviceArrival(DEV_BROADCAST_DEVICEINTERFACE *device)
struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W * PSP_DEVICE_INTERFACE_DETAIL_DATA_W
void logmsg(char *string,...)
HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags)
static HDEVNOTIFY device_notification_handle
#define DBT_DEVICEARRIVAL
BOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, CONST GUID *InterfaceClassGuid, DWORD MemberIndex, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA
#define DIGCF_DEVICEINTERFACE
BOOL ProcessExistingDevices(VOID)
HDEVINFO WINAPI SetupDiGetClassDevsExW(CONST GUID *class, PCWSTR enumstr, HWND parent, DWORD flags, HDEVINFO deviceset, PCWSTR machine, PVOID reserved)
DWORD HandleDeviceEvent(DWORD dwEventType, LPVOID lpEventData)
VOID * CreateDeviceDescriptor(WCHAR *path, BOOL is_enabled)
#define HeapFree(x, y, z)