@@ -11,6 +11,7 @@ namespace dxvk {
1111 using NTSTATUS = LONG ;
1212 using D3DDDIFORMAT = D3DFORMAT ;
1313 using D3DKMT_HANDLE = UINT ;
14+ using D3DGPU_VIRTUAL_ADDRESS = ULONGLONG ;
1415
1516 typedef struct _D3DKMT_CLOSEADAPTER
1617 {
@@ -89,6 +90,14 @@ namespace dxvk {
8990 UINT PatchLocationListSize;
9091 } D3DKMT_CREATEDEVICE ;
9192
93+ typedef struct _D3DKMT_DESTROYALLOCATION
94+ {
95+ D3DKMT_HANDLE hDevice;
96+ D3DKMT_HANDLE hResource;
97+ const D3DKMT_HANDLE *phAllocationList;
98+ UINT AllocationCount;
99+ } D3DKMT_DESTROYALLOCATION ;
100+
92101 typedef struct _D3DKMT_DESTROYDCFROMMEMORY
93102 {
94103 HDC hDc;
@@ -106,10 +115,67 @@ namespace dxvk {
106115 D3DKMT_HANDLE hAdapter;
107116 } D3DKMT_OPENADAPTERFROMLUID ;
108117
118+ typedef struct _D3DDDI_OPENALLOCATIONINFO
119+ {
120+ D3DKMT_HANDLE hAllocation;
121+ const void *pPrivateDriverData;
122+ UINT PrivateDriverDataSize;
123+ } D3DDDI_OPENALLOCATIONINFO ;
124+
125+ typedef struct _D3DDDI_OPENALLOCATIONINFO2
126+ {
127+ D3DKMT_HANDLE hAllocation;
128+ const void *pPrivateDriverData;
129+ UINT PrivateDriverDataSize;
130+ D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
131+ ULONG_PTR Reserved[6 ];
132+ } D3DDDI_OPENALLOCATIONINFO2 ;
133+
134+ typedef struct _D3DKMT_OPENRESOURCE
135+ {
136+ D3DKMT_HANDLE hDevice;
137+ D3DKMT_HANDLE hGlobalShare;
138+ UINT NumAllocations;
139+ union
140+ {
141+ D3DDDI_OPENALLOCATIONINFO *pOpenAllocationInfo;
142+ D3DDDI_OPENALLOCATIONINFO2 *pOpenAllocationInfo2;
143+ };
144+ void *pPrivateRuntimeData;
145+ UINT PrivateRuntimeDataSize;
146+ void *pResourcePrivateDriverData;
147+ UINT ResourcePrivateDriverDataSize;
148+ void *pTotalPrivateDriverDataBuffer;
149+ UINT TotalPrivateDriverDataBufferSize;
150+ D3DKMT_HANDLE hResource;
151+ } D3DKMT_OPENRESOURCE ;
152+
153+ typedef struct _D3DKMT_OPENRESOURCEFROMNTHANDLE
154+ {
155+ D3DKMT_HANDLE hDevice;
156+ HANDLE hNtHandle;
157+ UINT NumAllocations;
158+ D3DDDI_OPENALLOCATIONINFO2 *pOpenAllocationInfo2;
159+ UINT PrivateRuntimeDataSize;
160+ void *pPrivateRuntimeData;
161+ UINT ResourcePrivateDriverDataSize;
162+ void *pResourcePrivateDriverData;
163+ UINT TotalPrivateDriverDataBufferSize;
164+ void *pTotalPrivateDriverDataBuffer;
165+ D3DKMT_HANDLE hResource;
166+ D3DKMT_HANDLE hKeyedMutex;
167+ void *pKeyedMutexPrivateRuntimeData;
168+ UINT KeyedMutexPrivateRuntimeDataSize;
169+ D3DKMT_HANDLE hSyncObject;
170+ } D3DKMT_OPENRESOURCEFROMNTHANDLE ;
171+
109172 EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTCloseAdapter (const D3DKMT_CLOSEADAPTER *desc);
110173 EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTCreateDCFromMemory (D3DKMT_CREATEDCFROMMEMORY *desc);
111174 EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTCreateDevice (D3DKMT_CREATEDEVICE *desc);
175+ EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTDestroyAllocation (const D3DKMT_DESTROYALLOCATION *desc);
112176 EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTDestroyDCFromMemory (const D3DKMT_DESTROYDCFROMMEMORY *desc);
113177 EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTDestroyDevice (const D3DKMT_DESTROYDEVICE *desc);
114178 EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTOpenAdapterFromLuid (D3DKMT_OPENADAPTERFROMLUID *desc);
179+ EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTOpenResource2 (D3DKMT_OPENRESOURCE *desc);
180+ EXTERN_C WINBASEAPI NTSTATUS WINAPI D3DKMTOpenResourceFromNtHandle (D3DKMT_OPENRESOURCEFROMNTHANDLE *desc);
115181}
0 commit comments