2.2.23.1 Oplock Break Notification

The SMB2 Oplock Break Notification packet is sent by the server when the underlying object store indicates that an opportunistic lock (oplock)  is being broken, representing a change in the oplock level. This message is composed of an SMB2 header, as specified in section 2.2.1, followed by this notification structure:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

StructureSize

OplockLevel

Reserved

Reserved2

FileId

...

...

...

StructureSize (2 bytes): The server MUST set this to 24, indicating the size of the response structure, not including the header.

OplockLevel (1 byte): The server sets this to the maximum value of the OplockLevel that the server will accept for an acknowledgment from the client. This field MUST contain one of the following values.

Value

Meaning

SMB2_OPLOCK_LEVEL_NONE

0x00

No oplock is available.

SMB2_OPLOCK_LEVEL_II

0x01

A level II oplock is available.

SMB2_OPLOCK_LEVEL_EXCLUSIVE

0x08

Exclusive oplock is available.

Reserved (1 byte): This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt.

Reserved2 (4 bytes): This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt.

FileId (16 bytes): An SMB2_FILEID, as specified in section 2.2.14.1.

The identifier of the file or pipe on which the oplock break occurred.