Driver: Util: Add fort_mem_alloc/free_notag() macros

This commit is contained in:
Nodir Temirkhodjaev 2022-02-14 14:18:58 +03:00
parent 5c889a0eed
commit 52f68b3cbe
4 changed files with 10 additions and 6 deletions

View File

@ -25,6 +25,9 @@
#endif
#define fort_mem_free(p, tag) ExFreePoolWithTag((p), (tag))
#define fort_mem_alloc_notag(size) ExAllocatePool(NonPagedPoolNx, (size))
#define fort_mem_free_notag(p) ExFreePool((p))
#define fort_request_complete_info(irp, status, info) \
do { \
(irp)->IoStatus.Status = (status); \

View File

@ -12,7 +12,7 @@ static UNICODE_STRING g_system32Path;
static NTSTATUS fort_string_new(ULONG len, PCWSTR src, PUNICODE_STRING outData)
{
PWSTR buf = ExAllocatePool(NonPagedPool, len);
PWSTR buf = fort_mem_alloc_notag(len);
if (buf == NULL)
return STATUS_INSUFFICIENT_RESOURCES;
@ -140,7 +140,7 @@ FORT_API NTSTATUS fort_system32_path_init(PDRIVER_OBJECT driver, PUNICODE_STRING
}
/* Free the allocated driver path */
ExFreePool(driverPath.Buffer);
fort_mem_free_notag(driverPath.Buffer);
return status;
}

View File

@ -13,7 +13,7 @@ PEPROCESS IoGetCurrentProcess()
return NULL;
}
PVOID ExAllocatePoolWithTag(PVOID type, SIZE_T size, ULONG tag)
PVOID ExAllocatePoolWithTag(DWORD type, SIZE_T size, ULONG tag)
{
UNUSED(type);
UNUSED(tag);
@ -26,7 +26,7 @@ void ExFreePoolWithTag(PVOID p, ULONG tag)
HeapFree(GetProcessHeap(), 0, p);
}
PVOID ExAllocatePool(PVOID flags, SIZE_T size)
PVOID ExAllocatePool(DWORD flags, SIZE_T size)
{
UNUSED(flags);
return HeapAlloc(GetProcessHeap(), 0, size);

View File

@ -224,9 +224,10 @@ FORT_API PEPROCESS IoGetCurrentProcess(VOID);
#define NonPagedPool 0
#define NonPagedPoolExecute NonPagedPool
FORT_API PVOID ExAllocatePoolWithTag(PVOID type, SIZE_T size, ULONG tag);
#define NonPagedPoolNx 512
FORT_API PVOID ExAllocatePoolWithTag(DWORD type, SIZE_T size, ULONG tag);
FORT_API void ExFreePoolWithTag(PVOID p, ULONG tag);
FORT_API PVOID ExAllocatePool(PVOID type, SIZE_T size);
FORT_API PVOID ExAllocatePool(DWORD type, SIZE_T size);
FORT_API void ExFreePool(PVOID p);
typedef ULONG64 POOL_FLAGS;