Hello, everyone. I'm new to developing device driver, but I got into trouble shortly after I started.
I'm making Intel High Definition Audio Controller driver, and I checked in the specification
that the access on the memory mapped register would be necessary.
I found their addresses using devmgmt.msc and RW - Read & Write Utility,
they're started at 0xF7FF8000.
When I wrote DriverEntry, I directly accessed that base address(e.g. (unsigned char*)0xf7ff8000)
and used index and offset to access specific register, but when I started driver, BSOD occured
at the point I read a value from one of them register(It was CorbSize register on offset 0x4e)
BSOD stop code was 0x00000050, "PAGE_FAULT_IN_NONPAGED_AREA".
kd showed me that f7ff8000 is freed(or corrupted) pool and
there's Bad allocation size @f7ff8000, too large
Are those error codes mean that address 0xF7FF8000 is unavailable data space?
But I checked the contents on 0xF7FF8000 using RW - Read & Write Utility,
and there were constantly changing values on that space,
even though db 0xf7ff8000 command on kd
show me only ??-filled memory space... I really wonder what the problem is,
and what the right way to access their memory mapped registers is.
Sorry for my bad english skill
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Writing WDF Drivers||21 Oct 2019||OSR Seminar Space & ONLINE|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|
|Kernel Debugging||30 Mar 2020||OSR Seminar Space|
|Developing Minifilters||27 Apr 2020||OSR Seminar Space & ONLINE|