2.2.1.4.4 Device Write Request (DR_WRITE_REQ)

This header initiates a write request. This message can have different purposes depending on the device for which it is issued. The device type is determined by the DeviceId field in the DR_DEVICE_IOREQUEST header.


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

DeviceIoRequest (24 bytes)

...

...

Length

Offset

...

Padding (20 bytes)

...

...

WriteData (variable)

...

DeviceIoRequest (24 bytes):  A DR_DEVICE_IOREQUEST header. The MajorFunction field in this header MUST be set to IRP_MJ_WRITE.

Length (4 bytes):  A 32-bit unsigned integer that specifies the number of bytes in the WriteData field.

Offset (8 bytes):  A 64-bit unsigned integer. This field specifies the file offset at which the data MUST be written. If the client advertised a minor version of at least 0x000D in the Client Announce Reply (section 2.2.2.3), then a value of 0xFFFFFFFFFFFFFFFF indicates that the client MUST treat this write request as an append operation.<6>

Padding (20 bytes):  An array of 20 bytes. Reserved. This field can be set to any value and MUST be ignored.

WriteData (variable):  A variable-length array of bytes, where the length is specified by the Length field in this packet. This array contains data to be written on the target device.