Funzione FsRtlAllocateExtraCreateParameterList (ntifs.h)

La routine FsRtlAllocateExtraCreateParameterList alloca la memoria del pool in pagina 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 Flags usando un'operazione OR bit per bit, qualsiasi pool allocato da FsRtlAllocateExtraCreateParameterList verrà addebitato rispetto alla quota di memoria del processo corrente.

[out] EcpList

Riceve un puntatore a una struttura di elenco ECP inizializzata. Se FsRtlAllocateExtraCreateParameterList non è riuscito a 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 .

Commenti

Se il sistema operativo libera automaticamente la memoria che FsRtlAllocateExtraCreateParameterList dipende dalla chiamata di FsRtlAllocateExtraCreateParameterList, come illustrato nelle situazioni seguenti:

  • Un chiamante può richiamare FsRtlAllocateExtraCreateParameterList per allocare la ECP_LIST e aggiungere una o più strutture di contesto ECP prima che il chiamante richiama 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 la routine FltFreeExtraCreateParameter per liberare il ECP_LIST.

  • Mentre un file system o un driver di filtro file system elabora una richiesta di IRP_MJ_CREATE , il driver di filtro file system o file system può chiamare FltInsertExtraCreateParameter per collegare un ECP a un ECP_LIST esistente. Se la ECP_LIST non esiste, il chiamante deve chiamare FsRtlAllocateExtraCreateParameterList per creare la ECP_LIST. In questa situazione, la ECP_LIST e la struttura del contesto ECP vengono automaticamente puliti dal gestore di I/O al termine dell'operazione di creazione. In questo modo, il driver ECP di un file system o di filtro deve essere propagato correttamente nell'elaborazione dei punti di ripristino. 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 Flags , viene allocato un pool paginabile. In caso contrario, un pool paginabile viene allocato usando un elenco lookaside interno.

Requisiti

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

Vedi anche

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx