Re: WinXP 64-bit Virtual DMA_ADAPTER

Tech-Archive recommends: Fix windows errors by optimizing your registry



unless you are enumerating devices with hardware resources, what devices that load on your bus will require dma?

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


<marliner@xxxxxxxxx> wrote in message news:1193241365.270312.296640@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi,

I have a virtual bus driver over a USB bus. In this driver, I want to
intercept the GUID_BUS_INTERFACE_STANDARD so that I get requests for
IoGetDmaAdapter().
The reason I want to do this is because in Windows XP 64-bit (unlike
32-bit) these requests fail (the PDMA_ADAPTER that is returned is
NULL).


I have been able to create my own DMA_ADAPTER by intercepting the
call
and returning a BUS_INTERFACE_STANDARD. I pass my own
BusGetDmaAdapter() which does get called. In my BusGetDmaAdapter(). I
basically return a DMA_ADAPTER structure that I have created,
including the attached DMA_OPERATIONS...


Basically, this scheme works perfectly fine...the overlaying
applications get data as they expect and everythign in 64 works just
like it does in 32 (from the app point of view).


But, there is major problem...When I run verifier I have severe
problems because Verifier's hooking mechanism does very bad things
because it thinks it is hooking on the Win XP 64-bit DMA_ADAPTER
structure which apparently has data in front of, and I think, in back
of the DMA_ADAPTER. (The Verifier hooing function wants to hook all
the components, not just the DMA_ADAPTER but also the associated
data.) Now, there is no way for me to know what the hooking mechanism
is doing unless I dissasemble the hooking code...and provide Verifier
with fake data there too.


So, my questions are:
1. Can somebody give me a document that tells me how I can properly
simulate WinXP 64-bit's DMA_ADAPTER data so that Verifier will find
what it expects?
2. Is there another way I can do this (create a fake DMA_ADAPTER)?


I have a very complicated driver that is composed of two drivers that
works perfectly in XP 32-bit because under XP 32-bit a proper
DMA_ADAPTER structure is returned with me doing anything special. I
want make these drivers work under XP 64-bit without having to
rewrite
them...and this idea of faking the DMA works...except that verifier
itself causes problems.


I need verifier to work because I need to pass DTM.


Thank you in advance for any help or ideas...


.



Relevant Pages

  • Re: WinXP 64-bit Virtual DMA_ADAPTER
    ... is doing unless I dissasemble the hooking code...and provide Verifier ... them...and this idea of faking the DMA works...except that verifier ... I have an audio driver for a USB device that is a WavePCI model driver ... top of a bus driver that sits on the USB bus. ...
    (microsoft.public.development.device.drivers)
  • Re: WinXP 64-bit Virtual DMA_ADAPTER
    ... is doing unless I dissasemble the hooking code...and provide Verifier ... them...and this idea of faking the DMA works...except that verifier ... I have an audio driver for a USB device that is a WavePCI model driver ... top of a bus driver that sits on the USB bus. ...
    (microsoft.public.development.device.drivers)
  • WinXP 64-bit Virtual DMA_ADAPTER
    ... I have a virtual bus driver over a USB bus. ... 32-bit) these requests fail (the PDMA_ADAPTER that is returned is ... there is major problem...When I run verifier I have severe ... there is no way for me to know what the hooking mechanism ...
    (microsoft.public.development.device.drivers)
  • WinXP 64-bit Virtual DMA_ADAPTER
    ... I have a virtual bus driver over a USB bus. ... 32-bit) these requests fail (the PDMA_ADAPTER that is returned is ... there is major problem...When I run verifier I have severe ... there is no way for me to know what the hooking mechanism ...
    (microsoft.public.windowsxp.device_driver.dev)
  • Re: WinXP 64-bit Virtual DMA_ADAPTER
    ... Why do you think your driver needs a DMA adapter? ... is doing unless I dissasemble the hooking code...and provide Verifier ... top of a bus driver that sits on the USB bus. ...
    (microsoft.public.development.device.drivers)