Ensures a RTL_BUFFER's dynamic buffer is big enough to accommodate a specified size
Syntax
NTSTATUS WINAPI RtlpEnsureBufferSize (
ULONG flags,
PRTL_BUFFER pBuffer,
SIZE_T requiredSize
)
Parameters
- flags
- Bit flags modifying the behaviour of the function. This can be 0 or the following value:
- RTLP_SKIP_BUFFER_COPY (0x1)
- If a new buffer is allocated, don't copy over the original contents of pBuffer->Buffer
- pBuffer
- The buffer whose dynamic size is to be ensured
- requiredSize
- Buffer size required
Return Value
STATUS_SUCCESS if all went well, an error code otherwise
Remarks
The memory buffer is allocated by RtlAllocateHeap with the process heap.
If the current size of the dynamic portion of the RTL_BUFFER is more than requiredSize, the function does nothing.
RTL_BUFFERs are used in such functions as RtlNtPathNameToDosPathName and RtlAppendPathElement, sometimes wrapped in other structures. The definition of an RTL_BUFFER is:
typedef struct _RTL_BUFFER { PUCHAR Buffer; PUCHAR StaticBuffer; SIZE_T Size; SIZE_T StaticSize; SIZE_T ReservedForAllocatedSize; PVOID ReservedForIMalloc; } RTL_BUFFER, *PRTL_BUFFER;