FsRtlOplockIsFastIoPossible function

FsRtlOplockIsFastIoPossible checks a file's opportunistic lock (oplock) state to determine whether fast I/O can be performed on the file.

Syntax

BOOLEAN FsRtlOplockIsFastIoPossible(
  POPLOCK Oplock
);

Parameters

Oplock

Opaque opportunistic lock pointer for the file. This pointer must have been initialized by a previous call to FsRtlInitializeOplock.

Return value

FsRtlOplockIsFastIoPossible returns FALSE if there are outstanding opportunistic locks on the file that prevent fast I/O from being performed; TRUE otherwise.

Remarks

FsRtlOplockIsFastIoPossible determines whether fast I/O can be performed on a file, according to the following conditions:

  • If the Oplock parameter is NULL, or if the value of *Oplock is NULL, there are no outstanding opportunistic locks on the file, and fast I/O can be performed on the file.
  • If an exclusive opportunistic lock was granted for the file, but no oplock break is in progress, fast I/O can be performed on the file.
For detailed information about opportunistic locks, see the Microsoft Windows SDK documentation.

Minifilters should call FltOplockIsFastIoPossible instead of FsRtlOplockIsFastIoPossible.

Requirements

   
Target Platform Universal
Header ntifs.h (include Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

See also

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FltOplockIsFastIoPossible

FsRtlCheckOplock

FsRtlCurrentBatchOplock

FsRtlInitializeOplock

FsRtlOplockFsctrl

FsRtlUninitializeOplock