mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 12:14:32 +00:00
[KS]
- Perform all allocations / frees in dedicated alloc / free function svn path=/trunk/; revision=47714
This commit is contained in:
parent
db5472b519
commit
1bb04a5142
8 changed files with 49 additions and 50 deletions
|
@ -530,7 +530,7 @@ KsAllocateDeviceHeader(
|
|||
return STATUS_INVALID_PARAMETER;
|
||||
|
||||
/* allocate a device header */
|
||||
Header = ExAllocatePoolWithTag(PagedPool, sizeof(KSIDEVICE_HEADER), TAG_DEVICE_HEADER);
|
||||
Header = AllocateItem(PagedPool, sizeof(KSIDEVICE_HEADER));
|
||||
|
||||
/* check for success */
|
||||
if (!Header)
|
||||
|
@ -597,7 +597,7 @@ KsFreeDeviceHeader(
|
|||
return;
|
||||
|
||||
KspFreeCreateItems(&Header->ItemList);
|
||||
ExFreePoolWithTag(Header, TAG_DEVICE_HEADER);
|
||||
FreeItem(Header);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -641,7 +641,7 @@ KsAllocateObjectHeader(
|
|||
/* check for an file object */
|
||||
|
||||
/* allocate the object header */
|
||||
ObjectHeader = ExAllocatePoolWithTag(NonPagedPool, sizeof(KSIOBJECT_HEADER), TAG_DEVICE_HEADER);
|
||||
ObjectHeader = AllocateItem(NonPagedPool, sizeof(KSIOBJECT_HEADER));
|
||||
if (!ObjectHeader)
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
|
||||
|
@ -659,10 +659,10 @@ KsAllocateObjectHeader(
|
|||
{
|
||||
/* copy object class */
|
||||
ObjectHeader->ObjectClass.MaximumLength = IoStack->FileObject->FileName.MaximumLength;
|
||||
ObjectHeader->ObjectClass.Buffer = ExAllocatePoolWithTag(NonPagedPool, ObjectHeader->ObjectClass.MaximumLength, TAG_DEVICE_HEADER);
|
||||
ObjectHeader->ObjectClass.Buffer = AllocateItem(NonPagedPool, ObjectHeader->ObjectClass.MaximumLength);
|
||||
if (!ObjectHeader->ObjectClass.Buffer)
|
||||
{
|
||||
ExFreePoolWithTag(ObjectHeader, TAG_DEVICE_HEADER);
|
||||
FreeItem(ObjectHeader);
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
RtlCopyUnicodeString(&ObjectHeader->ObjectClass, &IoStack->FileObject->FileName);
|
||||
|
@ -726,7 +726,7 @@ KsFreeObjectHeader(
|
|||
if (ObjectHeader->ObjectClass.Buffer)
|
||||
{
|
||||
/* release object class buffer */
|
||||
ExFreePoolWithTag(ObjectHeader->ObjectClass.Buffer, TAG_DEVICE_HEADER);
|
||||
FreeItem(ObjectHeader->ObjectClass.Buffer);
|
||||
}
|
||||
|
||||
if (ObjectHeader->Unknown)
|
||||
|
@ -739,7 +739,7 @@ KsFreeObjectHeader(
|
|||
KspFreeCreateItems(&ObjectHeader->ItemList);
|
||||
|
||||
/* free object header */
|
||||
ExFreePoolWithTag(ObjectHeader, TAG_DEVICE_HEADER);
|
||||
FreeItem(ObjectHeader);
|
||||
|
||||
}
|
||||
|
||||
|
@ -914,11 +914,11 @@ KsAllocateObjectCreateItem(
|
|||
if (AllocateEntry)
|
||||
{
|
||||
/* allocate create item */
|
||||
Item = ExAllocatePool(NonPagedPool, sizeof(KSOBJECT_CREATE_ITEM));
|
||||
Item = AllocateItem(NonPagedPool, sizeof(KSOBJECT_CREATE_ITEM));
|
||||
if (!Item)
|
||||
{
|
||||
/* no memory */
|
||||
ExFreePool(CreateEntry);
|
||||
FreeItem(CreateEntry);
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
|
@ -931,7 +931,7 @@ KsAllocateObjectCreateItem(
|
|||
Item->ObjectClass.MaximumLength = CreateItem->ObjectClass.MaximumLength;
|
||||
|
||||
/* copy object class */
|
||||
Item->ObjectClass.Buffer = ExAllocatePool(NonPagedPool, Item->ObjectClass.MaximumLength);
|
||||
Item->ObjectClass.Buffer = AllocateItem(NonPagedPool, Item->ObjectClass.MaximumLength);
|
||||
if (!Item->ObjectClass.Buffer)
|
||||
{
|
||||
/* release resources */
|
||||
|
@ -1747,7 +1747,7 @@ KsCreateBusEnumObject(
|
|||
Length = wcslen(BusIdentifier) * sizeof(WCHAR);
|
||||
Length += sizeof(BUS_ENUM_DEVICE_EXTENSION);
|
||||
|
||||
BusDeviceExtension = ExAllocatePool(NonPagedPool, Length);
|
||||
BusDeviceExtension = AllocateItem(NonPagedPool, Length);
|
||||
if (!BusDeviceExtension)
|
||||
{
|
||||
/* not enough memory */
|
||||
|
@ -1772,12 +1772,12 @@ KsCreateBusEnumObject(
|
|||
|
||||
BusDeviceExtension->ServicePath.Length = 0;
|
||||
BusDeviceExtension->ServicePath.MaximumLength = Length;
|
||||
BusDeviceExtension->ServicePath.Buffer = ExAllocatePool(NonPagedPool, Length);
|
||||
BusDeviceExtension->ServicePath.Buffer = AllocateItem(NonPagedPool, Length);
|
||||
|
||||
if (!BusDeviceExtension->ServicePath.Buffer)
|
||||
{
|
||||
/* not enough memory */
|
||||
ExFreePool(BusDeviceExtension);
|
||||
FreeItem(BusDeviceExtension);
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
|
@ -1798,8 +1798,8 @@ KsCreateBusEnumObject(
|
|||
/* check for success */
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ExFreePool(BusDeviceExtension->ServicePath.Buffer);
|
||||
ExFreePool(BusDeviceExtension);
|
||||
FreeItem(BusDeviceExtension->ServicePath.Buffer);
|
||||
FreeItem(BusDeviceExtension);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -1808,8 +1808,8 @@ KsCreateBusEnumObject(
|
|||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ExFreePool(BusDeviceExtension->ServicePath.Buffer);
|
||||
ExFreePool(BusDeviceExtension);
|
||||
FreeItem(BusDeviceExtension->ServicePath.Buffer);
|
||||
FreeItem(BusDeviceExtension);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -1836,8 +1836,8 @@ KsCreateBusEnumObject(
|
|||
}
|
||||
|
||||
/* free device extension */
|
||||
ExFreePool(BusDeviceExtension->ServicePath.Buffer);
|
||||
ExFreePool(BusDeviceExtension);
|
||||
FreeItem(BusDeviceExtension->ServicePath.Buffer);
|
||||
FreeItem(BusDeviceExtension);
|
||||
|
||||
return STATUS_DEVICE_REMOVED;
|
||||
}
|
||||
|
@ -2795,7 +2795,7 @@ KsRegisterFilterWithNoKSPins(
|
|||
}
|
||||
|
||||
/* free the symbolic link list */
|
||||
ExFreePool(SymbolicLinkList);
|
||||
FreeItem(SymbolicLinkList);
|
||||
}
|
||||
|
||||
return Status;
|
||||
|
|
|
@ -239,7 +239,7 @@ KspReadMediaCategory(
|
|||
/* allocate buffer for the registry key */
|
||||
Path.Length = 0;
|
||||
Path.MaximumLength = MediaPath.MaximumLength + GuidString.MaximumLength;
|
||||
Path.Buffer = ExAllocatePool(NonPagedPool, Path.MaximumLength);
|
||||
Path.Buffer = AllocateItem(NonPagedPool, Path.MaximumLength);
|
||||
if (!Path.Buffer)
|
||||
{
|
||||
/* not enough memory */
|
||||
|
@ -262,7 +262,7 @@ KspReadMediaCategory(
|
|||
DPRINT("ZwOpenKey() status 0x%08lx %S\n", Status, Path.Buffer);
|
||||
|
||||
/* free path buffer */
|
||||
ExFreePool(Path.Buffer);
|
||||
FreeItem(Path.Buffer);
|
||||
|
||||
/* check for success */
|
||||
if (!NT_SUCCESS(Status))
|
||||
|
@ -281,7 +281,7 @@ KspReadMediaCategory(
|
|||
}
|
||||
|
||||
/* allocate buffer to read key info */
|
||||
KeyInfo = (PKEY_VALUE_PARTIAL_INFORMATION) ExAllocatePool(NonPagedPool, Size);
|
||||
KeyInfo = (PKEY_VALUE_PARTIAL_INFORMATION) AllocateItem(NonPagedPool, Size);
|
||||
if (!KeyInfo)
|
||||
{
|
||||
/* not enough memory */
|
||||
|
@ -298,7 +298,7 @@ KspReadMediaCategory(
|
|||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
/* failed to read key */
|
||||
ExFreePool(KeyInfo);
|
||||
FreeItem(KeyInfo);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -545,13 +545,13 @@ KspPinPropertyHandler(
|
|||
if (KeyInfo->DataLength + sizeof(WCHAR) > IoStack->Parameters.DeviceIoControl.OutputBufferLength)
|
||||
{
|
||||
Status = STATUS_BUFFER_OVERFLOW;
|
||||
ExFreePool(KeyInfo);
|
||||
FreeItem(KeyInfo);
|
||||
break;
|
||||
}
|
||||
|
||||
RtlMoveMemory(Irp->UserBuffer, &KeyInfo->Data, KeyInfo->DataLength);
|
||||
((LPWSTR)Irp->UserBuffer)[KeyInfo->DataLength / sizeof(WCHAR)] = L'\0';
|
||||
ExFreePool(KeyInfo);
|
||||
FreeItem(KeyInfo);
|
||||
break;
|
||||
case KSPROPERTY_PIN_PROPOSEDATAFORMAT:
|
||||
Size = sizeof(KSDATAFORMAT);
|
||||
|
|
|
@ -292,7 +292,7 @@ KspEnableEvent(
|
|||
else
|
||||
{
|
||||
/* allocate it from nonpaged pool */
|
||||
EventEntry = ExAllocatePool(NonPagedPool, Size);
|
||||
EventEntry = AllocateItem(NonPagedPool, Size);
|
||||
}
|
||||
|
||||
if (!EventEntry)
|
||||
|
@ -529,7 +529,7 @@ KsDiscardEvent(
|
|||
}
|
||||
|
||||
/* free event entry */
|
||||
ExFreePool(EventEntry);
|
||||
FreeItem(EventEntry);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ KsLoadResource(
|
|||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
/* allocate resource buffer */
|
||||
Result = ExAllocatePool(PoolType, Size);
|
||||
Result = AllocateItem(PoolType, Size);
|
||||
if (Result)
|
||||
{
|
||||
/* copy resource */
|
||||
|
@ -75,7 +75,7 @@ KsLoadResource(
|
|||
if (Result)
|
||||
{
|
||||
/* free resource buffer in case of a failure */
|
||||
ExFreePool(Result);
|
||||
FreeItem(Result);
|
||||
}
|
||||
}
|
||||
/* done */
|
||||
|
@ -127,7 +127,7 @@ KsGetImageNameAndResourceId(
|
|||
|
||||
/* allocate image name buffer */
|
||||
ImageName->MaximumLength = sizeof(ImagePath) + ImageLength;
|
||||
ImageName->Buffer = ExAllocatePool(PagedPool, ImageName->MaximumLength);
|
||||
ImageName->Buffer = AllocateItem(PagedPool, ImageName->MaximumLength);
|
||||
|
||||
/* check for success */
|
||||
if (!ImageName->Buffer)
|
||||
|
@ -145,7 +145,7 @@ KsGetImageNameAndResourceId(
|
|||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
/* unexpected error */
|
||||
ExFreePool(ImageName->Buffer);
|
||||
FreeItem(ImageName->Buffer);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -154,13 +154,13 @@ KsGetImageNameAndResourceId(
|
|||
Status = KspQueryRegValue(RegKey, L"ResourceId", NULL, &ImageLength, ValueType);
|
||||
|
||||
/* allocate resource id buffer*/
|
||||
*ResourceId = (ULONG_PTR)ExAllocatePool(PagedPool, ImageLength);
|
||||
*ResourceId = (ULONG_PTR)AllocateItem(PagedPool, ImageLength);
|
||||
|
||||
/* check for success */
|
||||
if (!*ResourceId)
|
||||
{
|
||||
/* insufficient memory */
|
||||
ExFreePool(ImageName->Buffer);
|
||||
FreeItem(ImageName->Buffer);
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
/* now query for resource id */
|
||||
|
@ -169,8 +169,8 @@ KsGetImageNameAndResourceId(
|
|||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
/* unexpected error */
|
||||
ExFreePool(ImageName->Buffer);
|
||||
ExFreePool((PVOID)*ResourceId);
|
||||
FreeItem(ImageName->Buffer);
|
||||
FreeItem((PVOID)*ResourceId);
|
||||
}
|
||||
|
||||
/* return result */
|
||||
|
@ -209,7 +209,7 @@ KsMapModuleName(
|
|||
/* initialize subkey buffer */
|
||||
SubKeyName.Length = 0;
|
||||
SubKeyName.MaximumLength = Modules.MaximumLength + ModuleName->MaximumLength;
|
||||
SubKeyName.Buffer = ExAllocatePool(PagedPool, SubKeyName.MaximumLength);
|
||||
SubKeyName.Buffer = AllocateItem(PagedPool, SubKeyName.MaximumLength);
|
||||
|
||||
/* check for success */
|
||||
if (!SubKeyName.Buffer)
|
||||
|
@ -240,7 +240,7 @@ KsMapModuleName(
|
|||
}
|
||||
|
||||
/* free subkey string */
|
||||
ExFreePool(SubKeyName.Buffer);
|
||||
FreeItem(SubKeyName.Buffer);
|
||||
|
||||
/* close device key */
|
||||
ZwClose(hKey);
|
||||
|
|
|
@ -101,7 +101,7 @@ KsDispatchSetSecurity(
|
|||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
/* free old descriptor */
|
||||
ExFreePool(Descriptor);
|
||||
FreeItem(Descriptor);
|
||||
|
||||
/* mark create item as changed */
|
||||
CreateItem->Flags |= KSCREATE_ITEM_SECURITYCHANGED;
|
||||
|
@ -896,7 +896,7 @@ ProbeMdl:
|
|||
if (Length && ( (!HeaderSize) || (Length % HeaderSize == 0) || ((ProbeFlags & KSPROBE_ALLOWFORMATCHANGE) && (Length == sizeof(KSSTREAM_HEADER))) ) )
|
||||
{
|
||||
/* allocate stream header buffer */
|
||||
Irp->AssociatedIrp.SystemBuffer = ExAllocatePool(NonPagedPool, Length);
|
||||
Irp->AssociatedIrp.SystemBuffer = AllocateItem(NonPagedPool, Length);
|
||||
|
||||
if (!Irp->AssociatedIrp.SystemBuffer)
|
||||
{
|
||||
|
|
|
@ -26,7 +26,6 @@ VOID
|
|||
FreeItem(
|
||||
IN PVOID Item)
|
||||
{
|
||||
|
||||
ExFreePool(Item);
|
||||
}
|
||||
|
||||
|
|
|
@ -1560,7 +1560,7 @@ KsStreamPointerClone(
|
|||
Size = sizeof(KSISTREAM_POINTER) + ContextSize;
|
||||
|
||||
/* allocate new stream pointer */
|
||||
NewFrame = (PKSISTREAM_POINTER)ExAllocatePool(NonPagedPool, Size);
|
||||
NewFrame = (PKSISTREAM_POINTER)AllocateItem(NonPagedPool, Size);
|
||||
|
||||
if (!NewFrame)
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
|
|
|
@ -30,7 +30,7 @@ KspCreateObjectType(
|
|||
Name.MaximumLength = wcslen(ObjectType) * sizeof(WCHAR) + CreateParametersSize + 2 * sizeof(WCHAR);
|
||||
Name.MaximumLength += sizeof(WCHAR);
|
||||
/* acquire request buffer */
|
||||
Name.Buffer = ExAllocatePool(NonPagedPool, Name.MaximumLength);
|
||||
Name.Buffer = AllocateItem(NonPagedPool, Name.MaximumLength);
|
||||
/* check for success */
|
||||
if (!Name.Buffer)
|
||||
{
|
||||
|
@ -68,7 +68,7 @@ KspCreateObjectType(
|
|||
IO_NO_PARAMETER_CHECKING | IO_FORCE_ACCESS_CHECK);
|
||||
|
||||
/* free request buffer */
|
||||
ExFreePool(Name.Buffer);
|
||||
FreeItem(Name.Buffer);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -200,7 +200,7 @@ KsTopologyPropertyHandler(
|
|||
|
||||
KeyName.Length = 0;
|
||||
KeyName.MaximumLength = LocalMachine.Length + GuidString.Length + sizeof(WCHAR);
|
||||
KeyName.Buffer = ExAllocatePool(PagedPool, KeyName.MaximumLength);
|
||||
KeyName.Buffer = AllocateItem(PagedPool, KeyName.MaximumLength);
|
||||
if (!KeyName.Buffer)
|
||||
{
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
@ -217,7 +217,7 @@ KsTopologyPropertyHandler(
|
|||
InitializeObjectAttributes(&ObjectAttributes, &KeyName, OBJ_CASE_INSENSITIVE, NULL, NULL);
|
||||
Status = ZwOpenKey(&hKey, GENERIC_READ, &ObjectAttributes);
|
||||
|
||||
ExFreePool(KeyName.Buffer);
|
||||
FreeItem(KeyName.Buffer);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
|
@ -235,7 +235,7 @@ KsTopologyPropertyHandler(
|
|||
}
|
||||
|
||||
ASSERT(Size);
|
||||
KeyInfo = (PKEY_VALUE_PARTIAL_INFORMATION) ExAllocatePool(NonPagedPool, Size);
|
||||
KeyInfo = (PKEY_VALUE_PARTIAL_INFORMATION) AllocateItem(NonPagedPool, Size);
|
||||
if (!KeyInfo)
|
||||
{
|
||||
Status = STATUS_NO_MEMORY;
|
||||
|
@ -245,7 +245,7 @@ KsTopologyPropertyHandler(
|
|||
Status = ZwQueryValueKey(hKey, &Name, KeyValuePartialInformation, (PVOID)KeyInfo, Size, &Size);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ExFreePool(KeyInfo);
|
||||
FreeItem(KeyInfo);
|
||||
ZwClose(hKey);
|
||||
Irp->IoStatus.Information = 0;
|
||||
break;
|
||||
|
@ -256,14 +256,14 @@ KsTopologyPropertyHandler(
|
|||
{
|
||||
Irp->IoStatus.Information = KeyInfo->DataLength + sizeof(WCHAR);
|
||||
Status = STATUS_MORE_ENTRIES;
|
||||
ExFreePool(KeyInfo);
|
||||
FreeItem(KeyInfo);
|
||||
break;
|
||||
}
|
||||
|
||||
RtlMoveMemory(Irp->UserBuffer, &KeyInfo->Data, KeyInfo->DataLength);
|
||||
((LPWSTR)Irp->UserBuffer)[KeyInfo->DataLength / sizeof(WCHAR)] = L'\0';
|
||||
Irp->IoStatus.Information = KeyInfo->DataLength + sizeof(WCHAR);
|
||||
ExFreePool(KeyInfo);
|
||||
FreeItem(KeyInfo);
|
||||
break;
|
||||
default:
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
|
Loading…
Reference in a new issue