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:
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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.