2.2.3.3.12 Server Drive Lock Control Request (DR_DRIVE_LOCK_REQ)
The server issues a request to lock or unlock portions of a file.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DeviceIoRequest (24 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Operation |
|||||||||||||||||||||||||||||||
F |
Padding |
||||||||||||||||||||||||||||||
NumLocks |
|||||||||||||||||||||||||||||||
Padding2 (20 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Locks (variable) |
|||||||||||||||||||||||||||||||
... |
DeviceIoRequest (24 bytes): A DR_DEVICE_IOREQUEST (section 2.2.1.4) header. The MajorFunction field in the DR_DEVICE_IOREQUEST header MUST be set to IRP_MJ_LOCK_CONTROL.
Operation (4 bytes): A 32-bit unsigned integer that specifies the type of the locking operation. It MUST have one of the following values:
-
Value
Meaning
RDP_LOWIO_OP_SHAREDLOCK
0x00000002
The server is requesting a shared lock.
RDP_LOWIO_OP_EXCLUSIVELOCK
0x00000003
The server is requesting an exclusive lock.
RDP_LOWIO_OP_UNLOCK
0x00000004
The server is requesting to unlock a portion of the file.
RDP_LOWIO_OP_UNLOCK_MULTIPLE
0x00000005
The server is requesting to unlock multiple portions of the file.
-
If this field has any other value, the request MUST be failed immediately.
F (1 bit): If this bit is set, the client MUST wait for the locking operation to complete. If this bit is not set and the region cannot be locked, the request SHOULD fail.
Padding (31 bits): 31 bits of padding. This field is unused and MUST be ignored.
NumLocks (4 bytes): A 32-bit unsigned integer that specifies the number of RDP_LOCK_INFO structures in the Locks array.
Padding2 (20 bytes): An array of 20 bytes. Reserved. This field can be set to any value and MUST be ignored.
Locks (variable): A variable-length array of RDP_LOCK_INFO structures. This field specifies one or more regions of the file to lock or unlock.