#include "wdmaud.h"
+#include <stdio.h>
+
#define KERNEL_DEVICE_NAME L"\\\\.\\wdmaud"
-extern HANDLE KernelHandle;
+
+HANDLE KernelHandle = INVALID_HANDLE_VALUE;
DWORD OpenCount = 0;
DWORD
return 0;
}
-VOID
-WdmAudCleanupLegacy()
+MMRESULT
+WdmAudCleanupByLegacy()
{
- if ( KernelHandle != INVALID_HANDLE_VALUE )
+ if (KernelHandle != INVALID_HANDLE_VALUE)
{
CloseHandle(KernelHandle);
KernelHandle = INVALID_HANDLE_VALUE;
}
+
+ return MMSYSERR_NOERROR;
}
MMRESULT
WDMAUD_DEVICE_INFO DeviceInfo;
HANDLE hThread;
-
Instance->hNotifyEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
if ( ! Instance->hNotifyEvent )
return MMSYSERR_NOMEM;
- if (Instance->Handle != KernelHandle)
+ if (Instance->Handle != NULL)
{
/* device is already open */
return MMSYSERR_NOERROR;
return TranslateInternalMmResult(Result);
}
- if (Instance->Handle != KernelHandle)
+ if (Instance->Handle != NULL)
{
/* device is already open */
return MMSYSERR_NOERROR;
}
MMRESULT
-WriteFileEx_Committer2(
+WdmAudCommitWaveBufferByLegacy(
IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
IN PVOID OffsetPtr,
IN DWORD Length,
VALIDATE_MMSYS_PARAMETER( CompletionRoutine );
GetSoundDeviceInstanceHandle(SoundDeviceInstance, &Handle);
-
+ SND_ASSERT(Handle);
Result = GetSoundDeviceFromInstance(SoundDeviceInstance, &SoundDevice);
Result = GetSoundDeviceType(SoundDevice, &DeviceType);
SND_ASSERT( Result == MMSYSERR_NOERROR );
- SND_ASSERT(Handle);
-
ZeroMemory(&DeviceInfo, sizeof(WDMAUD_DEVICE_INFO));
DeviceInfo.Header.FrameExtent = Length;
DeviceInfo.hDevice = Handle;
DeviceInfo.DeviceType = DeviceType;
+
+
Overlap->Standard.hEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
if (DeviceType == WAVE_OUT_DEVICE_TYPE)
}
+
MMRESULT
WdmAudSetWaveStateByLegacy(
IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,