FSCTL_REQUEST_OPLOCK control code

The FSCTL_REQUEST_OPLOCK control code requests an opportunistic lock (oplock) on a file, or acknowledges that an oplock break has occurred.

For more information about opportunistic locks and about the FSCTL_REQUEST_OPLOCK control code, see the Microsoft Windows SDK documentation.

To process this control code, a file system or filter driver calls FsRtlOplockFsctrlEx with the following parameters.

Parameters

Oplock

An opaque oplock object pointer for the file.

Irp

A pointer to the IRP for an IRP_MJ_FILE_SYSTEM_CONTROL FSCTL request. The FsControlCode parameter for the operation must be FSCTL_REQUEST_OPLOCK.

OpenCount

The number of user handles for the file if the request is for an exclusive oplock. If the request is for an oplock that can be shared, OpenCount is zero if no byte-range locks exist on the file. Otherwise, OpenCount is nonzero. The caller can call the FsRtlOplockIsSharedRequest routine on the IRP to determine if the request is for an oplock that can be shared.

Flags

A bitmask for the associated oplock operations. A file system or filter driver sets bits to specify the behavior of FsRtlOplockFsctrlEx. The Flags parameter has the following options:

OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001)

Specifies that the file system has verified that all opportunistic lock keys match on any handle that is currently open. By specifying this flag, the oplock package can grant an oplock of level RW or RWH when more than one open handle to the file exists. For more information about oplock types, see Overview.

Return Value

FsRtlOplockFsctrlEx returns one of the following NTSTATUS values for this operation:

STATUS_PENDING

The oplock was granted. This is a success code.

STATUS_CANCELLED

The IRP was canceled before the FSCTL_REQUEST_OPLOCK operation was completed. This is an error code.

STATUS_OPLOCK_NOT_GRANTED

The oplock could not be granted. This is an error code.

Requirements

Header

Ntifs.h (include Ntifs.h or Fltkernel.h)

See also

FsRtlOplockFsctrlEx
FsRtlOplockIsSharedRequest
IRP_MJ_FILE_SYSTEM_CONTROL

 

 

Send comments about this topic to Microsoft

Show: