80 InterfaceData.
cbSize =
sizeof(InterfaceData);
146 DPRINT(
"DevicePath %S\n", CurDevice->DevicePath);
149 RootDevice = CurDevice;
153 LastDevice->
lpNext = CurDevice;
157 LastDevice = CurDevice;
167 *OutPath = RootDevice;
272 DPRINT(
"Failed DRV_QUERYDEVICEINTERFACESIZE with %lx bRecord %u Index %u\n", dwResult, bRecord,
Index);
287 DPRINT(
"Failed DRV_QUERYDEVICEINTERFACE with %lx bRecord %u Index %u\n", dwResult, bRecord,
Index);
356 DPRINT(
"WaveInPins %u WaveOutPins %u %S\n", WaveInPins, WaveOutPins, CurInfo->
DevicePath);
364 INIT_GUID(CurInfo->
DeviceGuid[0], 0xbd6dd71a, 0x3deb, 0x11d1, 0xb1, 0x71, 0x00, 0xc0, 0x4f, 0xc2, 0x00, 0x00 + *WaveInCount);
375 INIT_GUID(CurInfo->
DeviceGuid[1], 0xbd6dd71b, 0x3deb, 0x11d1, 0xb1, 0x71, 0x00, 0xc0, 0x4f, 0xc2, 0x00, 0x00 + *WaveOutCount);
390 ULONG WaveOutCount, WaveInCount;
413 CurInfo = *OutRootInfo;
431 CurInfo = CurInfo->
lpNext;
464 CurInfo = CurInfo->
lpNext;
491 CurInfo = CurInfo->
lpNext;
#define UlongToHandle(ul)
BOOL FindWinMMDeviceIndex(LPFILTERINFO CurInfo, BOOL bRecord)
VOID FindAudioFilterPins(LPFILTERINFO CurInfo, OUT PULONG WaveInPins, OUT PULONG WaveOutPins)
DWORD OpenDeviceKey(HDEVINFO Handle, PSP_DEVINFO_DATA FILTERINFOData, DWORD KeyType, REGSAM DesiredAccess, OUT HKEY *OutKey)
HRESULT EnumAudioDeviceInterfaces(LPFILTERINFO *OutRootInfo)
HRESULT EnumerateAudioFilter(LPFILTERINFO CurInfo, OUT PULONG WaveInCount, OUT PULONG WaveOutCount)
DWORD OpenDeviceList(IN LPGUID InterfaceGuid, OUT HDEVINFO *OutHandle)
BOOL FindDeviceByMappedId(IN ULONG DeviceID, LPFILTERINFO *Filter, BOOL bPlayback)
BOOL GetDeviceListInterfaces(HDEVINFO DeviceHandle, IN LPGUID InterfaceGuid, LPFILTERINFO *OutPath)
BOOL CloseDeviceList(HDEVINFO Handle)
BOOL FindDeviceByGuid(LPCGUID pGuidSrc, LPFILTERINFO *Filter)
ULONG GetPinIdFromFilter(LPFILTERINFO Filter, BOOL bCapture, ULONG Offset)
DWORD GetFilterPinCommunication(IN HANDLE hFilter, IN ULONG PinId, OUT PKSPIN_COMMUNICATION Communication)
DWORD OpenFilter(IN LPCWSTR lpFileName, IN PHANDLE OutHandle)
DWORD GetFilterPinCount(IN HANDLE hFilter, OUT PULONG NumPins)
DWORD GetFilterPinDataFlow(IN HANDLE hFilter, IN ULONG PinId, OUT PKSPIN_DATAFLOW DataFlow)
#define INIT_GUID(guid, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define DRV_QUERYDEVICEINTERFACESIZE
#define DRV_QUERYDEVICEINTERFACE
BOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, CONST GUID *InterfaceClassGuid, DWORD MemberIndex, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Scope, DWORD HwProfile, DWORD KeyType, REGSAM samDesired)
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)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
@ KSPIN_COMMUNICATION_SINK
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IsEqualGUID(rguid1, rguid2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define DIGCF_DEVICEINTERFACE
struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA_W
#define DICS_FLAG_CONFIGSPECIFIC
#define SetupDiGetClassDevs
struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W * PSP_DEVICE_INTERFACE_DETAIL_DATA_W
_In_ const GUID _In_ ULONG PinCount
WCHAR DevicePath[ANYSIZE_ARRAY]
struct tagFILTERINFO * lpNext
WCHAR DevicePath[MAX_PATH]
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
DWORD WINAPI GetLastError(void)
UINT WINAPI waveOutGetNumDevs(void)
UINT WINAPI waveInGetNumDevs(void)
UINT WINAPI waveInMessage(HWAVEIN hWaveIn, UINT uMessage, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
UINT WINAPI waveOutMessage(HWAVEOUT hWaveOut, UINT uMessage, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
static const GUID InterfaceGuid
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO