31 SND_TRACE(
L"SoundThread - Came out of waiting\n");
35 SND_TRACE(
L"SoundThread - Processing request\n");
37 if (
Thread->Request.Handler )
40 Thread->Request.Parameter);
54 SND_TRACE(
L"SoundThread - Processing IO completion\n");
81 Thread = SoundDeviceInstance->Thread;
88 Thread->Request.SoundDeviceInstance = SoundDeviceInstance;
99 return Thread->Request.Result;
110 SND_TRACE(
L"Sound thread terminator routine called\n");
223 &NewThread->
Events.Request,
243 SND_ERR(
L"Sound thread creation failed!\n");
245 NewThread->
Events.Request,
256 SND_ERR(
L"Failed to resume thread!\n");
259 NewThread->
Events.Request,
283 SND_TRACE(
L"Sound thread terminated, performing cleanup of thread resources\n");
static VOID FreeMemory(PCREATE_DATA Data)
#define INVALID_HANDLE_VALUE
DWORD WINAPI ResumeThread(IN HANDLE hThread)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define VALIDATE_MMSYS_PARAMETER(parameter_condition)
#define AllocateStruct(thing)
struct _SOUND_THREAD * PSOUND_THREAD
MMRESULT TranslateInternalMmResult(IN MMRESULT Result)
MMRESULT(* SOUND_THREAD_REQUEST_HANDLER)(IN struct _SOUND_DEVICE_INSTANCE *SoundDeviceInstance, IN PVOID Parameter)
#define MMSUCCESS(result)
BOOLEAN IsValidSoundDeviceInstance(IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance)
MMRESULT Win32ErrorToMmResult(IN UINT ErrorCode)
#define SND_ASSERT(condition)
#define MMSYSERR_NOTSUPPORTED
DWORD WINAPI SoundThreadMain(IN LPVOID lpParameter OPTIONAL)
MMRESULT DestroySoundThreadEvents(IN HANDLE ReadyEvent, IN HANDLE RequestEvent, IN HANDLE DoneEvent)
MMRESULT CreateSoundThread(OUT PSOUND_THREAD *Thread)
MMRESULT CreateSoundThreadEvents(OUT HANDLE *ReadyEvent, OUT HANDLE *RequestEvent, OUT HANDLE *DoneEvent)
MMRESULT SoundThreadTerminator(IN PSOUND_DEVICE_INSTANCE Instance, IN PVOID Parameter)
MMRESULT CallSoundThread(IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance, IN SOUND_THREAD_REQUEST_HANDLER RequestHandler, IN PVOID Parameter OPTIONAL)
MMRESULT DestroySoundThread(IN PSOUND_THREAD Thread)
MMRESULT TerminateSoundThread(IN PSOUND_THREAD Thread)
PULONG MinorVersion OPTIONAL
struct _SOUND_THREAD::@3472 Events
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
DWORD WINAPI WaitForSingleObjectEx(IN HANDLE hHandle, IN DWORD dwMilliseconds, IN BOOL bAlertable)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
DWORD WINAPI GetLastError(void)
#define WAIT_IO_COMPLETION
_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
_Inout_opt_ PVOID Parameter