From: Rémi Bernon rbernon@codeweavers.com
--- include/ddk/d3dkmthk.h | 79 ++++++++++++++++++++++++++++++++++++++++++ include/ntgdi.h | 6 ++++ 2 files changed, 85 insertions(+)
diff --git a/include/ddk/d3dkmthk.h b/include/ddk/d3dkmthk.h index d5d8015ddf7..7d47a0572f7 100644 --- a/include/ddk/d3dkmthk.h +++ b/include/ddk/d3dkmthk.h @@ -782,6 +782,79 @@ typedef struct _D3DKMT_ENUMADAPTERS2 D3DKMT_ADAPTERINFO *pAdapters; } D3DKMT_ENUMADAPTERS2;
+typedef struct _D3DKMT_CREATEKEYEDMUTEX +{ + UINT64 InitialValue; + D3DKMT_HANDLE hSharedHandle; + D3DKMT_HANDLE hKeyedMutex; +} D3DKMT_CREATEKEYEDMUTEX; + +typedef struct _D3DDDICB_SIGNALFLAGS +{ + union + { + struct + { + UINT SignalAtSubmission : 1; + UINT EnqueueCpuEvent : 1; + UINT AllowFenceRewind : 1; + UINT Reserved : 28; + UINT DXGK_SIGNAL_FLAG_INTERNAL0 : 1; + }; + UINT Value; + }; +} D3DDDICB_SIGNALFLAGS; + +typedef struct _D3DKMT_CREATEKEYEDMUTEX2_FLAGS +{ + union + { + struct + { + UINT NtSecuritySharing : 1; + UINT Reserved : 31; + }; + UINT Value; + }; +} D3DKMT_CREATEKEYEDMUTEX2_FLAGS; + +typedef struct _D3DKMT_CREATEKEYEDMUTEX2 +{ + UINT64 InitialValue; + D3DKMT_HANDLE hSharedHandle; + D3DKMT_HANDLE hKeyedMutex; + void *pPrivateRuntimeData; + UINT PrivateRuntimeDataSize; + D3DKMT_CREATEKEYEDMUTEX2_FLAGS Flags; +} D3DKMT_CREATEKEYEDMUTEX2; + +typedef struct _D3DKMT_DESTROYKEYEDMUTEX +{ + D3DKMT_HANDLE hKeyedMutex; +} D3DKMT_DESTROYKEYEDMUTEX; + +typedef struct _D3DKMT_OPENKEYEDMUTEX +{ + D3DKMT_HANDLE hSharedHandle; + D3DKMT_HANDLE hKeyedMutex; +} D3DKMT_OPENKEYEDMUTEX; + +typedef struct _D3DKMT_OPENKEYEDMUTEX2 +{ + D3DKMT_HANDLE hSharedHandle; + D3DKMT_HANDLE hKeyedMutex; + void *pPrivateRuntimeData; + UINT PrivateRuntimeDataSize; +} D3DKMT_OPENKEYEDMUTEX2; + +typedef struct _D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE +{ + HANDLE hNtHandle; + D3DKMT_HANDLE hKeyedMutex; + void *pPrivateRuntimeData; + UINT PrivateRuntimeDataSize; +} D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE; + typedef ULONGLONG D3DGPU_VIRTUAL_ADDRESS;
typedef struct _D3DKMT_CREATESTANDARDALLOCATIONFLAGS @@ -1033,15 +1106,21 @@ NTSTATUS WINAPI D3DKMTCreateAllocation( D3DKMT_CREATEALLOCATION *params ); NTSTATUS WINAPI D3DKMTCreateAllocation2( D3DKMT_CREATEALLOCATION *params ); NTSTATUS WINAPI D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *desc); NTSTATUS WINAPI D3DKMTCreateDevice(D3DKMT_CREATEDEVICE *desc); +NTSTATUS WINAPI D3DKMTCreateKeyedMutex( D3DKMT_CREATEKEYEDMUTEX *params ); +NTSTATUS WINAPI D3DKMTCreateKeyedMutex2( D3DKMT_CREATEKEYEDMUTEX2 *params ); NTSTATUS WINAPI D3DKMTDestroyAllocation( const D3DKMT_DESTROYALLOCATION *params ); NTSTATUS WINAPI D3DKMTDestroyAllocation2( const D3DKMT_DESTROYALLOCATION2 *params ); NTSTATUS WINAPI D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY *desc); NTSTATUS WINAPI D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE *desc); +NTSTATUS WINAPI D3DKMTDestroyKeyedMutex( const D3DKMT_DESTROYKEYEDMUTEX *params ); NTSTATUS WINAPI D3DKMTEnumAdapters2(D3DKMT_ENUMADAPTERS2 *desc); NTSTATUS WINAPI D3DKMTEscape( const D3DKMT_ESCAPE *desc ); NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc); NTSTATUS WINAPI D3DKMTOpenAdapterFromHdc( D3DKMT_OPENADAPTERFROMHDC *desc ); NTSTATUS WINAPI D3DKMTOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID * desc ); +NTSTATUS WINAPI D3DKMTOpenKeyedMutex( D3DKMT_OPENKEYEDMUTEX *params ); +NTSTATUS WINAPI D3DKMTOpenKeyedMutex2( D3DKMT_OPENKEYEDMUTEX2 *params ); +NTSTATUS WINAPI D3DKMTOpenKeyedMutexFromNtHandle( D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE *params ); NTSTATUS WINAPI D3DKMTOpenResource( D3DKMT_OPENRESOURCE *params ); NTSTATUS WINAPI D3DKMTOpenResource2( D3DKMT_OPENRESOURCE *params ); NTSTATUS WINAPI D3DKMTOpenResourceFromNtHandle( D3DKMT_OPENRESOURCEFROMNTHANDLE *params ); diff --git a/include/ntgdi.h b/include/ntgdi.h index e66bf5daed0..f638b7ef7db 100644 --- a/include/ntgdi.h +++ b/include/ntgdi.h @@ -478,16 +478,22 @@ W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateAllocation( D3DKMT_CREATEALLOCATION *par W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateAllocation2( D3DKMT_CREATEALLOCATION *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDCFromMemory( D3DKMT_CREATEDCFROMMEMORY *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDevice( D3DKMT_CREATEDEVICE *desc ); +W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateKeyedMutex( D3DKMT_CREATEKEYEDMUTEX *params ); +W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateKeyedMutex2( D3DKMT_CREATEKEYEDMUTEX2 *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyAllocation( const D3DKMT_DESTROYALLOCATION *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyAllocation2( const D3DKMT_DESTROYALLOCATION2 *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDCFromMemory( const D3DKMT_DESTROYDCFROMMEMORY *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDevice( const D3DKMT_DESTROYDEVICE *desc ); +W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyKeyedMutex( const D3DKMT_DESTROYKEYEDMUTEX *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIEnumAdapters( D3DKMT_ENUMADAPTERS *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIEnumAdapters2( D3DKMT_ENUMADAPTERS2 *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIEscape( const D3DKMT_ESCAPE *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromDeviceName( D3DKMT_OPENADAPTERFROMDEVICENAME *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromHdc( D3DKMT_OPENADAPTERFROMHDC *desc ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *desc ); +W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutex( D3DKMT_OPENKEYEDMUTEX *params ); +W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutex2( D3DKMT_OPENKEYEDMUTEX2 *params ); +W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutexFromNtHandle( D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResource( D3DKMT_OPENRESOURCE *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResource2( D3DKMT_OPENRESOURCE *params ); W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResourceFromNtHandle( D3DKMT_OPENRESOURCEFROMNTHANDLE *params );