On 3/5/21 6:03 PM, Alexandre Julliard wrote:
Rémi Bernon rbernon@codeweavers.com writes:
@@ -237,6 +238,34 @@ static NTSTATUS copy_packet_into_buffer(HID_XFER_PACKET *packet, BYTE* buffer, U return STATUS_BUFFER_OVERFLOW; }
+static void HID_Device_sendRawInput(DEVICE_OBJECT *device, HID_XFER_PACKET *packet) +{
- BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
- UCHAR report_id;
- SERVER_START_REQ(send_hardware_message)
- {
req->win = 0;
req->flags = 0;
req->input.type = HW_INPUT_HID;
req->input.hid.usage_page = ext->preparseData->caps.UsagePage;
req->input.hid.usage = ext->preparseData->caps.Usage;
req->input.hid.length = 0;
if (!(report_id = ext->preparseData->reports[0].reportID))
{
wine_server_add_data(req, &report_id, sizeof(report_id));
req->input.hid.length++;
}
wine_server_add_data(req, packet->reportBuffer, packet->reportBufferLen);
req->input.hid.length += packet->reportBufferLen;
wine_server_call(req);
- }
- SERVER_END_REQ;
+}
It would be better to find a way to do this using exported APIs. I don't think we want to have even more modules make direct server calls (the goal is for all server calls to be done on the Unix side of the syscall interface).
Alright, does it include __wine_send_input?