Condividi tramite


Funzione FsRtlAllocateExtraCreateParameterList (ntifs.h)

La routine FsRtlAllocateExtraCreateParameterList alloca la memoria del pool di paging per una struttura ECP_LIST e genera un puntatore a tale struttura.

Sintassi

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

Parametri

[in] Flags

Definisce le opzioni di allocazione del pool. Se il flag FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA viene combinato con il parametro flag tramite un'operazione OR bit per bit, qualsiasi pool allocato da FsRtlAllocateExtraCreateParameterList verrà addebitato in base alla quota di memoria del processo corrente.

[out] EcpList

Riceve un puntatore a una struttura di elenco ECP inizializzata. Se FsRtlAllocateExtraCreateParameterList non è riuscito ad allocare un pool sufficiente, * EcpList sarà NULL e FsRtlAllocateExtraCreateParameterList restituirà il codice di stato STATUS_INSUFFICIENT_RESOURCES.

Valore restituito

FsRtlAllocateExtraCreateParameterList può restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES FsRtlAllocateExtraCreateParameterList non è stato in grado di allocare memoria sufficiente per una struttura di elenco ECP. In questo caso, *EcpList sarà NULL.
STATUS_SUCCESS La memoria per la struttura ECP_LIST è stata allocata e inizializzata correttamente. In questo caso, viene restituito un puntatore alla struttura dell'elenco inizializzato nel parametro EcpList.

Osservazioni

Se il sistema operativo libera automaticamente la memoria che FsRtlAllocateExtraCreateParameterList alloca dipende dal momento in cui viene chiamato FsRtlAllocateExtraCreateParameterList, come illustrato nelle situazioni seguenti:

  • Un chiamante può richiamare FsRtlAllocateExtraCreateParameterList per allocare il ECP_LIST e aggiungere una o più strutture di contesto ECP prima che il chiamante richiami la routine IoCreateFileEx. In questa situazione, il sistema operativo non libera alcuna delle strutture di contesto ECP. Pertanto, il chiamante può effettuare più chiamate a IoCreateFileEx con lo stesso set ECP. Quando il chiamante viene eseguito con il ECP_LIST, il chiamante deve chiamare il FltFreeExtraCreateParameter routine per liberare il ECP_LIST.

  • Mentre un file system o un driver di filtro del file system elabora una richiesta di IRP_MJ_CREATE, il driver di filtro del file system o del file system può chiamare FltInsertExtraCreateParameter per collegare un ECP a un ECP_LIST esistente. Se il ECP_LIST non esiste, il chiamante deve chiamare FsRtlAllocateExtraCreateParameterList per creare il ECP_LIST. In questo caso, il ECP_LIST e la struttura del contesto ECP vengono puliti automaticamente dal gestore di I/O al termine dell'operazione di creazione. Ciò consente la propagazione corretta dell'ECP di un driver di filtro o di un file system nell'elaborazione dei punti di analisi. Questo processo potrebbe richiedere la generazione di più richieste di IRP_MJ_CREATE.

Se il flag FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA viene usato con il parametro flag , viene allocato un pool di paging. In caso contrario, un pool di paging viene allocato usando un elenco lookaside interno.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL <= APC_LEVEL

Vedere anche

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx