diff options
| author | Elaine Houha <[email protected]> | 2022-03-31 09:11:14 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-03-31 09:11:14 -0700 |
| commit | a4335317df32e6e9d9dad38d8167fdc2d4d95640 (patch) | |
| tree | 8b07f809d36ba3f6c5c2cb9b99ff388f3525213d | |
| parent | 74dfa461f428642ff93287ad5045432297954461 (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.c | 1 | ||||
| -rw-r--r-- | network/trans/ddproxy/sys/DD_proxy.c | 11 | ||||
| -rw-r--r-- | network/trans/ddproxy/sys/ddproxy.inf | 1 | ||||
| -rw-r--r-- | network/trans/ddproxy/sys/ddproxy.vcxproj | 8 | ||||
| -rw-r--r-- | network/trans/ddproxy/sys/ddproxy.vcxproj.Filters | 10 | ||||
| -rw-r--r-- | network/trans/inspect/sys/TL_drv.c | 1 | ||||
| -rw-r--r-- | network/trans/inspect/sys/inspect.c | 2 | ||||
| -rw-r--r-- | network/trans/inspect/sys/inspect.inf | 11 | ||||
| -rw-r--r-- | network/trans/inspect/sys/utils.c | 8 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/InlineEdit.c | 3 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/LwQueue.c | 3 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/LwQueue.h | 1 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/OobEdit.c | 3 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/StreamEdit.c | 11 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/StreamEdit.h | 1 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/stmedit.inf | 12 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/stmedit.vcxproj | 12 | ||||
| -rw-r--r-- | network/trans/stmedit/sys/stmedit.vcxproj.Filters | 10 |
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"> |
