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
[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
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
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList