35 m_RawBufferSize(0), m_MemoryDeviceBase(MemoryDeviceBase)
153#pragma prefast(disable:__WARNING_POTENTIAL_BUFFER_OVERFLOW_HIGH_PRIORITY)
187 sizeof(FX_POOL_TRACKER),
209 return &
pHeader->AllocationStart[0];
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
PVOID InitObjectAlloc(__out_bcount(this->m_MemoryObjectSize) PVOID Alloc)
static VOID _Reclaim(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __inout PNPAGED_LOOKASIDE_LIST List, __in FxMemoryBufferFromLookaside *Memory)
_Must_inspect_result_ NTSTATUS InitializeLookaside(__in USHORT BufferSize, __in USHORT MemoryObjectSize, __in PWDF_OBJECT_ATTRIBUTES MemoryAttributes)
WDF_OBJECT_ATTRIBUTES m_MemoryAttributes
size_t m_MemoryObjectSize
static PVOID _GetBase(__in FxObject *Object)
VOID SetDeviceBase(__in CfxDeviceBase *DeviceBase)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
VOID MarkPassiveCallbacks(__in FxObjectLockState State=ObjectLock)
BOOLEAN UsePagedBufferObject(VOID)
virtual VOID Reclaim(__in FxMemoryBufferFromLookaside *Memory)
PAGED_LOOKASIDE_LIST m_PoolLookaside
NPAGED_LOOKASIDE_LIST m_ObjectLookaside
~FxPagedLookasideListFromPool(VOID)
friend FxMemoryBufferFromPoolLookaside
FxDeviceBase * m_MemoryDeviceBase
virtual _Must_inspect_result_ NTSTATUS Allocate(__out FxMemoryObject **PPMemory)
FxPagedLookasideListFromPool(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in ULONG PoolTag, __in FxDeviceBase *DeviceBase, __in FxDeviceBase *MemoryDeviceBase)
virtual _Must_inspect_result_ NTSTATUS Initialize(__in size_t BufferSize, __in PWDF_OBJECT_ATTRIBUTES MemoryAttributes)
PVOID InitPagedAlloc(__out_bcount(this->m_RawBufferSize) PVOID Alloc)
static __inline VOID MxInitializePagedLookasideList(_Out_ PPAGED_LOOKASIDE_LIST Lookaside, _In_opt_ PALLOCATE_FUNCTION Allocate, _In_opt_ PFREE_FUNCTION Free, _In_ ULONG Flags, _In_ SIZE_T Size, _In_ ULONG Tag, _In_ USHORT Depth)
static __inline VOID MxDeletePagedLookasideList(_In_ PPAGED_LOOKASIDE_LIST LookasideList)
static __inline VOID MxDeleteNPagedLookasideList(_In_ PNPAGED_LOOKASIDE_LIST LookasideList)
static __inline VOID MxInitializeNPagedLookasideList(_Out_ PNPAGED_LOOKASIDE_LIST Lookaside, _In_opt_ PALLOCATE_FUNCTION Allocate, _In_opt_ PFREE_FUNCTION Free, _In_ ULONG Flags, _In_ SIZE_T Size, _In_ ULONG Tag, _In_ USHORT Depth)
#define NT_SUCCESS(StatCode)
PFX_DRIVER_GLOBALS pFxDriverGlobals
__inline PVOID FxAllocateFromNPagedLookasideList(_In_ PNPAGED_LOOKASIDE_LIST Lookaside, _In_opt_ size_t ElementSize=0)
_Must_inspect_result_ __inline PVOID FxAllocateFromPagedLookasideList(__in PPAGED_LOOKASIDE_LIST Lookaside)
FX_POOL_TRACKER * PFX_POOL_TRACKER
FX_POOL_HEADER * PFX_POOL_HEADER
_Must_inspect_result_ NTSTATUS __inline FxPoolAddHeaderSize(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in size_t AllocationSize, __out size_t *NewSize)
VOID __inline FxPoolInsertPagedAllocateTracker(__in PFX_POOL Pool, __in PFX_POOL_TRACKER Tracker, __in SIZE_T Size, __in ULONG Tag, __in PVOID Caller)
FxContextHeader * pHeader
#define _Must_inspect_result_
BOOLEAN IsPoolTrackingOn(VOID)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INSUFFICIENT_RESOURCES
#define WDF_PTR_ADD_OFFSET_TYPE(_ptr, _offset, _type)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES MemoryAttributes
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList