FsRtlAllocateExtraCreateParameterList - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntifs.h

NTSTATUS FsRtlAllocateExtraCreateParameterList(
  [in]  FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
  [out] PECP_LIST                    *EcpList
);

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-ntifs-fsrtlallocateextracreateparameterlist)

FsRtlAllocateExtraCreateParameterList function

Description

The FsRtlAllocateExtraCreateParameterList routine allocates paged pool memory for an ECP_LIST structure and generates a pointer to that structure.

Parameters

Flags [in]

Defines pool allocation options. If the FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA flag is combined with the Flags parameter by using a bitwise OR operation, any pool allocated by FsRtlAllocateExtraCreateParameterList will be charged against the current process' memory quota.

EcpList [out]

Receives a pointer to an initialized ECP list structure. If FsRtlAllocateExtraCreateParameterList failed to allocate sufficient pool, *EcpList will be NULL and FsRtlAllocateExtraCreateParameterList will return status code STATUS_INSUFFICIENT_RESOURCES.

Return value

FsRtlAllocateExtraCreateParameterList can return one of the following values:

Return code Description
STATUS_INSUFFICIENT_RESOURCES FsRtlAllocateExtraCreateParameterList was unable to allocate sufficient memory for an ECP list structure. In this case, *EcpList will be NULL.
STATUS_SUCCESS The memory for the ECP_LIST structure was successfully allocated and initialized. In this case, a pointer to the initialized list structure is returned in the EcpList parameter.

Remarks

Whether the operating system automatically frees memory that FsRtlAllocateExtraCreateParameterList allocates depends on when FsRtlAllocateExtraCreateParameterList is called, as shown in the following situations:

If the FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA flag is used with the Flags parameter, a pageable pool is allocated. Otherwise, a pageable pool is allocated by using an internal lookaside list.

See also

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx