mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 10:11:48 +00:00
Implement WaveThreadGetData
svn path=/trunk/; revision=19425
This commit is contained in:
parent
c902c40ab5
commit
8b4bd72ee1
1 changed files with 35 additions and 2 deletions
|
@ -97,8 +97,41 @@ static DWORD waveThread(LPVOID lpParameter)
|
|||
DPRINT("UNIMPLMENENT WaveThreadSetState ");
|
||||
break;
|
||||
|
||||
case WaveThreadGetData:
|
||||
DPRINT("UNIMPLMENENT WaveThreadGetData ");
|
||||
case WaveThreadGetData:
|
||||
{
|
||||
OVERLAPPED Overlap;
|
||||
DWORD BytesReturned;
|
||||
|
||||
// FIXME
|
||||
// Assert(hDev != NULL);
|
||||
|
||||
memset(&Overlap, 0, sizeof(Overlap));
|
||||
|
||||
Overlap.hEvent = pClient->Event;
|
||||
|
||||
if (!DeviceIoControl(pClient->hDev, pClient->AuxParam.GetSetData.Function, NULL, 0,
|
||||
pClient->AuxParam.GetSetData.pData, pClient->AuxParam.GetSetData.DataLen,
|
||||
&BytesReturned, &Overlap))
|
||||
{
|
||||
DWORD cbTransfer;
|
||||
|
||||
if (GetLastError() != ERROR_IO_PENDING)
|
||||
pClient->AuxReturnCode = TranslateStatus();
|
||||
else
|
||||
{
|
||||
|
||||
if (!GetOverlappedResult(pClient->hDev, &Overlap, &cbTransfer, TRUE))
|
||||
pClient->AuxReturnCode = TranslateStatus();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while (SetEvent(pClient->Event) && WaitForSingleObjectEx(pClient->Event, 0, TRUE) ==
|
||||
WAIT_IO_COMPLETION) {}
|
||||
|
||||
pClient->AuxReturnCode = MMSYSERR_NOERROR;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case WaveThreadSetData:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue