/************************************************************************** * mmioGetInfo [MMSYSTEM.1215] */ MMRESULT16 WINAPI mmioGetInfo16(HMMIO16 hmmio, MMIOINFO16* lpmmioinfo, UINT16 uFlags) { MMIOINFO mmioinfo; MMRESULT ret; struct mmio_thunk* thunk; TRACE("(0x%04x,%p,0x%08x)\n", hmmio, lpmmioinfo, uFlags); EnterCriticalSection(&mmio_cs); if ((thunk = MMIO_HasThunk(HMMIO_32(hmmio))) == NULL) { LeaveCriticalSection(&mmio_cs); return MMSYSERR_INVALHANDLE; } ret = mmioGetInfo(HMMIO_32(hmmio), &mmioinfo, uFlags); if (ret != MMSYSERR_NOERROR) { LeaveCriticalSection(&mmio_cs); return ret; } lpmmioinfo->dwFlags = mmioinfo.dwFlags; lpmmioinfo->fccIOProc = mmioinfo.fccIOProc; lpmmioinfo->pIOProc = thunk->pfn16; lpmmioinfo->wErrorRet = mmioinfo.wErrorRet; lpmmioinfo->hTask = HTASK_16(mmioinfo.hTask); lpmmioinfo->cchBuffer = mmioinfo.cchBuffer; lpmmioinfo->pchBuffer = (void*)thunk->segbuffer; lpmmioinfo->pchNext = (void*)(thunk->segbuffer + (mmioinfo.pchNext - mmioinfo.pchBuffer)); lpmmioinfo->pchEndRead = (void*)(thunk->segbuffer + (mmioinfo.pchEndRead - mmioinfo.pchBuffer)); lpmmioinfo->pchEndWrite = (void*)(thunk->segbuffer + (mmioinfo.pchEndWrite - mmioinfo.pchBuffer)); lpmmioinfo->lBufOffset = mmioinfo.lBufOffset; lpmmioinfo->lDiskOffset = mmioinfo.lDiskOffset; lpmmioinfo->adwInfo[0] = mmioinfo.adwInfo[0]; lpmmioinfo->adwInfo[1] = mmioinfo.adwInfo[1]; lpmmioinfo->adwInfo[2] = mmioinfo.adwInfo[2]; lpmmioinfo->dwReserved1 = 0; lpmmioinfo->dwReserved2 = 0; lpmmioinfo->hmmio = HMMIO_16(mmioinfo.hmmio); LeaveCriticalSection(&mmio_cs); return MMSYSERR_NOERROR; }
/************************************************************************** * mciGetCreatorTask [MMSYSTEM.717] */ HTASK16 WINAPI mciGetCreatorTask16(UINT16 uDeviceID) { return HTASK_16(mciGetCreatorTask(uDeviceID)); }