HalTranslateBusAddress on Server 2003

Dear Folks,

I have source for a driver that uses HalTranslateBusAddress. I know
this function is obsolete; however, for certification reasons, I
cannot change the code. It is failing on Windows Server 2003. Does
anyone know if this obsolete function has changed on Server 2003?
It works on everything from Windows 2000 to Windows XP SP2.

Thanks

DCULLEN:

I have seen references to it not working on x64 platforms. This is not
really my thing (actual hardware, that is), but I believe I that
IRP_MN_QUERY_INTERFACE can do at least some of what you might be looking
for. There is an article at least somewhat related to this on
www.hollistech.com; I can’t say that I’ve read it, but I remember Don
Burn referring to it. Either he or Mark Roddy (who, I believe, wrote
it) would be a much better source of information than I, but it is a
place to start.

mm

>> xxxxx@intergate.com 2006-10-09 18:20 >>>
Dear Folks,

I have source for a driver that uses HalTranslateBusAddress. I know
this function is obsolete; however, for certification reasons, I
cannot change the code. It is failing on Windows Server 2003. Does
anyone know if this obsolete function has changed on Server 2003?
It works on everything from Windows 2000 to Windows XP SP2.

Thanks


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

If he can’t change the code what is the point of the question? The Hal
functions in question continue to be available, although as has been
pointed out here many times, there is no guarantee that they will work
correctly on all platforms or all OS releases. My guess is that this is
not a W2K3 issue, that it is more likely a platform issue combined with
an OS release issue. XP SP2 and W2K3 SP1 are essentially the same OS.
Does this fail on the same hardware platform running XPSP2 and W2K3SP1?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Martin O’Brien
Sent: Tuesday, October 10, 2006 7:50 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] HalTranslateBusAddress on Server 2003

DCULLEN:

I have seen references to it not working on x64 platforms. This is not
really my thing (actual hardware, that is), but I believe I that
IRP_MN_QUERY_INTERFACE can do at least some of what you might be looking
for. There is an article at least somewhat related to this on
www.hollistech.com; I can’t say that I’ve read it, but I remember Don
Burn referring to it. Either he or Mark Roddy (who, I believe, wrote
it) would be a much better source of information than I, but it is a
place to start.

mm

>> xxxxx@intergate.com 2006-10-09 18:20 >>>
Dear Folks,

I have source for a driver that uses HalTranslateBusAddress. I know
this function is obsolete; however, for certification reasons, I
cannot change the code. It is failing on Windows Server 2003. Does
anyone know if this obsolete function has changed on Server 2003?
It works on everything from Windows 2000 to Windows XP SP2.

Thanks


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Dear Mark,

Roddy, Mark wrote:

If he can’t change the code what is the point of the question? The Hal
functions in question continue to be available, although as has been
pointed out here many times, there is no guarantee that they will work
correctly on all platforms or all OS releases. My guess is that this is
not a W2K3 issue, that it is more likely a platform issue combined with
an OS release issue. XP SP2 and W2K3 SP1 are essentially the same OS.
Does this fail on the same hardware platform running XPSP2 and W2K3SP1?

The driver works on XPSP2 but not W2K3GOLD. I have not tested the
driver on W2K3SP1 but I can if you need the information.

Even though I cannot change the code, it would be nice to say to the
management stack, “The problem is definitely with the OS. If you
want the driver to work on that OS, it will have to be modified.” I
have a co-worker who insists that W2K3 and XPSP2 use the same
subsystem, but this situation appears to disprove that.

Thanks

As far as I know W2k3SP1 and XPSP2 are the same os source code base, not
W2K3 and XPSP2.

It is still not entirely clear to me that you have tested the same
hardware platform with XPSP2 and W2K3SP1 and had XPSP2 pass while
W2K3SP1 fails, but I think the answer is no. You should run that test.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Cullen
Sent: Thursday, October 12, 2006 10:31 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HalTranslateBusAddress on Server 2003

Dear Mark,

Roddy, Mark wrote:

If he can’t change the code what is the point of the question? The Hal
functions in question continue to be available, although as has been
pointed out here many times, there is no guarantee that they will work
correctly on all platforms or all OS releases. My guess is that this
is
not a W2K3 issue, that it is more likely a platform issue combined
with
an OS release issue. XP SP2 and W2K3 SP1 are essentially the same OS.
Does this fail on the same hardware platform running XPSP2 and
W2K3SP1?

The driver works on XPSP2 but not W2K3GOLD. I have not tested the
driver on W2K3SP1 but I can if you need the information.

Even though I cannot change the code, it would be nice to say to the
management stack, “The problem is definitely with the OS. If you
want the driver to work on that OS, it will have to be modified.” I
have a co-worker who insists that W2K3 and XPSP2 use the same
subsystem, but this situation appears to disprove that.

Thanks


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Hmmmm… I don’t believe this is correct. XP SP2 predates S03 SP1, IIRC, and does not include many of the changes that are in S03 SP1 (which were considerable). The only XP release that’s “in sync” with S03 SP1 is XP x64 Edition.

We don’t see all the S03 SP1 changes in a client release until Vista, and then we get S03 SP1 + “a lot more”

I’m sorry, but I can’t remember if S03 Gold and XP SP2 are the same OS source code base or not. It all seems “so long ago.” I should really write put these facts in an article on OSR Online so I can find them again later :slight_smile:

Peter
OSR

Dear Mark,

Roddy, Mark wrote:

As far as I know W2k3SP1 and XPSP2 are the same os source code base, not
W2K3 and XPSP2.

It is still not entirely clear to me that you have tested the same
hardware platform with XPSP2 and W2K3SP1 and had XPSP2 pass while
W2K3SP1 fails, but I think the answer is no. You should run that test.

I tested the driver on the same hardware with XPSP2 and W2K3GOLD
(Not SP1). XPSP2 passed and W2K3GOLD fails. W2K3SP1 has_not been
tested yet, but if you need that data point to answer my original
question, I can easily get it.

Thanks

It would be helpful to know WHICH HAL you’re asking about.

Can you tell us which specific HAL you ahve installed on each OS?

P

Dear Peter,

xxxxx@osr.com wrote:

It would be helpful to know WHICH HAL you’re asking about.

Can you tell us which specific HAL you ahve installed on each OS?

This is the line from setup.log from the Windows Server 2003 Gold
installation:

\WINDOWS\system32\hal.dll = “halaacpi.dll”,“20143”

This is the line from setup.log from the Windows XP SP2 installation:

\WINDOWS\system32\hal.dll = “halaacpi.dll”,“2cfd1”

For those lurking this thread:

I conducted extensive experiments. Even though the changes can’t be
merged, I wanted to see what the real problem was. For my purposes,
it appears that the call to HalTranslateBusAddress is unnecessary.
On Windows XP SP2 it merely returns the address I pass it. If I
omit the call on both systems, the driver still works. However, you
cannot assume that this will be true for your situation. After
that, I had a problem with MmMapIoSpace. The solution to the
problem required major modifications to the driver. But now I
understand that if someone tells me version X of Windows is based on
the same code base as version Y that I should ignore them and do my
own testing. It’s too bad that every Windows developer has to
relearn knowledge that someone else already has.

At least now I know what to report back to the management stack.

Thanks

So just to beat a dead horse into the ground here, in your extensive testing
did you happen to test your driver against W2K3 SP1?

=====================
Mark Roddy DDK MVP
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Cullen
Sent: Friday, October 13, 2006 2:41 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HalTranslateBusAddress on Server 2003

Dear Peter,

xxxxx@osr.com wrote:
> It would be helpful to know WHICH HAL you’re asking about.
>
> Can you tell us which specific HAL you ahve installed on each OS?

This is the line from setup.log from the Windows Server 2003 Gold
installation:

\WINDOWS\system32\hal.dll = “halaacpi.dll”,“20143”

This is the line from setup.log from the Windows XP SP2 installation:

\WINDOWS\system32\hal.dll = “halaacpi.dll”,“2cfd1”

For those lurking this thread:

I conducted extensive experiments. Even though the changes
can’t be merged, I wanted to see what the real problem was.
For my purposes, it appears that the call to
HalTranslateBusAddress is unnecessary.
On Windows XP SP2 it merely returns the address I pass it.
If I omit the call on both systems, the driver still works.
However, you cannot assume that this will be true for your
situation. After that, I had a problem with MmMapIoSpace.
The solution to the problem required major modifications to
the driver. But now I understand that if someone tells me
version X of Windows is based on the same code base as
version Y that I should ignore them and do my own testing.
It’s too bad that every Windows developer has to relearn
knowledge that someone else already has.

At least now I know what to report back to the management stack.

Thanks


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

Dear Mr. Roddy,

Mark Roddy wrote:

So just to beat a dead horse into the ground here, in your extensive testing
did you happen to test your driver against W2K3 SP1?

Yes. Works great. Thanks for asking. I guess it’s a moot point
now, though. Augh.

So, S03 SP1 works great, but S03 Gold RTM doesn’t? Hmmmm…

Well, that at least matches what I could discover: I don’t see any difference at all in this function’s implementation between XP Gold and S03 SP1. I can’t conveniently check S03 Gold RTM. If you want the real answer, as part of your extenstive testing, I recommend that you walk into these functions… shouldn’t take you more than a minute or two and you’d have a truly definitive answer.

On the related point of which OS releases are which and are released when, I can offer the following release dates for your reference:

2001: XP Gold
2002: XP SP1
2003: S03 Gold
2004: XP SP2
2005: S03 SP1 and XP x64 (same OS code base)

Peter
OSR

So about the approximate equivalence of XPSP2 and W2K3SP1 …

=====================
Mark Roddy DDK MVP
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Cullen
Sent: Friday, October 13, 2006 11:18 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HalTranslateBusAddress on Server 2003

Dear Mr. Roddy,

Mark Roddy wrote:
> So just to beat a dead horse into the ground here, in your
extensive
> testing did you happen to test your driver against W2K3 SP1?

Yes. Works great. Thanks for asking. I guess it’s a moot
point now, though. Augh.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

Dear Peter,

xxxxx@osr.com wrote:

So, S03 SP1 works great, but S03 Gold RTM doesn’t? Hmmmm…

Actually, without changes, neither works. With changes both work.

Well, that at least matches what I could discover: I don’t see any difference at all in this function’s implementation between XP Gold and S03 SP1. I can’t conveniently check S03 Gold RTM. If you want the real answer, as part of your extenstive testing, I recommend that you walk into these functions… shouldn’t take you more than a minute or two and you’d have a truly definitive answer.

I tried single-stepping the assembly as my first approach but Intel
assembly always looks like spaghetti to me, especially with all the
call indirection.

On the related point of which OS releases are which and are released when, I can offer the following release dates for your reference:

2001: XP Gold
2002: XP SP1
2003: S03 Gold
2004: XP SP2
2005: S03 SP1 and XP x64 (same OS code base)

Thanks for the extra data.