Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


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/


I2CTestTool returns NULL, is RHPROXY a dummy on NT core based Windows 10 Pro, Home, Enterprise OS

vlsireddyvlsireddy Member Posts: 12

Hi [email protected],

Based on these links: -
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/4a25ff63-b421-4a23-856f-acbfcfd93f83/support-for-resource-hub-proxy-rhproxy-driver-in-ltsb-branch?forum=WindowsIoT

Official Statement from MSFT Employee: -
[1] The Resource Hub Proxy driver service is a kernel mode driver. It exists in windows 10 only(Home,Pro, Education, or Enterprise),but it does not exist before 1709 version

[2] I ensured C->windows->System32->drivers->rhproxy.sys is indeed present in Enterprise and Pro editions of 2019H1, so i understand that RHPROXY support is there on these machines.

[3] i followed this link [https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/enable-usermode-access] for right ASL node details and now i have a valid Valid ACPI Table
I ensured that there is no Yellow bang on the resource hub proxy and Device Status on Resource Hub Proxy device "This device is working properly."

[4]
Result of devcon.exe status *MSFT8000:-
ACPI\MSFT8000\1
Name: Resource Hub proxy device
Driver is running.
1 matching device(s) found.

[5] however, I2CTestTool.exe returns "There are no I2C controllers on this system" statement. However my Desktop PC [running NT core based windows Pro 10 OS] has Serial IO controller drivers from Intel.

[6] I am confused as to how to interpret "step 5". does that RHPROXY is dummy/useless. Do i need to write UMDF on top of RHPROXY to access

[7] According to your OSR article, when you refer to "Resource Hub", i assume you are talking about RHPROXY ?

[8] After reading through some articles, I2CTestTool.exe works only on IOT Core based Kernels. so does that mean, i can forgo I2CTestTool.exe results and move on with step 7 OSR article and start writing UMDF based application?

Thanks

Comments

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 7,807

    No. If you’re using RHPROXY you don’t have to write your own driver. It IS your driver.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

  • vlsireddyvlsireddy Member Posts: 12
    edited May 16

    Hi Peter,
    Thanks for answer.
    [1] how to move further on this. what is the next step for me [is the I2CTestTool.exe is returning back NULL expected]?
    [2] Meanwhile, Tim Roberts say the RHPROXY on Home, Pro versions are dummy and inoperative. You are saying rhproxy is my driver and can do the job. please clairfy?
    [3] Inspite of step[1], i can go ahead and write an application based on RHPROXY?
    [4] Can you please point next steps on how to proceed on this. My Initial intention was to use I2CTestTool based code to write a DLL to access I2C. Now that it is returning NULL. I am at cross roads. plz guide.
    [5] Can you please point to some application using RHPROXY to access I2C.

    Thanks

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,403

    how to move further on this.

    On what? You have never really said what your final goal is, just like so many people who ask questions here. I2CTestTool is just a tool, it's not an end goal. I2CTestTool is built for Windows IoT. It's not going to run on the desktop systems. End of story.

    i can go ahead and write an application based on RHPROXY?

    If you're running on Windows IoT, then sure you can. If not, then there wouldn't be much point, because it's not going to work.

    Can you please point to some application using RHPROXY to access I2C.

    I don't understand why you've become obsessed with RHPROXY. If you want to access I2C resources on a Windows desktop system, then you need to be asking, "how can I access I2C resources on a Windows desktop system?" The answer to that question does not involve RHPROXY or I2CTestTool.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • vlsireddyvlsireddy Member Posts: 12
    edited May 17

    Hi Peter, Tim
    ok understood

    Goal: - To write an User space application on top of desktop windows [NT Core based Windows Home, Pro] to access I2C slave.

    Thanks for finalizing this statement "The answer to that question does not involve RHPROXY or I2CTestTool".

    i use your better statement "how can I access I2C resources on a Windows desktop system?"

    which of the below is right example to start with?
    [1] https://docs.microsoft.com/en-us/samples/microsoft/windows-driver-samples/skeleton-i2c-sample-driver/
    ?
    [2] https://github.com/microsoft/Windows-driver-samples/tree/master/sensors/ADXL345Acc

    If OSR has better way/example to do it, please point to it.

    Thanks

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,403

    If you can get your device to fit into the sensor driver model, that's not too hard. Do you know how to access your I2C device, from a physical standpoint? Do you do so through ACPI method calls?

    If you need to pound registers, then I think you need an I2C driver.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 7,807

    This is one of those rare times when I must disagree with Mr. Roberts.

    I think you’re in the right track using RHPROXY. It’ll give you easy access to your I2C device without having to write your own driver. It’s the WinUSB of I2C.

    As to why the I2CTestTool does work for you... I have no idea. You need to put some effort into debugging the problem. Either write yourself a little test program or walk through i2cTestTool with the debugger. Find out exactly what’s failing. Figure out why.

    This is a problem that is more amenable to being solved by you spending time at the computer debugging, and less amenable to us trying to use a crystal ball to guess at what might be going wrong in your system.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

  • vlsireddyvlsireddy Member Posts: 12

    Hi Peter,
    Thanks for your expert reply. It gave much needed confidence. I will be working on finding "why I2CTestTool fails".

    Regards

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 7,807

    The primary problem we're having, Mr. "vlsireddy" is that none of I has actually done what you're trying to do. I've used RHPROXY on IoT... but it is new to "regular" Windows. And, given that you have to fool with your ACPI BIOS to use it, those of us who do this stuff for a living don't ordinarily have the time to wire-up an I2C device, make the ACPI changes, fire-up a system, and see what we get... just for the fun of it.

    I am very interested to hear where your explorations go. Because, if you can use RHPROXY on "ordinary" (that is, non-IoT) Windows systems that'll be a step in the right direction. Of course, we still have the problem of having to change the BIOS... but that's workable in many cases.

    So... that's why you're not getting clear, step-by-step guidance from folks here. Your trying to do something that we have never done, and that has only recently been allowed on Windows.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

  • vlsireddyvlsireddy Member Posts: 12

    Hi Peter,
    I was able to get through this hurdle and have the I2CTestTool working on windows 10 Pro [Non-IOT Core].
    Not much changes are required from what is put in the
    https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/enable-usermode-access

    however, Microsoft needs to update their docs a lot on I2Cdevice API's.

    Thanks

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 7,807

    Thanks for posting back.

    Can you tell us what you had to do to get this working... and what doc changes are needed?

    So whoever in the community that comes after you can benefit from your experience.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 15 Jun 2020 LIVE ONLINE
Writing WDF Drivers 22 June 2020 LIVE ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA