summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElaine Houha <[email protected]>2022-03-31 09:11:14 -0700
committerGitHub <[email protected]>2022-03-31 09:11:14 -0700
commita4335317df32e6e9d9dad38d8167fdc2d4d95640 (patch)
tree8b07f809d36ba3f6c5c2cb9b99ff388f3525213d
parent74dfa461f428642ff93287ad5045432297954461 (diff)
[network\trans] ExAllocatePoolWithTag changing to ExAllocatePoolZero (#696)
* init commit more exallocatepoolwithtag to exallocatePoolZero * CR comments * Adds a define for downlevel support * All flavors build Debug/Release Win32/x64, stmEdit.inf edited to fix build errors related to primative drivers * Using recommend arch decoration Co-authored-by: Elaine Houha <[email protected]>
-rw-r--r--network/trans/ddproxy/sys/DD_drv.c1
-rw-r--r--network/trans/ddproxy/sys/DD_proxy.c11
-rw-r--r--network/trans/ddproxy/sys/ddproxy.inf1
-rw-r--r--network/trans/ddproxy/sys/ddproxy.vcxproj8
-rw-r--r--network/trans/ddproxy/sys/ddproxy.vcxproj.Filters10
-rw-r--r--network/trans/inspect/sys/TL_drv.c1
-rw-r--r--network/trans/inspect/sys/inspect.c2
-rw-r--r--network/trans/inspect/sys/inspect.inf11
-rw-r--r--network/trans/inspect/sys/utils.c8
-rw-r--r--network/trans/stmedit/sys/InlineEdit.c3
-rw-r--r--network/trans/stmedit/sys/LwQueue.c3
-rw-r--r--network/trans/stmedit/sys/LwQueue.h1
-rw-r--r--network/trans/stmedit/sys/OobEdit.c3
-rw-r--r--network/trans/stmedit/sys/StreamEdit.c11
-rw-r--r--network/trans/stmedit/sys/StreamEdit.h1
-rw-r--r--network/trans/stmedit/sys/stmedit.inf12
-rw-r--r--network/trans/stmedit/sys/stmedit.vcxproj12
-rw-r--r--network/trans/stmedit/sys/stmedit.vcxproj.Filters10
18 files changed, 67 insertions, 42 deletions
diff --git a/network/trans/ddproxy/sys/DD_drv.c b/network/trans/ddproxy/sys/DD_drv.c
index 18509e53..b7aa5eb9 100644
--- a/network/trans/ddproxy/sys/DD_drv.c
+++ b/network/trans/ddproxy/sys/DD_drv.c
@@ -32,6 +32,7 @@ Environment:
--*/
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <ntddk.h>
#include <wdf.h>
diff --git a/network/trans/ddproxy/sys/DD_proxy.c b/network/trans/ddproxy/sys/DD_proxy.c
index a5901908..aa41f060 100644
--- a/network/trans/ddproxy/sys/DD_proxy.c
+++ b/network/trans/ddproxy/sys/DD_proxy.c
@@ -22,6 +22,7 @@ Environment:
--*/
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <ntddk.h>
#pragma warning(push)
@@ -102,7 +103,7 @@ DDProxyFlowEstablishedClassify(
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)
UNREFERENCED_PARAMETER(flowContext);
- flowContextLocal = ExAllocatePoolWithTag(
+ flowContextLocal = ExAllocatePoolZero(
NonPagedPool,
sizeof(DD_PROXY_FLOW_CONTEXT),
DD_PROXY_FLOW_CONTEXT_POOL_TAG
@@ -114,8 +115,6 @@ DDProxyFlowEstablishedClassify(
goto Exit;
}
- RtlZeroMemory(flowContextLocal, sizeof(DD_PROXY_FLOW_CONTEXT));
-
flowContextLocal->refCount = 1;
flowContextLocal->flowType = (DD_PROXY_FLOW_TYPE)(filter->context);
flowContextLocal->addressFamily =
@@ -334,7 +333,7 @@ DDProxyClassify(
goto Exit;
}
- packet = ExAllocatePoolWithTag(
+ packet = ExAllocatePoolZero(
NonPagedPool,
sizeof(DD_PROXY_PENDED_PACKET),
DD_PROXY_PENDED_PACKET_POOL_TAG
@@ -347,8 +346,6 @@ DDProxyClassify(
goto Exit;
}
- RtlZeroMemory(packet, sizeof(DD_PROXY_PENDED_PACKET));
-
NT_ASSERT(flowContextLocal != NULL);
packet->belongingFlow = flowContextLocal;
@@ -413,7 +410,7 @@ DDProxyClassify(
{
NT_ASSERT(inMetaValues->controlDataLength > 0);
- packet->controlData = ExAllocatePoolWithTag(
+ packet->controlData = ExAllocatePoolZero(
NonPagedPool,
inMetaValues->controlDataLength,
DD_PROXY_CONTROL_DATA_POOL_TAG
diff --git a/network/trans/ddproxy/sys/ddproxy.inf b/network/trans/ddproxy/sys/ddproxy.inf
index 33be4df4..3792b003 100644
--- a/network/trans/ddproxy/sys/ddproxy.inf
+++ b/network/trans/ddproxy/sys/ddproxy.inf
@@ -12,6 +12,7 @@
Provider = %ProviderString%
CatalogFile = DDProxy.cat
DriverVer = 11/24/2014,14.24.55.836
+ PnpLockdown = 1
[SourceDisksNames]
1 = %DDProxyDisk%,,,""
diff --git a/network/trans/ddproxy/sys/ddproxy.vcxproj b/network/trans/ddproxy/sys/ddproxy.vcxproj
index db813981..ae9cface 100644
--- a/network/trans/ddproxy/sys/ddproxy.vcxproj
+++ b/network/trans/ddproxy/sys/ddproxy.vcxproj
@@ -30,7 +30,7 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -38,7 +38,7 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -46,7 +46,7 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -54,7 +54,7 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
diff --git a/network/trans/ddproxy/sys/ddproxy.vcxproj.Filters b/network/trans/ddproxy/sys/ddproxy.vcxproj.Filters
index 8e16cf3d..615cd781 100644
--- a/network/trans/ddproxy/sys/ddproxy.vcxproj.Filters
+++ b/network/trans/ddproxy/sys/ddproxy.vcxproj.Filters
@@ -26,4 +26,14 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <Inf Include="*.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/network/trans/inspect/sys/TL_drv.c b/network/trans/inspect/sys/TL_drv.c
index 5186b69c..32ee3321 100644
--- a/network/trans/inspect/sys/TL_drv.c
+++ b/network/trans/inspect/sys/TL_drv.c
@@ -31,6 +31,7 @@ Environment:
--*/
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <ntddk.h>
#include <wdf.h>
diff --git a/network/trans/inspect/sys/inspect.c b/network/trans/inspect/sys/inspect.c
index 8dd6b72a..ea0d4371 100644
--- a/network/trans/inspect/sys/inspect.c
+++ b/network/trans/inspect/sys/inspect.c
@@ -22,7 +22,7 @@ Environment:
--*/
-
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <ntddk.h>
#pragma warning(push)
diff --git a/network/trans/inspect/sys/inspect.inf b/network/trans/inspect/sys/inspect.inf
index ae01d975..9fb9674e 100644
--- a/network/trans/inspect/sys/inspect.inf
+++ b/network/trans/inspect/sys/inspect.inf
@@ -12,6 +12,7 @@
Provider = %ProviderString%
CatalogFile = Inspect.cat
DriverVer = 11/24/2014,14.24.55.836
+ PnpLockdown = 1
[SourceDisksNames]
1 = %InspectDisk%,,,""
@@ -23,17 +24,19 @@
DefaultDestDir = 12 ; %WinDir%\System32\Drivers
Inspect.DriverFiles = 12 ; %WinDir%\System32\Drivers
-[DefaultInstall]
+[DefaultInstall.NT$ARCH$]
OptionDesc = %InspectServiceDesc%
CopyFiles = Inspect.DriverFiles
-[DefaultInstall.Services]
+[DefaultInstall.NT$ARCH$.Services]
AddService = %InspectServiceName%,,Inspect.Service
-[DefaultUninstall]
+[DefaultUninstall.NT$ARCH$]
+ LegacyUninstall = 1
DelFiles = Inspect.DriverFiles
-[DefaultUninstall.Services]
+[DefaultUninstall.NT$ARCH$.Services]
+ LegacyUninstall = 1
DelService = %InspectServiceName%,0x200 ; SPSVCINST_STOPSERVICE
DelReg = Inspect.DelRegistry
diff --git a/network/trans/inspect/sys/utils.c b/network/trans/inspect/sys/utils.c
index 521d51fe..f474704f 100644
--- a/network/trans/inspect/sys/utils.c
+++ b/network/trans/inspect/sys/utils.c
@@ -13,7 +13,7 @@ Environment:
--*/
-
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <ntddk.h>
#include <wdf.h>
@@ -291,7 +291,7 @@ AllocateAndInitializePendedPacket(
{
TL_INSPECT_PENDED_PACKET* pendedPacket;
- pendedPacket = ExAllocatePoolWithTag(
+ pendedPacket = ExAllocatePoolZero(
NonPagedPool,
sizeof(TL_INSPECT_PENDED_PACKET),
TL_INSPECT_PENDED_PACKET_POOL_TAG
@@ -302,8 +302,6 @@ AllocateAndInitializePendedPacket(
return NULL;
}
- RtlZeroMemory(pendedPacket, sizeof(TL_INSPECT_PENDED_PACKET));
-
pendedPacket->type = packetType;
pendedPacket->direction = packetDirection;
@@ -346,7 +344,7 @@ AllocateAndInitializePendedPacket(
{
NT_ASSERT(inMetaValues->controlDataLength > 0);
- pendedPacket->controlData = ExAllocatePoolWithTag(
+ pendedPacket->controlData = ExAllocatePoolZero(
NonPagedPool,
inMetaValues->controlDataLength,
TL_INSPECT_CONTROL_DATA_POOL_TAG
diff --git a/network/trans/stmedit/sys/InlineEdit.c b/network/trans/stmedit/sys/InlineEdit.c
index a251d722..74b5bd25 100644
--- a/network/trans/stmedit/sys/InlineEdit.c
+++ b/network/trans/stmedit/sys/InlineEdit.c
@@ -12,6 +12,7 @@ Environment:
Kernel mode
--*/
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include "Trace.h"
#include "StreamEdit.h"
#include "InlineEdit.tmh"
@@ -54,7 +55,7 @@ InlineEditFlushData(
if (DataLength == 0)
break;
- Buffer = ExAllocatePoolWithTag(NonPagedPool, DataLength, STMEDIT_TAG_MDL_DATA);
+ Buffer = ExAllocatePoolZero(NonPagedPool, DataLength, STMEDIT_TAG_MDL_DATA);
if (Buffer == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
diff --git a/network/trans/stmedit/sys/LwQueue.c b/network/trans/stmedit/sys/LwQueue.c
index a88186c7..2d46585d 100644
--- a/network/trans/stmedit/sys/LwQueue.c
+++ b/network/trans/stmedit/sys/LwQueue.c
@@ -10,6 +10,7 @@ Environment:
--*/
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include "LwQueue.h"
IO_WORKITEM_ROUTINE LwWorker;
@@ -36,7 +37,7 @@ LwInitializeQueue(
KeInitializeSpinLock(&Queue->Lock);
Queue->WorkItem =
- ExAllocatePoolWithTag(
+ ExAllocatePoolZero(
NonPagedPool, IoSizeofWorkItem(), STMEDIT_TAG_LQWI);
if (Queue->WorkItem == NULL)
diff --git a/network/trans/stmedit/sys/LwQueue.h b/network/trans/stmedit/sys/LwQueue.h
index d62f41aa..b1546062 100644
--- a/network/trans/stmedit/sys/LwQueue.h
+++ b/network/trans/stmedit/sys/LwQueue.h
@@ -1,6 +1,7 @@
#ifndef _LWQUEUE_H
#define _LWQUEUE_H
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <wdm.h>
#define STMEDIT_TAG_LQWI 'wLeS' // Light Weight Queue Work Items.
diff --git a/network/trans/stmedit/sys/OobEdit.c b/network/trans/stmedit/sys/OobEdit.c
index 28883ab7..0b24e1bc 100644
--- a/network/trans/stmedit/sys/OobEdit.c
+++ b/network/trans/stmedit/sys/OobEdit.c
@@ -13,6 +13,7 @@ Environment:
--*/
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include "Trace.h"
#include "StreamEdit.h"
#include "OobEdit.tmh"
@@ -378,7 +379,7 @@ StreamOobReinjectData(
do
{
- DataCopy = ExAllocatePoolWithTag(
+ DataCopy = ExAllocatePoolZero(
NonPagedPool,
Length,
STMEDIT_TAG_MDL_DATA
diff --git a/network/trans/stmedit/sys/StreamEdit.c b/network/trans/stmedit/sys/StreamEdit.c
index 9bad88d1..512fb159 100644
--- a/network/trans/stmedit/sys/StreamEdit.c
+++ b/network/trans/stmedit/sys/StreamEdit.c
@@ -464,7 +464,7 @@ StreamEditFlowEstablishedClassify(
do
{
- StreamFlowContext = ExAllocatePoolWithTag(NonPagedPoolNx,
+ StreamFlowContext = ExAllocatePoolZero(NonPagedPoolNx,
sizeof(STREAM_FLOW_CONTEXT),
STMEDIT_TAG_FLOWCTX);
@@ -477,7 +477,6 @@ StreamEditFlowEstablishedClassify(
// Initialize the flow-context
//
- RtlZeroMemory(StreamFlowContext, sizeof(STREAM_FLOW_CONTEXT));
StreamFlowContext->IpProto = InFixedValues->incomingValue[ipProtIndex].value.uint16;
StreamFlowContext->bFlowActive = TRUE;
@@ -1371,6 +1370,10 @@ DriverEntry(
DoTraceLevelMessage(TRACE_LEVEL_INFORMATION, CO_ENTER_EXIT,"--> %!FUNC!: DrvObj %p, Regpath %wZ", DriverObject, RegistryPath);
do {
+
+ // Request NX Non-Paged Pool when available
+ ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
+
//
// Initialize globals and Configuration structures.
//
@@ -1557,7 +1560,7 @@ _In_ SIZE_T BytesToCopy
{
size_t NewBufferSize = BytesToCopy + ExistingDataLength;
- PVOID NewBuffer = ExAllocatePoolWithTag(
+ PVOID NewBuffer = ExAllocatePoolZero(
NonPagedPool,
(NewBufferSize + (NewBufferSize >> 1) ), // 1.5 times the needed size.
STMEDIT_TAG_FLAT_BUFFER);
@@ -1567,7 +1570,7 @@ _In_ SIZE_T BytesToCopy
// We are not able to allocate a much bigger buffer ... lets try an exact fit.
//
- NewBuffer = ExAllocatePoolWithTag(NonPagedPool, NewBufferSize, STMEDIT_TAG_FLAT_BUFFER);
+ NewBuffer = ExAllocatePoolZero(NonPagedPool, NewBufferSize, STMEDIT_TAG_FLAT_BUFFER);
}
if (NewBuffer != NULL)
diff --git a/network/trans/stmedit/sys/StreamEdit.h b/network/trans/stmedit/sys/StreamEdit.h
index 8d203db7..13fc2f34 100644
--- a/network/trans/stmedit/sys/StreamEdit.h
+++ b/network/trans/stmedit/sys/StreamEdit.h
@@ -16,6 +16,7 @@ Environment:
#ifndef _STREAM_EDIT_H
#define _STREAM_EDIT_H
+#define POOL_ZERO_DOWN_LEVEL_SUPPORT
#include <ntifs.h>
#include <wdf.h>
diff --git a/network/trans/stmedit/sys/stmedit.inf b/network/trans/stmedit/sys/stmedit.inf
index fac93c26..39cd2109 100644
--- a/network/trans/stmedit/sys/stmedit.inf
+++ b/network/trans/stmedit/sys/stmedit.inf
@@ -12,6 +12,7 @@
Provider = %Contoso%
CatalogFile = StmEdit.cat
DriverVer = 01/01/2015,1.0.09.15
+ PnpLockdown = 1
[SourceDisksNames]
1 = %StmEditDisk%,,,""
@@ -23,17 +24,20 @@
DefaultDestDir = 12 ; %WinDir%\System32\Drivers
StmEdit.DriverFiles = 12 ; %WinDir%\System32\Drivers
-[DefaultInstall]
+[DefaultInstall.NT$ARCH$]
OptionDesc = %StmEditServiceDesc%
CopyFiles = StmEdit.DriverFiles
-[DefaultInstall.Services]
+
+[DefaultInstall.NT$ARCH$.Services]
AddService = %StmEditServiceName%,,StmEdit.Service
-[DefaultUninstall]
+[DefaultUninstall.NT$ARCH$]
+ LegacyUninstall=1
DelFiles = StmEdit.DriverFiles
-[DefaultUninstall.Services]
+[DefaultUninstall.NT$ARCH$.Services]
+ LegacyUninstall=1
DelService = %StmEditServiceName%,0x200 ; SPSVCINST_STOPSERVICE
DelReg = StmEdit.DelRegistry
diff --git a/network/trans/stmedit/sys/stmedit.vcxproj b/network/trans/stmedit/sys/stmedit.vcxproj
index d3edd451..cdfcc9e7 100644
--- a/network/trans/stmedit/sys/stmedit.vcxproj
+++ b/network/trans/stmedit/sys/stmedit.vcxproj
@@ -30,17 +30,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>
- </TargetVersion>
+ <TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>
- </DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -49,7 +47,7 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -57,7 +55,7 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
diff --git a/network/trans/stmedit/sys/stmedit.vcxproj.Filters b/network/trans/stmedit/sys/stmedit.vcxproj.Filters
index 9a0c9d49..662fe098 100644
--- a/network/trans/stmedit/sys/stmedit.vcxproj.Filters
+++ b/network/trans/stmedit/sys/stmedit.vcxproj.Filters
@@ -43,11 +43,15 @@
</ClInclude>
<ClInclude Include="StreamEdit.h" />
<ClInclude Include="Trace.h" />
- <ClInclude Include="LwQueue.h">
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="StreamEdit.h" />
- <ClInclude Include="Trace.h" />
</ItemGroup>
<ItemGroup>
<Inf Include="*.inf">