The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
I need to use HID over I2C to communicate with a peripheral connected with SoC over I2C, this is the first time I am working with this protocol.
The FW present in the peripheral already supports HID over I2C protocol.
I went to the HID over I2c pages from MSDN and few examples. Based on my understanding so far, the HidD_GetHidGuid() and Setup* APIs provide the list of HID devices and device paths for each of them. HID also provides APIs to get or set an input/output/feature report using the handle open to a specific device.
Few queries for which I could not find more details on below:
In order to communicate with peripheral connected over I2C to SoC, the hardware resource configurations have to be provided in a namespace such as ACPI (I2C slave address, interrupt line, etc.). Under which ACPI device should I be defining these configurations if I plan to use HID over I2C user-mode application? I see the Microsoft inbox driver has _CID "PNP0C50", but not clear if there should be a separate ACPI device to be added that is needed for exchanging information with the peripheral.
Any other dependencies for using HID over I2C from user application that need to be taken care of?
Please share if there is any reference available related to HID over I2C for ACPI and other changes.