Condividi tramite


Funzione FltAllocateCallbackDataEx (fltkernel.h)

La routine FltAllocateCallbackDataEx alloca una struttura di dati di callback e può preallocare memoria per strutture aggiuntive che un driver minifilter può usare per avviare una richiesta di I/O.

Sintassi

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

Parametri

[in] Instance

Puntatore dell'istanza opaca all'istanza del driver minifilter che avvia l'operazione di I/O. Questo parametro è obbligatorio e non può essere NULL.

[in/optional] FileObject

Puntatore a un oggetto file da utilizzare nell'operazione di I/O. Questo parametro è facoltativo e può essere NULL. Impostare FileObject su NULL se si tratta di un'operazione CREATE.

[in] Flags

Valore zero o il flag seguente: FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

Se questo flag è impostato, la routine prealloca tutta la memoria necessaria dal gestore filtri per utilizzare strutture aggiuntive in una richiesta di I/O.

[out] RetNewCallbackData

Puntatore a una variabile allocata dal chiamante che riceve l'indirizzo dei dati di callback appena allocati FLT_CALLBACK_DATA struttura.

Valore restituito

La routine FltAllocateCallbackDataEx restituisce STATUS_SUCCESS in caso di esito positivo o STATUS_INSUFFICIENT_RESOURCES se la routine ha rilevato un errore di allocazione del pool durante il tentativo di allocare la struttura dei dati di callback o se il flag FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY è impostato e non è stato possibile allocare memoria aggiuntiva.

Commenti

Se il flag FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY è impostato, la routine alloca tutta la memoria necessaria per l'uso di strutture di gestione filtri aggiuntive in una richiesta di I/O successiva. L'uso di questo flag consente a un minifilter di preallocare una o più strutture di dati di callback da usare per l'emissione di richieste di I/O in condizioni di memoria insufficiente o in situazioni in cui il ripristino da un errore di allocazione di memoria potrebbe essere complicato.

Nota

La memoria allocata aggiuntiva è destinata all'uso da parte del gestore filtri. Il file system o altri filtri possono comunque non riuscire la richiesta di I/O a causa di una condizione di memoria insufficiente.

Importante

I commenti per FltAllocateCallbackData si applicano anche a FltAllocateCallbackDataEx . Esaminare tali informazioni per selezionare la routine corretta per la progettazione.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 7 e versioni successive del sistema operativo Windows.
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include FltKernel.h)
Libreria FltMgr.lib
IRQL <= APC_LEVEL

Vedi anche

FLT_CALLBACK_DATA

FltAllocateCallbackData