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