[HDAUDBUS][KS][WDMAUD] Use ExAllocatePoolZero() and ExFreePoolWithTag() (#5792)

And promote/fix 2 DPRINTs as well.
This commit is contained in:
Serge Gautherie 2023-10-20 18:09:03 +02:00 committed by GitHub
parent 1fed9475cc
commit c03b2ed9be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 38 deletions

View file

@ -247,7 +247,7 @@ IKsFilterFactory_fnInitialize(
This->FilterFactory.FilterDescriptor = AllocateItem(NonPagedPool, sizeof(KSFILTER_DESCRIPTOR)); This->FilterFactory.FilterDescriptor = AllocateItem(NonPagedPool, sizeof(KSFILTER_DESCRIPTOR));
if (!This->FilterFactory.FilterDescriptor) if (!This->FilterFactory.FilterDescriptor)
{ {
DPRINT("out of memory"); DPRINT1("Out of memory\n");
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
} }
RtlMoveMemory((PVOID)This->FilterFactory.FilterDescriptor, (PVOID)Descriptor, sizeof(KSFILTER_DESCRIPTOR)); RtlMoveMemory((PVOID)This->FilterFactory.FilterDescriptor, (PVOID)Descriptor, sizeof(KSFILTER_DESCRIPTOR));
@ -751,4 +751,3 @@ KsFilterFactoryUpdateCacheData(
/* done */ /* done */
return Status; return Status;
} }

View file

@ -22,7 +22,6 @@ CompleteRequest(
ASSERT(Irp->IoStatus.Status != STATUS_PENDING); ASSERT(Irp->IoStatus.Status != STATUS_PENDING);
IoCompleteRequest(Irp, PriorityBoost); IoCompleteRequest(Irp, PriorityBoost);
} }
@ -31,19 +30,14 @@ AllocateItem(
IN POOL_TYPE PoolType, IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes) IN SIZE_T NumberOfBytes)
{ {
PVOID Item = ExAllocatePoolWithTag(PoolType, NumberOfBytes, TAG_KS); return ExAllocatePoolZero(PoolType, NumberOfBytes, TAG_KS);
if (!Item)
return Item;
RtlZeroMemory(Item, NumberOfBytes);
return Item;
} }
VOID VOID
FreeItem( FreeItem(
IN PVOID Item) IN PVOID Item)
{ {
ExFreePool(Item); ExFreePoolWithTag(Item, TAG_KS);
} }
NTSTATUS NTSTATUS
@ -172,5 +166,3 @@ KsGetParent(
/* return object type */ /* return object type */
return (PVOID)BasicHeader->Parent.KsDevice; return (PVOID)BasicHeader->Parent.KsDevice;
} }

View file

@ -5,6 +5,7 @@
* PURPOSE: HDA Driver Entry * PURPOSE: HDA Driver Entry
* PROGRAMMER: Johannes Anderwald * PROGRAMMER: Johannes Anderwald
*/ */
#include "hdaudbus.h" #include "hdaudbus.h"
BOOLEAN BOOLEAN
@ -217,7 +218,7 @@ HDA_InitCodec(
Entry = (PHDA_CODEC_ENTRY)AllocateItem(NonPagedPool, sizeof(HDA_CODEC_ENTRY)); Entry = (PHDA_CODEC_ENTRY)AllocateItem(NonPagedPool, sizeof(HDA_CODEC_ENTRY));
if (!Entry) if (!Entry)
{ {
DPRINT1("hda: failed to allocate memory"); DPRINT1("hda: failed to allocate memory\n");
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }
@ -812,5 +813,3 @@ HDA_FDOQueryBusRelations(
/* done */ /* done */
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }

View file

@ -5,6 +5,7 @@
* PURPOSE: HDA Driver Entry * PURPOSE: HDA Driver Entry
* PROGRAMMER: Johannes Anderwald * PROGRAMMER: Johannes Anderwald
*/ */
#include "hdaudbus.h" #include "hdaudbus.h"
DRIVER_DISPATCH HDA_Pnp; DRIVER_DISPATCH HDA_Pnp;
@ -19,19 +20,14 @@ AllocateItem(
_In_ POOL_TYPE PoolType, _In_ POOL_TYPE PoolType,
_In_ SIZE_T NumberOfBytes) _In_ SIZE_T NumberOfBytes)
{ {
PVOID Item = ExAllocatePoolWithTag(PoolType, NumberOfBytes, TAG_HDA); return ExAllocatePoolZero(PoolType, NumberOfBytes, TAG_HDA);
if (!Item)
return Item;
RtlZeroMemory(Item, NumberOfBytes);
return Item;
} }
VOID VOID
FreeItem( FreeItem(
__drv_freesMem(Mem) PVOID Item) __drv_freesMem(Mem) PVOID Item)
{ {
ExFreePool(Item); ExFreePoolWithTag(Item, TAG_HDA);
} }
NTSTATUS NTSTATUS
@ -305,6 +301,7 @@ HDA_Unload(
extern "C" extern "C"
{ {
NTSTATUS NTSTATUS
NTAPI NTAPI
DriverEntry( DriverEntry(
@ -320,4 +317,4 @@ DriverEntry(
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
} } // extern "C"

View file

@ -21,23 +21,16 @@ AllocateItem(
IN POOL_TYPE PoolType, IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes) IN SIZE_T NumberOfBytes)
{ {
PVOID Item = ExAllocatePoolWithTag(PoolType, NumberOfBytes, TAG_WDMAUD); return ExAllocatePoolZero(PoolType, NumberOfBytes, TAG_WDMAUD);
if (!Item)
return Item;
RtlZeroMemory(Item, NumberOfBytes);
return Item;
} }
VOID VOID
FreeItem( FreeItem(
IN PVOID Item) IN PVOID Item)
{ {
ExFreePool(Item); ExFreePoolWithTag(Item, TAG_WDMAUD);
} }
ULONG ULONG
GetSysAudioDeviceCount( GetSysAudioDeviceCount(
IN PDEVICE_OBJECT DeviceObject) IN PDEVICE_OBJECT DeviceObject)
@ -62,7 +55,6 @@ GetSysAudioDeviceCount(
return Count; return Count;
} }
NTSTATUS NTSTATUS
SetIrpIoStatus( SetIrpIoStatus(
IN PIRP Irp, IN PIRP Irp,
@ -72,8 +64,8 @@ SetIrpIoStatus(
Irp->IoStatus.Information = Length; Irp->IoStatus.Information = Length;
Irp->IoStatus.Status = Status; Irp->IoStatus.Status = Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
return Status;
return Status;
} }
ULONG ULONG
@ -186,7 +178,6 @@ ReadKeyValue(
return PartialInformation; return PartialInformation;
} }
NTSTATUS NTSTATUS
CompareProductName( CompareProductName(
IN HANDLE hSubKey, IN HANDLE hSubKey,
@ -248,8 +239,6 @@ CompareProductName(
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
NTSTATUS NTSTATUS
FindProductName( FindProductName(
IN LPWSTR PnpName, IN LPWSTR PnpName,
@ -431,5 +420,4 @@ OpenDevice(
} }
return Status; return Status;
} }