FltIsIoRedirectionAllowedForOperation 函数 (fltkernel.h)

FltIsIoRedirectionAllowedForOperation 例程确定是否可以将 I/O 从与指定的 FLT_CALLBACK_DATA 结构关联的筛选器实例重定向到指定的筛选器实例。

语法

NTSTATUS FLTAPI FltIsIoRedirectionAllowedForOperation(
  [in]            PFLT_CALLBACK_DATA Data,
  [in]            PFLT_INSTANCE      TargetInstance,
  [out]           PBOOLEAN           RedirectionAllowedThisIo,
  [out, optional] PBOOLEAN           RedirectionAllowedAllIo
);

参数

[in] Data

表示 I/O 操作 的FLT_CALLBACK_DATA 结构。

[in] TargetInstance

目标设备堆栈上的筛选器实例。

[out] RedirectionAllowedThisIo

如果可以通过更改引用的筛选器实例将此 I/O 重定向到目标设备堆栈,则值为 TRUE

[out, optional] RedirectionAllowedAllIo

如果通过更改引用的筛选器实例,可将发出 I/O 操作的设备堆栈的所有 I/O 重定向到目标设备堆栈,则此可选参数的值为 TRUE ,否则为 FALSE

返回值

如果不支持重定向,则 NTSTATUS 值为 STATUS_SUCCESS 表示成功或STATUS_NOT_SUPPORTED。

注解

I/O 操作与 FLT_CALLBACK_DATA 结构相关联。 该结构包含对 PFLT_IO_PARAMETER_BLOCK 对象的引用,该对象包含对与 I/O 操作关联的微筛选器FLT_INSTANCE的引用。

如果 RedirectAllowedTRUE,则微筛选器可以通过将实例更改为新的目标实例来重定向 I/O。

如果 RedirectAllowedFALSE,则微筛选器需要分配新的回调数据对象以在目标堆栈上发出 I/O,或调用 FltAdjustDeviceStackSizeForIoRedirection 以增加源设备堆栈的大小。

注意 在验证重定向是否可通过这种方式进行之前,微筛选器不应修改对FLT_INSTANCE的引用。 使用 FltIsIoRedirectionAllowedForOperationFltIsIoRedirectionAllowed
 

要求

要求
最低受支持的客户端 在 Windows 7 及更高版本的 Windows 操作系统中可用。
目标平台 通用
标头 fltkernel.h (包括 FltKernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <=DISPATCH_LEVEL

另请参阅

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FltAdjustDeviceStackSizeForIoRedirection

FltIsIoRedirectionAllowed