if (!Kcb->PrivateAlloc)
{
/* Free it from the pool */
- ExFreePoolWithTag(Kcb, TAG_CM);
+ CmpFree(Kcb, 0);
return;
}
}
/* Free the page */
- ExFreePoolWithTag(AllocPage, TAG_CM);
+ CmpFree(AllocPage, 0);
}
/* Release the lock */
}
/* Allocate an allocation page */
- AllocPage = ExAllocatePoolWithTag(PagedPool, PAGE_SIZE, TAG_CM);
+ AllocPage = CmpAllocate(PAGE_SIZE, TRUE, TAG_CM);
if (AllocPage)
{
/* Set default entries */
}
/* Allocate a KCB only */
- CurrentKcb = ExAllocatePoolWithTag(PagedPool,
- sizeof(CM_KEY_CONTROL_BLOCK),
- TAG_CM);
+ CurrentKcb = CmpAllocate(sizeof(CM_KEY_CONTROL_BLOCK),
+ TRUE,
+ TAG_CM);
if (CurrentKcb)
{
/* Set it up */
}
/* Allocate an allocation page */
- AllocPage = ExAllocatePoolWithTag(PagedPool, PAGE_SIZE, TAG_CM);
+ AllocPage = CmpAllocate(PAGE_SIZE, TRUE, TAG_CM);
if (AllocPage)
{
/* Set default entries */
}
/* Now free the page */
- ExFreePoolWithTag(AllocPage, TAG_CM);
+ CmpFree(AllocPage, 0);
}
/* Release the lock */
SearchName.Length = CmpCompressedNameSize(Node->Name,
Node->NameLength);
SearchName.MaximumLength = SearchName.Length;
- SearchName.Buffer = ExAllocatePoolWithTag(PagedPool,
- SearchName.Length,
- TAG_CM);
+ SearchName.Buffer = CmpAllocate(SearchName.Length,
+ TRUE,
+ TAG_CM);
if (!SearchName.Buffer)
{
/* Fail */
if (Child != HCELL_NIL)
{
/* We found it, free the name now */
- if (IsCompressed) ExFreePool(SearchName.Buffer);
+ if (IsCompressed) CmpFree(SearchName.Buffer, 0);
/* Release the parent key */
HvReleaseCell(Hive, ParentKey);
if (CellToRelease != HCELL_NIL) HvReleaseCell(Hive, CellToRelease);
/* Free the search name and return failure */
- if (IsCompressed) ExFreePool(SearchName.Buffer);
+ if (IsCompressed) CmpFree(SearchName.Buffer, 0);
return FALSE;
}
if (SearchName.MaximumLength > sizeof(Buffer))
{
/* Allocate one */
- SearchName.Buffer = ExAllocatePoolWithTag(PagedPool,
- SearchName.Length,
- TAG_CM);
+ SearchName.Buffer = CmpAllocate(SearchName.Length,
+ TRUE,
+ TAG_CM);
if (!SearchName.Buffer) return FALSE;
}
else
if ((IsCompressed) && (SearchName.MaximumLength > sizeof(Buffer)))
{
/* Free the buffer we allocated */
- ExFreePool(SearchName.Buffer);
+ CmpFree(SearchName.Buffer, 0);
}
/* Return the result */
Length = CmpHashTableSize * sizeof(CM_KEY_HASH_TABLE_ENTRY);
/* Allocate it */
- CmpCacheTable = ExAllocatePoolWithTag(PagedPool, Length, TAG_CM);
+ CmpCacheTable = CmpAllocate(Length, TRUE, TAG_CM);
if (!CmpCacheTable)
{
/* Take the system down */
Length = CmpHashTableSize * sizeof(CM_NAME_HASH_TABLE_ENTRY);
/* Now allocate the name cache table */
- CmpNameCacheTable = ExAllocatePoolWithTag(PagedPool, Length, TAG_CM);
+ CmpNameCacheTable = CmpAllocate(Length, TRUE, TAG_CM);
if (!CmpNameCacheTable)
{
/* Take the system down */
{
/* Allocate one */
NcbSize = FIELD_OFFSET(CM_NAME_CONTROL_BLOCK, Name) + Length;
- Ncb = ExAllocatePoolWithTag(PagedPool, NcbSize, TAG_CM);
+ Ncb = CmpAllocate(NcbSize, TRUE, TAG_CM);
if (!Ncb)
{
/* Release the lock and fail */
}
/* Found it, now free it */
- ExFreePool(Ncb);
+ CmpFree(Ncb, 0);
}
/* Release the lock */
if (CMP_IS_CELL_CACHED(CachedList[i]))
{
/* Free it */
- ExFreePool((PVOID)CMP_GET_CACHED_CELL(CachedList[i]));
+ CmpFree((PVOID)CMP_GET_CACHED_CELL(CachedList[i]), 0);
}
}
/* Now free the list */
- ExFreePool((PVOID)CMP_GET_CACHED_CELL(Kcb->ValueCache.ValueList));
+ CmpFree((PVOID)CMP_GET_CACHED_CELL(Kcb->ValueCache.ValueList), 0);
Kcb->ValueCache.ValueList = HCELL_NIL;
}
else if (Kcb->ExtFlags & CM_KCB_SYM_LINK_FOUND)
CmpDereferenceNameControlBlockWithLock(Kcb->NameBlock);
/* Check if we have an index hint block and free it */
- if (Kcb->ExtFlags & CM_KCB_SUBKEY_HINT) ExFreePool(Kcb->IndexHint);
+ if (Kcb->ExtFlags & CM_KCB_SUBKEY_HINT) CmpFree(Kcb->IndexHint, 0);
/* Check if we were already deleted */
Parent = Kcb->ParentKcb;
if (Kcb->ExtFlags & (CM_KCB_SUBKEY_HINT))
{
/* Kill it */
- ExFreePool(Kcb->IndexHint);
+ CmpFree(Kcb->IndexHint, 0);
}
/* Remove subkey flags */
}
/* Allocate the unicode string now */
- KeyName = ExAllocatePoolWithTag(PagedPool,
- NameLength + sizeof(UNICODE_STRING),
- TAG_CM);
+ KeyName = CmpAllocate(NameLength + sizeof(UNICODE_STRING),
+ TRUE,
+ TAG_CM);
if (!KeyName) return NULL;
MyKcb->ExtFlags & CM_KCB_KEY_NON_EXIST)
{
/* Failure */
- ExFreePool(KeyName);
+ CmpFree(KeyName, 0);
return NULL;
}
if (!KeyNode)
{
/* Failure */
- ExFreePool(KeyName);
+ CmpFree(KeyName, 0);
return NULL;
}
}
if (ValueCellToRelease) HvReleaseCell(Kcb->KeyHive, ValueCellToRelease);
/* Free the buffer */
- if (BufferAllocated) ExFreePool(Buffer);
+ if (BufferAllocated) CmpFree(Buffer, 0);
/* Free the cell */
if (CellToRelease) HvReleaseCell(Kcb->KeyHive, CellToRelease);
if (BufferAllocated)
{
/* Free the buffer and bugcheck */
- ExFreePool(Buffer);
+ CmpFree(Buffer, 0);
KeBugCheckEx(REGISTRY_ERROR, 8, 0, (ULONG_PTR)Hive, (ULONG_PTR)Value);
}