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