[CMAKE] Revert this for now.

svn path=/trunk/; revision=52644
This commit is contained in:
Art Yerkes 2011-07-11 21:46:54 +00:00
parent 0a8af6df7c
commit 2974d5e5d0

View file

@ -18,8 +18,6 @@
/* GLOBALS ******************************************************************/
#define CURRENT_PROCESS ((HANDLE)~0)
typedef struct _IMAGE_SYMBOL_INFO_CACHE
{
LIST_ENTRY ListEntry;
@ -637,69 +635,14 @@ KdbDebugPrint(
/* Nothing here */
}
typedef struct {
PMDL Mdl;
SIZE_T Size;
PVOID OriginalMapping;
} KdbpMallocHeader;
static PVOID KdbpSymAllocMem(ULONG_PTR Size)
static PVOID KdbpSymAllocMem(ULONG_PTR size)
{
KdbpMallocHeader *Hdr;
if (Size < PAGE_SIZE)
{
PVOID Result = ExAllocatePoolWithTag(NonPagedPool, Size + sizeof(KdbpMallocHeader), 'RSYM');
if (!Result) return NULL;
Hdr = (KdbpMallocHeader*)Result;
Hdr->Mdl = NULL;
Hdr->Size = Size;
return &Hdr[1];
}
else
{
PVOID Base = NULL;
SIZE_T RegionSize = Size + sizeof(KdbpMallocHeader);
NTSTATUS Status = NtAllocateVirtualMemory
(CURRENT_PROCESS, &Base, 0, &RegionSize, MEM_COMMIT, PAGE_READWRITE);
if (!NT_SUCCESS(Status)) return NULL;
Hdr = (KdbpMallocHeader*)Base;
Hdr->Mdl = IoAllocateMdl(Base, RegionSize, FALSE, FALSE, NULL);
if (!Hdr->Mdl) {
NtFreeVirtualMemory(CURRENT_PROCESS, &Base, &RegionSize, MEM_RELEASE);
return NULL;
}
Hdr->Size = RegionSize;
Hdr->OriginalMapping = Base;
MmProbeAndLockPages(Hdr->Mdl, KernelMode, IoModifyAccess);
KdbpMallocHeader *MappedHdr = (KdbpMallocHeader*)MmMapLockedPages(Hdr->Mdl, KernelMode);
if (!MappedHdr) {
MmUnlockPages(Hdr->Mdl);
IoFreeMdl(Hdr->Mdl);
NtFreeVirtualMemory(CURRENT_PROCESS, &Base, &RegionSize, MEM_RELEASE);
return NULL;
}
return &MappedHdr[1];
}
return ExAllocatePoolWithTag(NonPagedPool, size, 'RSYM');
}
static VOID KdbpSymFreeMem(PVOID Area)
{
PCHAR HdrPtr = ((PCHAR)Area) - sizeof(KdbpMallocHeader);
KdbpMallocHeader *Hdr = (KdbpMallocHeader*)HdrPtr;
if (Hdr->Size < PAGE_SIZE)
{
ExFreePool(Hdr);
}
else
{
PMDL Mdl = Hdr->Mdl;
PVOID BaseAddress = Hdr->OriginalMapping;
SIZE_T RegionSize = Hdr->Size;
MmUnmapLockedPages(Hdr, Mdl);
MmUnlockPages(Mdl);
NtFreeVirtualMemory(CURRENT_PROCESS, &BaseAddress, &RegionSize, MEM_RELEASE);
IoFreeMdl(Mdl);
}
return ExFreePool(Area);
}
static BOOLEAN KdbpSymReadMem(PVOID FileContext, PVOID TargetDebug, PVOID SourceMem, ULONG Size)