// fltkernel.h
NTSTATUS FLTAPI FltVetoBypassIo(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] NTSTATUS OperationStatus,
[in] PCUNICODE_STRING FailureReason
);
View the official Windows Driver Kit DDI referenceNo description available.
FltVetoBypassIo retrieves information needed to veto a BypassIO request.
CallbackData [in]Pointer to the FLT_CALLBACK_DATA for FSCTL_MANAGE_BYPASS_IO.
FltObjects [in]Pointer to the FLT_RELATED_OBJECTS structure for the BypassIO operation.
OperationStatus [in]The NTSTATUS error code provided by the filter for the veto.
FailureReason [in]A unique, descriptive string that provides details about why the filter is vetoing the BypassIO enable request.
FltVetoBypassIo returns STATUS_SUCCESS upon successful completion; otherwise, it returns an NTSTATUS value such as one of the following.
| Value | Meaning |
|---|---|
| STATUS_BUFFER_TOO_SMALL | The FSCTL's output buffer is too small. |
| STATUS_INVALID_BUFFER_SIZE | The FSCTL's input buffer is too small. |
| STATUS_INVALID_PARAMETER_3 | An appropriate error code was not provided. |
| STATUS_INVALID_PARAMETER_4 | An appropriate failure reason was not provided. |
| STATUS_NOT_SUPPORTED | The requested operation isn't supported or wasn't requested from a pre-op callback. |
A minifilter calls FltVetoBypassIo when it intends to veto a FS_BPIO_OP_ENABLE or FS_BPIO_OP_QUERY request on a file. A minifilter should only call this routine from its pre-operation callback.
FltVetoBypassIo fills in the caller-allocated FS_BPIO_OUTPUT structure associated with CallbackData with the information needed to veto the BypassIO request. The caller must provide a buffer that is large enough to hold the structure.
FltVetoBypassIo logs an ETW event with the status, filter-provided reason, and filter's name.
See BypassIO for filter drivers and Supporting BypassIO operations for more information.