Funzione FltAdjustDeviceStackSizeForIoRedirection (fltkernel.h)

La routine FltAdjustDeviceStackSizeForIoRedirection aumenta le dimensioni dello stack di dispositivi di origine per consentire a un minifilter di reindirizzare I/O da un'istanza di origine specificata a un'istanza di destinazione specificata quando lo stack di destinazione è più profondo dello stack di origine.

Sintassi

NTSTATUS FLTAPI FltAdjustDeviceStackSizeForIoRedirection(
  [in]            PFLT_INSTANCE SourceInstance,
  [in]            PFLT_INSTANCE TargetInstance,
  [out, optional] PBOOLEAN      SourceDeviceStackSizeModified
);

Parametri

[in] SourceInstance

Istanza del filtro nello stack di dispositivi di origine.

[in] TargetInstance

Istanza del filtro nello stack di dispositivi di destinazione.

[out, optional] SourceDeviceStackSizeModified

Questo parametro facoltativo ha un valore TRUE se la routine FltAdjustDeviceStackSizeForIoRedirection ha modificato le dimensioni dello stack di dispositivi di origine, FALSE in caso contrario.

Valore restituito

Valore restituito Descrizione
STATUS_SUCCESS
Operazione completata.
STATUS_NOT_SUPPORTED
Il reindirizzamento non è supportato.
STATUS_INVALID_PARAMETER
Lo stack di dispositivi di origine sarebbe troppo grande dopo aver chiamato questa routine.

Commenti

L'uso di FltAdjustDeviceStackSizeForIoRedirection non garantisce che ogni IRP rilevato dal minifiltro sia sufficiente per essere reindirizzato allo stack di destinazione. I runtime di integrazione allocati e rilasciati prima della chiamata a FltAdjustDeviceStackSizeForIoRedirection sarebbero ancora stati allocati in base alle dimensioni dello stack precedenti.

Un minifilter può modificare le dimensioni dello stack durante l'installazione dell'istanza se il filtro sa a quale stack verrà reindirizzato l'I/O.

Il filtro può eseguire la propria operazione di creazione verso il basso nel nuovo stack usando FltCreateFile. Prima di completare l'operazione di creazione, il filtro può modificare le dimensioni dello stack in modo da tenere conto dello stack di destinazione. Questa regolazione garantisce che le dimensioni dello stack vengano modificate prima del completamento dell'azione di creazione. Tutti i runtime di integrazione allocati per l'oggetto file avranno uno stack sufficientemente grande per supportare il reindirizzamento.

Durante l'installazione dell'istanza o durante il callback post-creazione per un oggetto file reindirizzato, usare FltIsIoRedirectionAllowed per determinare se il reindirizzamento è possibile senza modificare lo stack di origine. Se necessario, usare FltAdjustDeviceStackSizeForIoRedirection per regolare lo stack di origine.

Nel callback di pre-operazione per ogni operazione che richiede il reindirizzamento, usare FltIsIoRedirectionAllowedForOperation per determinare se il reindirizzamento è possibile senza modificare lo stack di origine. Se necessario, usare FltAdjustDeviceStackSizeForIoRedirection per regolare lo stack di origine.

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 <=DISPATCH_LEVEL

Vedi anche

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FltIsIoRedirectionAllowed

FltIsIoRedirectionAllowedForOperation

PFLT_PRE_OPERATION_CALLBACK