Utility to view the list of system virtual memory blocks

Discussion in 'Windows Vista Drivers' started by Pierre-Alain Oberson, Nov 2, 2004.

  1. Hello,

    I search an utility that is able to display the list of system virtual
    memory blocks.

    I create a driver that must map a big memory block to non-paged system
    memory. Sometimes the function MmGetSystemAddressForMdlSafe returns a
    null pointer. I suspect that is no more area to map a big memory block
    (8 MBytes) into the virtual system memory.

    Thanks for your help

    Pierre-Alain Oberson, Nov 2, 2004
    1. Advertisements

  2. Pierre-Alain Oberson

    Mark Roddy Guest

    8MB is not so big, but yes this can happen and your driver must be able to deal
    with temporary resource shortages. MmGetSystemAddressForMdlSafe consumes system
    ptes, not non-paged pool, so you are likely running out of ptes. It is possible
    to pre-allocate ptes - see MmAllocateMappingAddress,
    MmMapLockedPagesWithReservedMapping, MmUnmapReservedMapping, and

    If you are processing series of fixed size buffers, you might consider such a
    pre-allocation strategy in order to not have to deal with resource allocation
    failures outside of your device initialization routine.

    Mark Roddy DDK MVP
    Windows 2003/XP/2000 Consulting
    Hollis Technology Solutions 603-321-1032
    Mark Roddy, Nov 4, 2004
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.