RtlMdl::operator new()

in netcx/bm/mdl.cpp [31:55]


RtlMdl::operator new(
    size_t BaseSize,
    void * VirtualAddress,
    size_t Length
)
{
    auto allocationSize = MmSizeOfMdl(
        VirtualAddress,
        Length);

    NT_FRE_ASSERT(allocationSize > BaseSize);

    auto storage = ExAllocatePoolWithTag(
        NonPagedPoolNx,
        allocationSize,
        BUFFER_MANAGER_POOL_TAG);

    if (storage == nullptr)
    {
        return nullptr;
    }

    RtlZeroMemory(storage, allocationSize);
    return storage;
}