HalAssignSlotResources on vista

I have recently been contracted-out to a sister company in the same group and I have ‘acquired’ the responsibility for a non-PnP driver that the siste company would like to use on Vista.

With HalAssignSlotResources() [HASR] in use, the driver loads correcly under XP Pro SP2 and I can communicate correctly with the on-card firmware.
When I run the same driver on Vista the HASR call always returns STATUS_RETRY which causes the driver to fail to initialise properly. I have searched several sites and even googled for information but have not found any information that remotely relates to the problem I am seeing.

I have tried to convert the driver to use IoReportResourceUsage() [IRRU] as documentation says that HASR is obselete, but although this allows me to get the driver to load, the interrupt vector generated using HalGetInterruptVector() with values from HASR appears to be different from the one generated using HalGetInterruptVector() [HGIV] with values returned from PCI config space. As a result I am prevented from communicating with the firmware on the PCI card.

Using HASR the values I pass to HIGV for Level and Vector are different to those I get from the PCI config space. I can only assume that the HASR is doing something to generate working values whereas IRRU does nothing with the numbers and so generates a non-functioning interrupt.

Does anyone have any idea as to why HASR returns STATUS_RETRY (0xC000022d) on Vista, or why the HGIV() generate different values?