Hi all,
Is HalGetBusDataByOffset() function is still working in WinXP SP2?
Anyone has experience with this? OK, this sounds like newbies question.
But, I have many reason to do it.
-
I need to probe the PCI configuration space contents while I’m not “a
device driver for certain hardware”. Therefore, it’s impossible to use PDO.
-
The application I’m making is a BIOS flashing utility, whereas we
need to read and set some registers to enable BIOS address decoding near
the 4-GB limit in the chipset.
-
I don’t know of other kernel mode driver API to do such a thing. I’ve
been reading and searching in the MSDN, WDK, google, etc. And all I can
see is people using HalGetBusDataByOffset and HalSetBusDataByOffset.
If there is a better/safer method for this, I really really would like
to know :-).
Regards,
Darmawan Salihun
It might work and then again it might not. The operational state of
HalGet/SetBusDataByOffset depends on the platform and device. It is not
impossible to use the PDO: write a PCI bus filter driver and use the
supported mechanisms for the PDO of interest. It just might be overkill
for what you need to do.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Darmawan Salihun
Sent: Thursday, August 09, 2007 5:13 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] HalGet/SetBusDataByOffset in WinXP SP2
Hi all,
Is HalGetBusDataByOffset() function is still working in WinXP SP2?
Anyone has experience with this? OK, this sounds like newbies question.
But, I have many reason to do it.
-
I need to probe the PCI configuration space contents while I’m not “a
device driver for certain hardware”. Therefore, it’s impossible to use
PDO.
-
The application I’m making is a BIOS flashing utility, whereas we
need to read and set some registers to enable BIOS address decoding near
the 4-GB limit in the chipset.
-
I don’t know of other kernel mode driver API to do such a thing. I’ve
been reading and searching in the MSDN, WDK, google, etc. And all I can
see is people using HalGetBusDataByOffset and HalSetBusDataByOffset.
If there is a better/safer method for this, I really really would like
to know :-).
Regards,
Darmawan Salihun
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
I don’t think you can do it with any system-provided functions - after all, Windows drivers are just not supposed to do anything like that, are they??? Therefore, apparently you have to bypass HAL layer and deal directly with configuration space, access IO ports that you don’t own, and, in all respects, do everything that you are not supposed to do under Windows, so that your code has to be motherboard-specific (I don’t already even mention how dangerous the whole thing is - it is so plainly obvious that it does not need even worth discussing…)
Anton Bassov