From 70d49978115fcefaf660393819fd330c6b90c6aa Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Sat, 2 Jan 2010 01:53:22 +0000 Subject: [PATCH] [WDMAUD.DRV] - Implement AllocEventData, FreeEventData for mmixer library svn path=/trunk/; revision=44873 --- reactos/dll/win32/wdmaud.drv/mmixer.c | 35 +++++++++++++++++++++- reactos/dll/win32/wdmaud.drv/wdmaud.rbuild | 2 +- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/wdmaud.drv/mmixer.c b/reactos/dll/win32/wdmaud.drv/mmixer.c index bdf5875d193..ab1ba6fb242 100644 --- a/reactos/dll/win32/wdmaud.drv/mmixer.c +++ b/reactos/dll/win32/wdmaud.drv/mmixer.c @@ -20,6 +20,8 @@ MIXER_STATUS Enum(IN PVOID EnumContext, IN ULONG DeviceIndex, OUT LPWSTR * Dev MIXER_STATUS OpenKey(IN HANDLE hKey, IN LPWSTR SubKey, IN ULONG DesiredAccess, OUT PHANDLE OutKey); MIXER_STATUS CloseKey(IN HANDLE hKey); MIXER_STATUS QueryKeyValue(IN HANDLE hKey, IN LPWSTR KeyName, OUT PVOID * ResultBuffer, OUT PULONG ResultLength, OUT PULONG KeyType); +PVOID AllocEventData(IN ULONG ExtraSize); +VOID FreeEventData(IN PVOID EventData); MIXER_CONTEXT MixerContext = { @@ -33,7 +35,9 @@ MIXER_CONTEXT MixerContext = Copy, OpenKey, QueryKeyValue, - CloseKey + CloseKey, + AllocEventData, + FreeEventData }; GUID CategoryGuid = {STATIC_KSCATEGORY_AUDIO}; @@ -285,6 +289,35 @@ Enum( return Status; } +PVOID +AllocEventData( + IN ULONG ExtraSize) +{ + PKSEVENTDATA Data = (PKSEVENTDATA)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(KSEVENTDATA) + ExtraSize); + if (!Data) + return NULL; + + Data->EventHandle.Event = CreateEventW(NULL, FALSE, FALSE, NULL); + if (!Data->EventHandle.Event) + { + HeapFree(GetProcessHeap(), 0, Data); + return NULL; + } + + Data->NotificationType = KSEVENTF_EVENT_HANDLE; + return Data; +} + +VOID +FreeEventData(IN PVOID EventData) +{ + PKSEVENTDATA Data = (PKSEVENTDATA)EventData; + + CloseHandle(Data->EventHandle.Event); + HeapFree(GetProcessHeap(), 0, Data); +} + + BOOL WdmAudInitUserModeMixer() { diff --git a/reactos/dll/win32/wdmaud.drv/wdmaud.rbuild b/reactos/dll/win32/wdmaud.drv/wdmaud.rbuild index 69b1f5729ed..31039ccabf7 100644 --- a/reactos/dll/win32/wdmaud.drv/wdmaud.rbuild +++ b/reactos/dll/win32/wdmaud.drv/wdmaud.rbuild @@ -5,7 +5,7 @@ . . . - + 1 mmebuddy ntdll