A UMDF-based driver calls IWDFRequest::GetInputMemory to retrieve a requester-allocated input buffer that contains an output report.
The driver retrieves the report ID associated with the top-level collection by calling IWDFRequest::GetDeviceIoControlParameters and providing the pOutBufferSize parameter, as shown in the following example.
UCHAR reportId; SIZE_T outBufferSize;
Input buffer length
Output buffer length
The size of the buffer that is retrieved by calling IWDFIoRequest::GetOutputMemory.
HID minidrivers that carry out the I/O to the device must also:
- Call IWDFRequest::SetInformation to set the number of bytes transferred to the device.
- Call IWDFRequest::Complete with S_OK to complete the request without error. Otherwise, set the appropriate HRESULT error code.