2.2.1.4.5 Device Control Request (DR_CONTROL_REQ)

This header initiates a device control 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)

...

...

OutputBufferLength

InputBufferLength

IoControlCode

Padding (20 bytes)

...

...

InputBuffer (variable)

...

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

OutputBufferLength (4 bytes):  A 32-bit unsigned integer that specifies the maximum number of bytes expected in the OutputBuffer field of the Device Control Response (section 2.2.1.5.5).

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

IoControlCode (4 bytes):  A 32-bit unsigned integer. This field is specific to the redirected device.

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

InputBuffer (variable):  A variable-size byte array whose size is specified by the InputBufferLength field.