Tim Roberts wrote:
Yes, duh. HalAssignSlotResources. I made the same mistake when I
Googled for it.I found nothing in writing saying that these Hal functions have actually
been removed. Yes, they’ve been deprecated since Windows 2000, but not
yet removed. HalGetBusDataByOffset still works just fine. And I’m
definitely getting C0000034, STATUS_OBJECT_NAME_NOT_FOUND.
OK, eventually, HalAssignSlotResources tries to iterate through our
resources, and gets to our interrupt. It calls
PciGetInterruptConnectionData, which calls IoGetDevicePropertyData,
which calls PnpOpenDevicePropertyKey, which calls
PnpOpenDevicePropertyNamespaceKey, which calls IopOpenRegistryKeyEx,
which calls ZwOpenKey.
ZwOpenKey is attempting to open a key with some GUID
(“{f0e20f09-d97a-49a9-8046-bb6e22e6bb2e}”) inside the root key
0x80000100. That’s what returns STATUS_OBJECT_NAME_NOT_FOUND and
causes us to fail. That root key is not defined in the set of known
global keys. I assume it’s some volatile internal key. Anybody know
what it refers to? Is this the device property space?
This looks to me like a Vista bug in the newly rewritten interrupt
code. It may be all I have to do is create an empty key in the device
property space, but that (of course) has never been required before.
The chip is a Bt878, so it’s not an exotic product; there are a lot of
these in the market.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.