PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK callback function (fltkernel.h)

A minifilter driver can optionally register a routine of type PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK as the minifilter driver's SectionNotificationCallback routine. Certain file operations are incompatible with file sections. If a minifilter provides a SectionNotificationCallback routine, the callback is called when section conflicts occur.

Syntax

PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK PfltSectionConflictNotificationCallback;

NTSTATUS PfltSectionConflictNotificationCallback(
  [in] PFLT_INSTANCE Instance,
  [in] PFLT_CONTEXT SectionContext,
  [in] PFLT_CALLBACK_DATA Data
)
{...}

Parameters

[in] Instance

An opaque instance pointer to the minifilter driver instance that is initiating the I/O operation.

[in] SectionContext

A pointer to the section context that incurred a data scan section conflict.

[in] Data

A pointer to a caller-allocated structure that contains the callback data.

Return value

This callback routine returns STATUS_SUCCESS.

Remarks

A minifilter registers for section conflict notifications by setting a PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK routine to the SectionNotificationCallback member of the FLT_REGISTRATION structure when registering a minifilter driver.

Certain situations can occur where holding a section open is incompatible with current file I/O. In particular, file I/O that triggers a cache purge can cause cache incoherency if the cache purge is prevented because of an open section. A minifilter can provide this optional callback routine for notifications of these events. When a notification is received, the section can be closed to allow the conflicting I/O operation to continue.

Requirements

Requirement Value
Minimum supported client The PFLT_CONTEXT_ALLOCATE_CALLBACK callback routine is available on Windows 8 and later.
Target Platform Desktop
Header fltkernel.h (include Fltkernel.h)
IRQL PASSIVE_LEVEL

See also

FLT_CALLBACK_DATA

FLT_REGISTRATION

FltCreateSectionForDataScan

FltRegisterFilter