[pso] BSOD MmGetSystemAddressForMdlSafe

Matei Gruber matei.gruber at gmail.com
Sun May 10 13:02:24 EEST 2009


Salut,

Creez un device de tip FILE_DEVICE_DISK si folosesc DO_DIRECT_IO. In
rutinele de read si write copiez date in/din buffer mapat cu
MmGetSystemAddressForMdlSafe(irp->MdlAddress, NormalPagePriority).

Rulez suita de test, trec toate testele. Rulez din nou, primesc BSOD.

Nu imi este f. clar mecanismul de folosire al MmGetSystemAddressForMdlSafe.
Multumesc,
Matei


kd> !analyze -v
*******************************************************************************
*
  *
*                        Bugcheck Analysis
 *
*
  *
*******************************************************************************

LOCKED_PAGES_TRACKER_CORRUPTION (d9)
Arguments:
Arg1: 00000001, The MDL is being inserted twice on the same process list.
Arg2: 812d8df0, Address of internal lock tracking structure.
Arg3: 81638688, Address of memory descriptor list.
Arg4: 00000001, Number of pages locked for the current process.

Debugging Details:
------------------

*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: kernel32!pNlsUserInfo                         ***
***                                                                   ***
*************************************************************************
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: kernel32!pNlsUserInfo                         ***
***                                                                   ***
*************************************************************************

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xD9

PROCESS_NAME:  test.exe

CURRENT_IRQL:  2

LAST_CONTROL_TRANSFER:  from 808374a3 to 80826659

STACK_TEXT:
f91e0b60 808374a3 000000d9 00000001 812d8df0 nt!KeBugCheckEx+0x1b
f91e0b94 8083cf10 8139d6b0 808e98e3 80882fa8 nt!MiAddMdlTracker+0xd9
f91e0cb0 808e98e3 81638688 00000001 00000001 nt!MmProbeAndLockPages+0x104c
f91e0d38 80882fa8 000007d4 00000000 00000000 nt!NtReadFile+0x56d
f91e0d38 7c82ed54 000007d4 00000000 00000000 nt!KiFastCallEntry+0xf8
0012fecc 7c821b84 77e41942 000007d4 00000000 ntdll!KiFastSystemCallRet
0012fed0 77e41942 000007d4 00000000 00000000 ntdll!NtReadFile+0xc
0012ff38 00401e8f 000007d4 00415ab0 00000200 kernel32!ReadFile+0x16c
WARNING: Stack unwind information not available. Following frames may be
wrong.
0012ff70 0040107a 0012ffc0 00404865 00000001 test+0x1e8f
0012ff78 00404865 00000001 003137d0 003137e8 test+0x107a
0012ffc0 77e523cd 00000000 00000000 7ffdf000 test+0x4865
0012fff0 00000000 004048bc 00000000 78746341 kernel32!BaseProcessStart+0x23


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!MiAddMdlTracker+d9
808374a3 cc              int     3

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  nt!MiAddMdlTracker+d9

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

DEBUG_FLR_IMAGE_TIMESTAMP:  42435b14

IMAGE_NAME:  memory_corruption

FAILURE_BUCKET_ID:  0xD9_nt!MiAddMdlTracker+d9

BUCKET_ID:  0xD9_nt!MiAddMdlTracker+d9

Followup: MachineOwner
---------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20090510/db5bd87d/attachment.htm>


More information about the pso mailing list