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 |
---|---|
|
Operazione completata. |
|
Il reindirizzamento non è supportato. |
|
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 |