[PATCH v2 4/6] hidclass.sys: Send rawinput messages with HID report.
Rémi Bernon
rbernon at codeweavers.com
Fri Mar 5 11:05:31 CST 2021
On 3/5/21 6:03 PM, Alexandre Julliard wrote:
> Rémi Bernon <rbernon at 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?
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list