fltVetoBypassIo 函数 (fltkernel.h)

FltVetoBypassIo 检索否决 BypassIO 请求所需的信息。

语法

NTSTATUS FLTAPI FltVetoBypassIo(
  [in] PFLT_CALLBACK_DATA    CallbackData,
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] NTSTATUS              OperationStatus,
  [in] PCUNICODE_STRING      FailureReason
);

参数

[in] CallbackData

指向FSCTL_MANAGE_BYPASS_IO FLT_CALLBACK_DATA指针。

[in] FltObjects

指向 BypassIO 操作 FLT_RELATED_OBJECTS 结构的指针。

[in] OperationStatus

筛选器为否决提供的 NTSTATUS 错误代码。

[in] FailureReason

一个唯一的描述性字符串,提供有关筛选器否决 BypassIO 启用请求的原因的详细信息。

返回值

成功完成后,FltVetoBypassIo 返回STATUS_SUCCESS;否则,它将返回 NTSTATUS 值,如下所示之一。

含义
STATUS_BUFFER_TOO_SMALL FSCTL 的 输出缓冲区 太小。
STATUS_INVALID_BUFFER_SIZE FSCTL 的 输入缓冲区 太小。
STATUS_INVALID_PARAMETER_3 未提供相应的错误代码。
STATUS_INVALID_PARAMETER_4 未提供适当的失败原因。
STATUS_NOT_SUPPORTED 请求的操作不受支持或未从操作前回调请求。

注解

当微筛选器打算对文件否决FS_BPIO_OP_ENABLE或FS_BPIO_OP_QUERY请求时,它会调用 FltVetoBypassIo。 微筛选器只应从其操作前回调调用此例程。

FltVetoBypassIo 使用否决 BypassIO 请求所需的信息填充与 CallbackData 关联的调用方分配的FS_BPIO_OUTPUT结构。 调用方必须提供足以容纳 结构的缓冲区。

FltVetoBypassIo 使用状态、筛选器提供的原因和筛选器的名称记录 ETW 事件。

有关详细信息,请参阅有关筛选器驱动程序的 BypassIO 和支持 BypassIO 操作

要求

要求
最低受支持的客户端 Windows 11
标头 fltkernel.h
IRQL <= APC_LEVEL

另请参阅

FS_BPIO_INPUT

FS_BPIO_OPERATIONS

FS_BPIO_OUTPUT

FSCTL_MANAGE_BYPASS_IO