implement WaveThreadSetData
Modified: trunk/reactos/lib/mmdrv/wave.c
_____
Modified: trunk/reactos/lib/mmdrv/wave.c
--- trunk/reactos/lib/mmdrv/wave.c 2005-11-21 20:46:55 UTC (rev
19421)
+++ trunk/reactos/lib/mmdrv/wave.c 2005-11-21 20:56:50 UTC (rev
19422)
@@ -102,7 +102,33 @@
break;
case WaveThreadSetData:
- DPRINT("UNIMPLMENENT WaveThreadGetData ");
+ {
+ OVERLAPPED Overlap;
+ DWORD BytesReturned;
+ memset((PVOID)&Overlap, 0, sizeof(Overlap));
+ Overlap.hEvent = pClient->Event;
+
+ if (!DeviceIoControl(pClient->hDev,
pClient->AuxParam.GetSetData.Function,
+
pClient->AuxParam.GetSetData.pData,
pClient->AuxParam.GetSetData.DataLen,
+ NULL, 0, &BytesReturned,
&Overlap))
+ {
+ DWORD cbTransfer;
+ if (GetLastError() == ERROR_IO_PENDING)
+ {
+ if (!GetOverlappedResult(pClient->hDev,
&Overlap, &cbTransfer, TRUE))
+ pClient->AuxReturnCode =
TranslateStatus();
+ }
+ else
+ pClient->AuxReturnCode = TranslateStatus();
+
+ }
+ else
+ {
+ while (SleepEx(0, TRUE) == WAIT_IO_COMPLETION)
{}
+
+ pClient->AuxReturnCode = MMSYSERR_NOERROR;
+ }
+ }
break;
case WaveThreadBreakLoop:
Show replies by date