FsRtlOplockIsFastIoPossible macro (rxprocs.h)

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

Syntax

void FsRtlOplockIsFastIoPossible(
   __a
);

Parameters

__a

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

Return value

None

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

Requirement Value
Target Platform Universal
Header rxprocs.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