35 if (!MemBase || !MemLimit || MemLimit <= MemBase)
37 DbgPrint(
"No valid video memory range\n");
43 CurrentPos = pvmh->dwCommitedSize;
49 RequiredBytes =
Width;
57 MemPtr = MemBase + CurrentPos;
59 if (MemPtr + RequiredBytes > MemLimit)
67 pvmh->dwCommitedSize = CurrentPos + RequiredBytes;
72 *AllocSize = RequiredBytes;
93 if (!DdrawVidMem || !DdrawVidMem->lpHeap)
101 !DdrawVidMem->lpHeap->pvPhysRsrv)
109 FLATPTR MemBegin = DdrawVidMem->fpStart;
114 MemEnd = DdrawVidMem->fpEnd;
118 MemEnd = MemBegin + (DdrawVidMem->dwWidth * DdrawVidMem->dwHeight);
122 MemEnd = DdrawVidMem->fpEnd;
133 if (!MemEnd || MemEnd <= MemBegin)
135 if (DdrawVidMem->lpHeap && DdrawVidMem->lpHeap->dwTotalSize > 0)
137 MemEnd = MemBegin + DdrawVidMem->lpHeap->dwTotalSize;
158 DdrawVidMem->lpHeap->freeList = (
LPVOID)MemBegin;
159 DdrawVidMem->lpHeap->allocList = (
LPVOID)MemEnd;
171 DdrawVidMem->lpHeap->freeList = (
LPVOID)SavedBegin;
172 DdrawVidMem->lpHeap->allocList = (
LPVOID)SavedEnd;
175 *AllocSize = ActualSize;
191 if (!DdrawVidMem || !DdrawVidMem->
lpHeap ||
201 DbgPrint(
"AGP memory not supported\n");
#define VIDMEM_HEAPDISABLED
#define VIDMEM_ISNONLOCAL
#define VIDMEM_ISRECTANGULAR
FLATPTR NTAPI DxDdHeapVidMemAllocAligned(LPVIDMEM DdrawVidMem, DWORD Width, DWORD Height, LPSURFACEALIGNMENT Alignment, LPDWORD ResolvedPitch)
FLATPTR WINAPI DdrawMemAlloc(_In_ LPVMEMHEAP pvmh, _In_ DWORD Width, _In_ DWORD Height, _Out_opt_ LPDWORD AllocSize, _In_opt_ LPSURFACEALIGNMENT Alignment, _Out_opt_ LPDWORD ResolvedPitch)
FLATPTR WINAPI DxDdHeapDdrawMemAlloc(_In_ LPVIDMEM DdrawVidMem, _In_ DWORD Width, _In_ DWORD Height, _In_opt_ LPSURFACEALIGNMENT Alignment, _Out_opt_ LPDWORD ResolvedPitch, _Out_ PDWORD AllocSize)
#define ALIGN_UP(size, type)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO