> Really… Hmmmmm… What version of the O/S are you using? Like, what
build number? If you’re not completely sure, please execute the command
“winver” from the command line, and the version information will
displayed be in the box that appears.
Ok… so here are the info about my O/S version:
Microsoft Windows XP
Version 5.1 (Build 2600.xpsp2.021108-1929 : Service Pack 1)
So I’m not sure but it looks quite up-to-date to me.
Also, check the couple of longwords or so just before and just after
your buffer in memory… tell me what you see there. While you’re
poking around in the debugger, tell me the name of the function that
DmaAdapter->DmaOperations->GetScatterGatherList is pointing to. These
two things will verify for me that (a) you ARE talking to DMA Verifier,
and (b)it IS intermediately buffering your data.
Ok, I looked at the bytes right before and after the auxiliary buffer in
memory, and the bytes are…
0x44, 0x6D, 0x61, 0x56, 0x72, 0x66, 0x66, 0x79, 0x30. In other words,
it’s written “DmaVrfy0”. And that is so for all the pages/segments
returned by the SG list (each segment of 4kB has “DmaVrfy0” written before
and after it).
Now, for the function pointed to by DmaAdapter->DmaOperations->
GetScatterGatherList, I’m not sure I got the right info. In SoftIce, I
could see that the function is pointing to an address (0x80631B6D), and
when I unassemble, it takes me to an assembler line located at
ntoskrnl!RtlCompressBuffer+839B. But I’m really not sure that’s the right
function.
I also tried with WinDbg, with the Windows symbols, but I couldn’t find
better.
So… have any idea how I could get that function name?
Thanks.
Stephane