Hi,
I am new to windows driver development and I am currently working on porting an existing 32-bit driver to 64-bit driver.
There was no design changes in the code. Most changes are 64-bit support related only.
I am testing it with Vista and I am seeing this problem, after copying the translated physical address to my driver device extension, I called MmMapIoSpace and then the system hang.
This part of code works perfectly on 32-bits system. I could see exactly the same memory range allocated for 32-bit/64-bits systems. When I did !memusage, I saw a print message displaye cache too low.
Is MmMapIoSpace should be used differently in 64-bit systems?
Any idea, suggestions will be greatly appreciate…
Thanks,
GB
What is the output of !analyze -v (make sure your symbols are correct) when it hangs?
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Wednesday, March 16, 2011 4:43 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] MmMapIoSpace hang
Hi,
I am new to windows driver development and I am currently working on porting an existing 32-bit driver to 64-bit driver.
There was no design changes in the code. Most changes are 64-bit support related only.
I am testing it with Vista and I am seeing this problem, after copying the translated physical address to my driver device extension, I called MmMapIoSpace and then the system hang.
This part of code works perfectly on 32-bits system. I could see exactly the same memory range allocated for 32-bit/64-bits systems. When I did !memusage, I saw a print message displaye cache too low.
Is MmMapIoSpace should be used differently in 64-bit systems?
Any idea, suggestions will be greatly appreciate…
Thanks,
GB
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
xxxxx@gmail.com wrote:
I am new to windows driver development and I am currently working on porting an existing 32-bit driver to 64-bit driver.
There was no design changes in the code. Most changes are 64-bit support related only.
I am testing it with Vista and I am seeing this problem, after copying the translated physical address to my driver device extension, I called MmMapIoSpace and then the system hang.
How do you know it hangs exactly there? Have you single-stepped through
in the debugger? Have you bracketed the calls with debug prints? Why
don’t you post that section of code and we’ll have a look?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Tnx for the quick reply.
I was using Windbg and was single - stepping thru the code, the MmMapIoSpace did not return so I assumed it did hang in that part of code.
Btw, I could not break into the debugger anymore so I could not run !analyze.
Are you using the correct PHYSICAL_ADDRESS type, or ULONG by mistake?
Hi,
I am using the translated physical address from CM_PARTIAL_DESCRIPTOR and the variable is declared as PHYSICAL_ADDRESS.
As mentioned previously this part of code works perfectly when built for 32-bits system.
Thanks,
What PHYSICAL_ADDRESS are you passing to MmMapIoSpace (print all 64 bits)?