Funzione FsRtlAllocateExtraCreateParameterFromLookasideList (ntifs.h)
La routine FsRtlAllocateExtraCreateParameterFromLookasideList alloca il pool di memoria da un determinato elenco lookaside per una struttura di contesto ECP (Extra Create Parameter) e genera un puntatore a tale struttura.
Sintassi
NTSTATUS FsRtlAllocateExtraCreateParameterFromLookasideList(
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in, out] PVOID LookasideList,
[out] PVOID *EcpContext
);
Parametri
[in] EcpType
Puntatore a un GUID che indica il tipo di ECP per cui deve essere allocata una struttura di contesto. Per altre informazioni sugli ECP, vedere Uso di parametri di creazione aggiuntivi con un'operazione di IRP_MJ_CREATE.
[in] SizeOfContext
Dimensioni, in byte, della struttura di contesto ECP.
[in] Flags
Definisce le opzioni di allocazione del pool. Se il valore del parametro SizeOfContext è maggiore delle dimensioni, in byte, dell'elenco lookaside a cui punta il parametro LookasideList , FsRtlAllocateExtraCreateParameterFromLookasideList alloca la struttura del contesto ECP dal pool di sistema anziché l'elenco lookaside. In questo caso, se il parametro Flags contiene il valore del flag di FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA bit, il pool di sistema allocato da FsRtlAllocateExtraCreateParameterFromLookasideList viene addebitato rispetto alla quota di memoria del processo corrente. Per altre informazioni sui valori del flag di bit, vedere il parametro Flags di FsRtlAllocateExtraCreateParameter. Nel caso più tipico, quando FsRtlAllocateExtraCreateParameterFromLookasideList alloca la memoria per la struttura di contesto ECP dall'elenco lookaside, FsRtlAllocateExtraCreateParameterFromLookasideList ignora il flag di FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA bit.
[in, optional] CleanupCallback
Puntatore facoltativo a una routine di callback di pulizia definita dal minifilter di tipo PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK. La routine di callback di pulizia viene chiamata quando viene eliminata la struttura del contesto ECP. Impostare questo parametro su NULL se una routine di callback di pulizia non è applicabile.
[in, out] LookasideList
Puntatore a un elenco lookaside inizializzato da cui FsRtlAllocateExtraCreateParameterFromLookasideList tenta di allocare pool (per la struttura di contesto ECP). Per inizializzare l'elenco lookaside, usare la routine FsRtlInitExtraCreateParameterLookasideList .
[out] EcpContext
Puntatore a una posizione che riceve un puntatore alla struttura di contesto ECP allocata. Se FsRtlAllocateExtraCreateParameterFromLookasideList non è riuscito a allocare un pool sufficiente per la struttura di contesto ECP, FsRtlAllocateExtraCreateParameterFromLookasideList imposta EcpContext su NULL e restituisce il codice di stato STATUS_INSUFFICIENT_RESOURCES.
Valore restituito
La routine FsRtlAllocateExtraCreateParameterFromLookasideList può restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_INSUFFICIENT_RESOURCES | La routine FsRtlAllocateExtraCreateParameterFromLookasideList non è stata in grado di allocare memoria sufficiente per una struttura di contesto ECP. In questo caso, il parametro EcpContext è NULL. |
STATUS_SUCCESS | La struttura del contesto ECP è stata allocata correttamente. In questo caso , FsRtlAllocateExtraCreateParameterFromLookasideList restituisce un puntatore alla struttura allocata nel parametro EcpContext . |
Commenti
Usare la routine FsRtlInitExtraCreateParameterLookasideList per inizializzare un elenco lookaside del pool impaginato o non a pagina. Usare la routine FsRtlAllocateExtraCreateParameterFromLookasideList per allocare una struttura di contesto ECP dall'elenco lookaside e la routine FsRtlFreeExtraCreateParameter per deallocare la struttura del contesto ECP.
Usare la routine FsRtlDeleteExtraCreateParameterLookasideList per liberare un elenco lookaside.
I driver devono liberare tutte le strutture di contesto ECP e gli elenchi lookaside creati prima di scaricare. Tuttavia, se un driver di filtro file system o file system collega un ECP a un ECP_LIST esistente o appena creato durante l'elaborazione di una richiesta di IRP_MJ_CREATE, questo ECP viene automaticamente pulito al termine dell'IRP. Di conseguenza, un driver di filtro non deve pulire gli ECP aggiunti dinamicamente. Ciò consente a un driver di filtro di propagarsi correttamente tra i punti di ripetizione dell'analisi, un processo che può richiedere la generazione di più richieste di IRP_MJ_CREATE .
Per altre informazioni sull'uso di elenchi lookaside con driver, vedere Uso di Lookaside Elenchi.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | FsRtlAllocateExtraCreateParameterFromLookasideList è disponibile a partire da Windows Vista. |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Vedi anche
FsRtlDeleteExtraCreateParameterLookasideList
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per