Path: blob/21.2-virgl/src/gallium/frontends/d3d10umd/D3DKMT.cpp
4566 views
/**************************************************************************1*2* Copyright 2012-2021 VMware, Inc.3* All Rights Reserved.4*5* Permission is hereby granted, free of charge, to any person obtaining a6* copy of this software and associated documentation files (the7* "Software"), to deal in the Software without restriction, including8* without limitation the rights to use, copy, modify, merge, publish,9* distribute, sub license, and/or sell copies of the Software, and to10* permit persons to whom the Software is furnished to do so, subject to11* the following conditions:12*13* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR14* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,15* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL16* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,17* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR18* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE19* USE OR OTHER DEALINGS IN THE SOFTWARE.20*21* The above copyright notice and this permission notice (including the22* next paragraph) shall be included in all copies or substantial portions23* of the Software.24*25**************************************************************************/2627/*28* D3DKMT.cpp --29* Implement kernel mode thunks, so that this can be loaded as a30* software DLL (D3D_DRIVER_TYPE_SOFTWARE).31*/323334#include "DriverIncludes.h"3536#include "Debug.h"373839#ifndef STATUS_NOT_IMPLEMENTED40#define STATUS_NOT_IMPLEMENTED 0xC000000241#endif424344EXTERN_C NTSTATUS APIENTRY45D3DKMTCreateAllocation(D3DKMT_CREATEALLOCATION *pData)46{47LOG_UNSUPPORTED_ENTRYPOINT();48return STATUS_NOT_IMPLEMENTED;49}505152EXTERN_C NTSTATUS APIENTRY53D3DKMTCreateAllocation2(D3DKMT_CREATEALLOCATION *pData)54{55LOG_UNSUPPORTED_ENTRYPOINT();56return STATUS_NOT_IMPLEMENTED;57}585960EXTERN_C NTSTATUS APIENTRY61D3DKMTQueryResourceInfo(D3DKMT_QUERYRESOURCEINFO *pData)62{63LOG_UNSUPPORTED_ENTRYPOINT();64return STATUS_NOT_IMPLEMENTED;65}666768EXTERN_C NTSTATUS APIENTRY69D3DKMTOpenResource(D3DKMT_OPENRESOURCE *pData)70{71LOG_UNSUPPORTED_ENTRYPOINT();72return STATUS_NOT_IMPLEMENTED;73}747576EXTERN_C NTSTATUS APIENTRY77D3DKMTOpenResource2(D3DKMT_OPENRESOURCE *pData)78{79LOG_UNSUPPORTED_ENTRYPOINT();80return STATUS_NOT_IMPLEMENTED;81}828384EXTERN_C NTSTATUS APIENTRY85D3DKMTDestroyAllocation(CONST D3DKMT_DESTROYALLOCATION *pData)86{87LOG_UNSUPPORTED_ENTRYPOINT();88return STATUS_NOT_IMPLEMENTED;89}909192EXTERN_C NTSTATUS APIENTRY93D3DKMTSetAllocationPriority(CONST D3DKMT_SETALLOCATIONPRIORITY *pData)94{95LOG_UNSUPPORTED_ENTRYPOINT();96return STATUS_NOT_IMPLEMENTED;97}9899100EXTERN_C NTSTATUS APIENTRY101D3DKMTQueryAllocationResidency(CONST D3DKMT_QUERYALLOCATIONRESIDENCY *pData)102{103LOG_UNSUPPORTED_ENTRYPOINT();104return STATUS_NOT_IMPLEMENTED;105}106107108EXTERN_C NTSTATUS APIENTRY109D3DKMTCreateDevice(D3DKMT_CREATEDEVICE *pData)110{111LOG_ENTRYPOINT();112pData->hDevice = 1;113return STATUS_SUCCESS;114}115116117EXTERN_C NTSTATUS APIENTRY118D3DKMTDestroyDevice(CONST D3DKMT_DESTROYDEVICE *pData)119{120LOG_ENTRYPOINT();121return STATUS_SUCCESS;122}123124125EXTERN_C NTSTATUS APIENTRY126D3DKMTCreateContext(D3DKMT_CREATECONTEXT *pData)127{128LOG_UNSUPPORTED_ENTRYPOINT();129return STATUS_NOT_IMPLEMENTED;130}131132133EXTERN_C NTSTATUS APIENTRY134D3DKMTDestroyContext(CONST D3DKMT_DESTROYCONTEXT *pData)135{136LOG_UNSUPPORTED_ENTRYPOINT();137return STATUS_NOT_IMPLEMENTED;138}139140141EXTERN_C NTSTATUS APIENTRY142D3DKMTCreateSynchronizationObject(D3DKMT_CREATESYNCHRONIZATIONOBJECT *pData)143{144LOG_UNSUPPORTED_ENTRYPOINT();145return STATUS_NOT_IMPLEMENTED;146}147148149EXTERN_C NTSTATUS APIENTRY150D3DKMTCreateSynchronizationObject2(D3DKMT_CREATESYNCHRONIZATIONOBJECT2 *pData)151{152LOG_UNSUPPORTED_ENTRYPOINT();153return STATUS_NOT_IMPLEMENTED;154}155156157EXTERN_C NTSTATUS APIENTRY158D3DKMTOpenSynchronizationObject(D3DKMT_OPENSYNCHRONIZATIONOBJECT *pData)159{160LOG_UNSUPPORTED_ENTRYPOINT();161return STATUS_NOT_IMPLEMENTED;162}163164165EXTERN_C NTSTATUS APIENTRY166D3DKMTDestroySynchronizationObject(CONST D3DKMT_DESTROYSYNCHRONIZATIONOBJECT *pData)167{168LOG_UNSUPPORTED_ENTRYPOINT();169return STATUS_NOT_IMPLEMENTED;170}171172173EXTERN_C NTSTATUS APIENTRY174D3DKMTWaitForSynchronizationObject(CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECT *pData)175{176LOG_UNSUPPORTED_ENTRYPOINT();177return STATUS_NOT_IMPLEMENTED;178}179180181EXTERN_C NTSTATUS APIENTRY182D3DKMTWaitForSynchronizationObject2(CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 *pData)183{184LOG_UNSUPPORTED_ENTRYPOINT();185return STATUS_NOT_IMPLEMENTED;186}187188189EXTERN_C NTSTATUS APIENTRY190D3DKMTSignalSynchronizationObject(CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECT *pData)191{192LOG_UNSUPPORTED_ENTRYPOINT();193return STATUS_NOT_IMPLEMENTED;194}195196197EXTERN_C NTSTATUS APIENTRY198D3DKMTSignalSynchronizationObject2(CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 *pData)199{200LOG_UNSUPPORTED_ENTRYPOINT();201return STATUS_NOT_IMPLEMENTED;202}203204205EXTERN_C NTSTATUS APIENTRY206D3DKMTLock(D3DKMT_LOCK *pData)207{208LOG_UNSUPPORTED_ENTRYPOINT();209return STATUS_NOT_IMPLEMENTED;210}211212213EXTERN_C NTSTATUS APIENTRY214D3DKMTUnlock(CONST D3DKMT_UNLOCK *pData)215{216LOG_UNSUPPORTED_ENTRYPOINT();217return STATUS_NOT_IMPLEMENTED;218}219220221EXTERN_C NTSTATUS APIENTRY222D3DKMTGetDisplayModeList(D3DKMT_GETDISPLAYMODELIST *pData)223{224LOG_UNSUPPORTED_ENTRYPOINT();225return STATUS_NOT_IMPLEMENTED;226}227228229EXTERN_C NTSTATUS APIENTRY230D3DKMTSetDisplayMode(CONST D3DKMT_SETDISPLAYMODE *pData)231{232LOG_UNSUPPORTED_ENTRYPOINT();233return STATUS_NOT_IMPLEMENTED;234}235236237EXTERN_C NTSTATUS APIENTRY238D3DKMTGetMultisampleMethodList(D3DKMT_GETMULTISAMPLEMETHODLIST *pData)239{240LOG_UNSUPPORTED_ENTRYPOINT();241return STATUS_NOT_IMPLEMENTED;242}243244245EXTERN_C NTSTATUS APIENTRY246D3DKMTPresent(CONST D3DKMT_PRESENT *pData)247{248LOG_UNSUPPORTED_ENTRYPOINT();249return STATUS_NOT_IMPLEMENTED;250}251252253EXTERN_C NTSTATUS APIENTRY254D3DKMTRender(D3DKMT_RENDER *pData)255{256LOG_UNSUPPORTED_ENTRYPOINT();257return STATUS_NOT_IMPLEMENTED;258}259260261EXTERN_C NTSTATUS APIENTRY262D3DKMTGetRuntimeData(CONST D3DKMT_GETRUNTIMEDATA *pData)263{264LOG_UNSUPPORTED_ENTRYPOINT();265return STATUS_NOT_IMPLEMENTED;266}267268269EXTERN_C NTSTATUS APIENTRY270D3DKMTQueryAdapterInfo(CONST D3DKMT_QUERYADAPTERINFO *pData)271{272LOG_ENTRYPOINT();273274switch (pData->Type) {275case KMTQAITYPE_UMDRIVERNAME:276{277D3DKMT_UMDFILENAMEINFO *pResult =278(D3DKMT_UMDFILENAMEINFO *)pData->pPrivateDriverData;279if (pResult->Version != KMTUMDVERSION_DX10 &&280pResult->Version != KMTUMDVERSION_DX11) {281DebugPrintf("%s: unsupported UMD version (%u)\n",282__FUNCTION__, pResult->Version);283return STATUS_INVALID_PARAMETER;284}285HMODULE hModule = 0;286BOOL bRet;287DWORD dwRet;288bRet = GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,289(LPCTSTR)D3DKMTQueryAdapterInfo,290&hModule);291assert(bRet);292dwRet = GetModuleFileNameW(hModule, pResult->UmdFileName, MAX_PATH);293assert(dwRet);294return STATUS_SUCCESS;295}296break;297case KMTQAITYPE_GETSEGMENTSIZE:298{299D3DKMT_SEGMENTSIZEINFO *pResult =300(D3DKMT_SEGMENTSIZEINFO *)pData->pPrivateDriverData;301pResult->DedicatedVideoMemorySize = 0;302pResult->DedicatedSystemMemorySize = 0;303pResult->SharedSystemMemorySize = 3ULL*1024ULL*1024ULL*1024ULL;304return STATUS_SUCCESS;305}306break;307case KMTQAITYPE_CHECKDRIVERUPDATESTATUS:308{309BOOL *pResult = (BOOL *)pData->pPrivateDriverData;310*pResult = FALSE;311return STATUS_SUCCESS;312}313case KMTQAITYPE_DRIVERVERSION:314{315D3DKMT_DRIVERVERSION *pResult = (D3DKMT_DRIVERVERSION *)pData->pPrivateDriverData;316*pResult = KMT_DRIVERVERSION_WDDM_1_0;317return STATUS_SUCCESS;318}319case KMTQAITYPE_XBOX:320{321BOOL *pResult = (BOOL *)pData->pPrivateDriverData;322*pResult = FALSE;323return STATUS_SUCCESS;324}325case KMTQAITYPE_PHYSICALADAPTERCOUNT:326{327UINT *pResult = (UINT *)pData->pPrivateDriverData;328*pResult = 1;329return STATUS_SUCCESS;330}331case KMTQAITYPE_PHYSICALADAPTERDEVICEIDS:332ZeroMemory(pData->pPrivateDriverData, pData->PrivateDriverDataSize);333return STATUS_SUCCESS;334default:335DebugPrintf("%s: unsupported query type (Type=%u, PrivateDriverDataSize=%u)\n",336__FUNCTION__, pData->Type, pData->PrivateDriverDataSize);337ZeroMemory(pData->pPrivateDriverData, pData->PrivateDriverDataSize);338return STATUS_NOT_IMPLEMENTED;339}340}341342343EXTERN_C NTSTATUS APIENTRY344D3DKMTOpenAdapterFromHdc(D3DKMT_OPENADAPTERFROMHDC *pData)345{346LOG_ENTRYPOINT();347pData->hAdapter = 1;348pData->AdapterLuid.LowPart = 0;349pData->AdapterLuid.HighPart = 0;350pData->VidPnSourceId = 1;351return STATUS_SUCCESS;352}353354355EXTERN_C NTSTATUS APIENTRY356D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *pData)357{358LOG_ENTRYPOINT();359pData->hAdapter = 1;360pData->AdapterLuid.LowPart = 0;361pData->AdapterLuid.HighPart = 0;362pData->VidPnSourceId = 1;363return STATUS_SUCCESS;364}365366367EXTERN_C NTSTATUS APIENTRY368D3DKMTOpenAdapterFromDeviceName(D3DKMT_OPENADAPTERFROMDEVICENAME *pData)369{370LOG_ENTRYPOINT();371pData->hAdapter = 1;372pData->AdapterLuid.LowPart = 0;373pData->AdapterLuid.HighPart = 0;374return STATUS_SUCCESS;375}376377378EXTERN_C NTSTATUS APIENTRY379D3DKMTCloseAdapter(CONST D3DKMT_CLOSEADAPTER *pData)380{381LOG_ENTRYPOINT();382return STATUS_SUCCESS;383}384385386EXTERN_C NTSTATUS APIENTRY387D3DKMTGetSharedPrimaryHandle(D3DKMT_GETSHAREDPRIMARYHANDLE *pData)388{389LOG_UNSUPPORTED_ENTRYPOINT();390return STATUS_NOT_IMPLEMENTED;391}392393394EXTERN_C NTSTATUS APIENTRY395D3DKMTEscape(CONST D3DKMT_ESCAPE *pData)396{397LOG_UNSUPPORTED_ENTRYPOINT();398return STATUS_NOT_IMPLEMENTED;399}400401402EXTERN_C NTSTATUS APIENTRY403D3DKMTSetVidPnSourceOwner(CONST D3DKMT_SETVIDPNSOURCEOWNER *pData)404{405LOG_UNSUPPORTED_ENTRYPOINT();406return STATUS_NOT_IMPLEMENTED;407}408409410EXTERN_C NTSTATUS APIENTRY411D3DKMTSetVidPnSourceOwner1(const void *pData)412{413LOG_UNSUPPORTED_ENTRYPOINT();414return STATUS_NOT_IMPLEMENTED;415}416417418EXTERN_C NTSTATUS APIENTRY419D3DKMTGetPresentHistory(D3DKMT_GETPRESENTHISTORY *pData)420{421LOG_UNSUPPORTED_ENTRYPOINT();422return STATUS_NOT_IMPLEMENTED;423}424425426EXTERN_C NTSTATUS APIENTRY427D3DKMTGetPresentQueueEvent(D3DKMT_HANDLE hAdapter, HANDLE *pData)428{429LOG_UNSUPPORTED_ENTRYPOINT();430return STATUS_NOT_IMPLEMENTED;431}432433434EXTERN_C NTSTATUS APIENTRY435D3DKMTCreateOverlay(D3DKMT_CREATEOVERLAY *pData)436{437LOG_UNSUPPORTED_ENTRYPOINT();438return STATUS_NOT_IMPLEMENTED;439}440441442EXTERN_C NTSTATUS APIENTRY443D3DKMTUpdateOverlay(CONST D3DKMT_UPDATEOVERLAY *pData)444{445LOG_UNSUPPORTED_ENTRYPOINT();446return STATUS_NOT_IMPLEMENTED;447}448449450EXTERN_C NTSTATUS APIENTRY451D3DKMTFlipOverlay(CONST D3DKMT_FLIPOVERLAY *pData)452{453LOG_UNSUPPORTED_ENTRYPOINT();454return STATUS_NOT_IMPLEMENTED;455}456457458EXTERN_C NTSTATUS APIENTRY459D3DKMTDestroyOverlay(CONST D3DKMT_DESTROYOVERLAY *pData)460{461LOG_UNSUPPORTED_ENTRYPOINT();462return STATUS_NOT_IMPLEMENTED;463}464465466EXTERN_C NTSTATUS APIENTRY467D3DKMTWaitForVerticalBlankEvent(CONST D3DKMT_WAITFORVERTICALBLANKEVENT *pData)468{469LOG_ENTRYPOINT();470return STATUS_SUCCESS;471}472473474EXTERN_C NTSTATUS APIENTRY475D3DKMTSetGammaRamp(CONST D3DKMT_SETGAMMARAMP *pData)476{477LOG_UNSUPPORTED_ENTRYPOINT();478return STATUS_NOT_IMPLEMENTED;479}480481482EXTERN_C NTSTATUS APIENTRY483D3DKMTGetDeviceState(D3DKMT_GETDEVICESTATE *pData)484{485LOG_ENTRYPOINT();486switch (pData->StateType) {487case D3DKMT_DEVICESTATE_EXECUTION:488pData->ExecutionState = D3DKMT_DEVICEEXECUTION_ACTIVE;489return STATUS_SUCCESS;490case D3DKMT_DEVICESTATE_PRESENT:491pData->PresentState.PresentStats.PresentCount = 0;492pData->PresentState.PresentStats.PresentRefreshCount = 0;493pData->PresentState.PresentStats.SyncRefreshCount = 0;494pData->PresentState.PresentStats.SyncQPCTime.QuadPart = 0;495pData->PresentState.PresentStats.SyncGPUTime.QuadPart = 0;496return STATUS_SUCCESS;497case D3DKMT_DEVICESTATE_RESET:498pData->ResetState.Value = 0;499return STATUS_SUCCESS;500default:501return STATUS_INVALID_PARAMETER;502}503}504505506EXTERN_C NTSTATUS APIENTRY507D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *pData)508{509LOG_UNSUPPORTED_ENTRYPOINT();510return STATUS_NOT_IMPLEMENTED;511}512513514EXTERN_C NTSTATUS APIENTRY515D3DKMTDestroyDCFromMemory(CONST D3DKMT_DESTROYDCFROMMEMORY *pData)516{517LOG_UNSUPPORTED_ENTRYPOINT();518return STATUS_NOT_IMPLEMENTED;519}520521522EXTERN_C NTSTATUS APIENTRY523D3DKMTSetContextSchedulingPriority(CONST D3DKMT_SETCONTEXTSCHEDULINGPRIORITY *pData)524{525LOG_UNSUPPORTED_ENTRYPOINT();526return STATUS_NOT_IMPLEMENTED;527}528529530EXTERN_C NTSTATUS APIENTRY531D3DKMTGetContextSchedulingPriority(D3DKMT_GETCONTEXTSCHEDULINGPRIORITY *pData)532{533LOG_UNSUPPORTED_ENTRYPOINT();534return STATUS_NOT_IMPLEMENTED;535}536537538EXTERN_C NTSTATUS APIENTRY539D3DKMTSetProcessSchedulingPriorityClass(HANDLE hProcess, D3DKMT_SCHEDULINGPRIORITYCLASS Priority)540{541LOG_UNSUPPORTED_ENTRYPOINT();542return STATUS_NOT_IMPLEMENTED;543}544545546EXTERN_C NTSTATUS APIENTRY547D3DKMTGetProcessSchedulingPriorityClass(HANDLE hProcess, D3DKMT_SCHEDULINGPRIORITYCLASS *pPriority)548{549LOG_UNSUPPORTED_ENTRYPOINT();550return STATUS_NOT_IMPLEMENTED;551}552553554EXTERN_C NTSTATUS APIENTRY555D3DKMTReleaseProcessVidPnSourceOwners(HANDLE hProcess)556{557LOG_UNSUPPORTED_ENTRYPOINT();558return STATUS_NOT_IMPLEMENTED;559}560561562EXTERN_C NTSTATUS APIENTRY563D3DKMTGetScanLine(D3DKMT_GETSCANLINE *pData)564{565LOG_UNSUPPORTED_ENTRYPOINT();566return STATUS_NOT_IMPLEMENTED;567}568569570EXTERN_C NTSTATUS APIENTRY571D3DKMTChangeSurfacePointer(CONST D3DKMT_CHANGESURFACEPOINTER *pData)572{573LOG_UNSUPPORTED_ENTRYPOINT();574return STATUS_NOT_IMPLEMENTED;575}576577578EXTERN_C NTSTATUS APIENTRY579D3DKMTSetQueuedLimit(CONST D3DKMT_SETQUEUEDLIMIT *pData)580{581LOG_UNSUPPORTED_ENTRYPOINT();582return STATUS_NOT_IMPLEMENTED;583}584585586EXTERN_C NTSTATUS APIENTRY587D3DKMTPollDisplayChildren(CONST D3DKMT_POLLDISPLAYCHILDREN *pData)588{589LOG_UNSUPPORTED_ENTRYPOINT();590return STATUS_NOT_IMPLEMENTED;591}592593594EXTERN_C NTSTATUS APIENTRY595D3DKMTInvalidateActiveVidPn(CONST D3DKMT_INVALIDATEACTIVEVIDPN *pData)596{597LOG_UNSUPPORTED_ENTRYPOINT();598return STATUS_NOT_IMPLEMENTED;599}600601602EXTERN_C NTSTATUS APIENTRY603D3DKMTCheckOcclusion(CONST D3DKMT_CHECKOCCLUSION *pData)604{605LOG_UNSUPPORTED_ENTRYPOINT();606return STATUS_NOT_IMPLEMENTED;607}608609610EXTERN_C NTSTATUS APIENTRY611D3DKMTWaitForIdle(CONST D3DKMT_WAITFORIDLE *pData)612{613LOG_UNSUPPORTED_ENTRYPOINT();614return STATUS_NOT_IMPLEMENTED;615}616617618EXTERN_C NTSTATUS APIENTRY619D3DKMTCheckMonitorPowerState(CONST D3DKMT_CHECKMONITORPOWERSTATE *pData)620{621LOG_UNSUPPORTED_ENTRYPOINT();622return STATUS_NOT_IMPLEMENTED;623}624625626EXTERN_C BOOLEAN APIENTRY627D3DKMTCheckExclusiveOwnership(VOID)628{629LOG_UNSUPPORTED_ENTRYPOINT();630return FALSE;631}632633634EXTERN_C NTSTATUS APIENTRY635D3DKMTCheckVidPnExclusiveOwnership(CONST D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *pData)636{637LOG_UNSUPPORTED_ENTRYPOINT();638return STATUS_NOT_IMPLEMENTED;639}640641642EXTERN_C NTSTATUS APIENTRY643D3DKMTSetDisplayPrivateDriverFormat(CONST D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT *pData)644{645LOG_UNSUPPORTED_ENTRYPOINT();646return STATUS_NOT_IMPLEMENTED;647}648649650EXTERN_C NTSTATUS APIENTRY651D3DKMTSharedPrimaryLockNotification(CONST D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION *pData)652{653LOG_UNSUPPORTED_ENTRYPOINT();654return STATUS_NOT_IMPLEMENTED;655}656657658EXTERN_C NTSTATUS APIENTRY659D3DKMTSharedPrimaryUnLockNotification(CONST D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION *pData)660{661LOG_UNSUPPORTED_ENTRYPOINT();662return STATUS_NOT_IMPLEMENTED;663}664665666EXTERN_C NTSTATUS APIENTRY667D3DKMTCreateKeyedMutex(D3DKMT_CREATEKEYEDMUTEX *pData)668{669LOG_UNSUPPORTED_ENTRYPOINT();670return STATUS_NOT_IMPLEMENTED;671}672673674EXTERN_C NTSTATUS APIENTRY675D3DKMTOpenKeyedMutex(D3DKMT_OPENKEYEDMUTEX *pData)676{677LOG_UNSUPPORTED_ENTRYPOINT();678return STATUS_NOT_IMPLEMENTED;679}680681682EXTERN_C NTSTATUS APIENTRY683D3DKMTDestroyKeyedMutex(CONST D3DKMT_DESTROYKEYEDMUTEX *pData)684{685LOG_UNSUPPORTED_ENTRYPOINT();686return STATUS_NOT_IMPLEMENTED;687}688689690EXTERN_C NTSTATUS APIENTRY691D3DKMTAcquireKeyedMutex(D3DKMT_ACQUIREKEYEDMUTEX *pData)692{693LOG_UNSUPPORTED_ENTRYPOINT();694return STATUS_NOT_IMPLEMENTED;695}696697698EXTERN_C NTSTATUS APIENTRY699D3DKMTReleaseKeyedMutex(D3DKMT_RELEASEKEYEDMUTEX *pData)700{701LOG_UNSUPPORTED_ENTRYPOINT();702return STATUS_NOT_IMPLEMENTED;703}704705706EXTERN_C NTSTATUS APIENTRY707D3DKMTConfigureSharedResource(CONST D3DKMT_CONFIGURESHAREDRESOURCE *pData)708{709LOG_UNSUPPORTED_ENTRYPOINT();710return STATUS_NOT_IMPLEMENTED;711}712713714EXTERN_C NTSTATUS APIENTRY715D3DKMTGetOverlayState(D3DKMT_GETOVERLAYSTATE *pData)716{717LOG_UNSUPPORTED_ENTRYPOINT();718return STATUS_NOT_IMPLEMENTED;719}720721722EXTERN_C NTSTATUS APIENTRY723D3DKMTCheckSharedResourceAccess(CONST D3DKMT_CHECKSHAREDRESOURCEACCESS *pData)724{725LOG_UNSUPPORTED_ENTRYPOINT();726return STATUS_NOT_IMPLEMENTED;727}728729730