2.2.1.5 Device I/O Response (DR_DEVICE_IOCOMPLETION)

A message with this header indicates that the I/O request is complete. In a Device I/O Response message, a request message is matched to the Device I/O Request (section 2.2.1.4) header based on the CompletionId field value. There is only one response per request.


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

Header

DeviceId

CompletionId

IoStatus

Header (4 bytes): An RDPDR_HEADER header. The Component field MUST be set to RDPDR_CTYP_CORE, and the PacketId field MUST be set to PAKID_CORE_DEVICE_IOCOMPLETION.

DeviceId (4 bytes):  A 32-bit unsigned integer. This field MUST match the DeviceId field in the DR_DEVICE_IOREQUEST header for the corresponding request.

CompletionId (4 bytes):  A 32-bit unsigned integer. This field MUST match the CompletionId field in the DR_DEVICE_IOREQUEST header for the corresponding request. After processing a response packet with this ID, the same ID MUST be reused in another request.

IoStatus (4 bytes): A 32-bit unsigned integer that specifies the NTSTATUS code that indicates success or failure for the request. NTSTATUS codes are specified in [MS-ERREF] section 2.3.