diff --git a/pm_kext/pm_kext.vcxproj b/pm_kext/pm_kext.vcxproj
index 3fbde71..87e9e12 100644
--- a/pm_kext/pm_kext.vcxproj
+++ b/pm_kext/pm_kext.vcxproj
@@ -36,9 +36,10 @@
WindowsKernelModeDriver10.0
Driver
KMDF
- Universal
+ Desktop
false
1
+ <_NT_TARGET_VERSION>0x0601
Windows10
@@ -46,9 +47,10 @@
WindowsKernelModeDriver10.0
Driver
KMDF
- Universal
+ Desktop
false
0
+ <_NT_TARGET_VERSION>0x0601
Windows10
diff --git a/pm_kext/src/pm_callouts.c b/pm_kext/src/pm_callouts.c
index 438d582..6f0c8be 100644
--- a/pm_kext/src/pm_callouts.c
+++ b/pm_kext/src/pm_callouts.c
@@ -962,6 +962,7 @@ void classifyOutboundIPv6(
// Used for freeing the packet info memory when clearing the packet cache
static void freePacketInfo(PortmasterPacketInfo *info, verdict_t verdict) {
+ UNREFERENCED_PARAMETER(verdict);
if(info != NULL) {
portmasterFree(info);
}
diff --git a/pm_kext/src/pm_utils.c b/pm_kext/src/pm_utils.c
index aa2b5d3..ac4aa82 100644
--- a/pm_kext/src/pm_utils.c
+++ b/pm_kext/src/pm_utils.c
@@ -16,11 +16,17 @@
*/
void *portmasterMalloc(size_t size, bool paged) {
- POOL_TYPE poolFlag = (paged ? POOL_FLAG_PAGED : POOL_FLAG_NON_PAGED);
+ POOL_TYPE poolFlag = (paged ? PagedPool : NonPagedPool);
if (size == 0) {
return NULL;
}
- void *pv = ExAllocatePool2(poolFlag, size, PORTMASTER_TAG); // Memory is zero initialized unless POOL_FLAG_UNINITIALIZED is specified.
+ // ExAllocatePoolWithTag is depercated but there is no working (tests) alternative for it in the old Windows versions
+ // ExAllocatePoolZero -> complies but crashes the kernel
+ // ExAllocatePool2 -> avaliable with Windows 10, version 2004 and after (release around 2020)
+ void *pv = ExAllocatePoolWithTag(poolFlag, size, PORTMASTER_TAG);
+ if (pv != 0) {
+ RtlZeroMemory(pv, size);
+ }
return pv;
}