Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


A query !!

OSR_Community_UserOSR_Community_User Member Posts: 110,217
Hi all,


1. Is it necessary to Use the MmProbeAndLockPages with the MDL which is
already used to Describe the NonPagedMemory.
If so why is that.
2. If i don't use that i see a blue screen saying that PFN_FILE_CORRUPT
Blue screen ....any clues on this..

(Basically it is a TDI client using the services of NT native TCP/IP
stack).

3. If i allocate a NonPagedMemory Initiallly and allocate a MDL to describe
that Buffer and use the MmProbeAndLockPages
to lock down the Memory and if i use the mmunlockPages once i am done
with the previous operation will the buffer be paged out by any chance.


thanks in advance,

KIRAN MANDAVA,
SkyStream Networks
"Building the Broadcast Internet"

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    I think you need to use MmBuildMdlForNonPagedPool() if you use NPP in your
    MDL.

    Jamey

    > -----Original Message-----
    > From: Kiran Mandava [mailto:[email protected]]
    > Sent: Monday, April 17, 2000 11:08 AM
    > To: NT Developers Interest List
    > Subject: [ntdev] A query !!
    >
    >
    > The Microsoft Exchange Server received an Internet message that could
    > not be processed. To view the original message content, open the
    > attached message. <
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    However it is an interesting question if MmProbeAndLockPages/MmUnlockPages
    cause a problem if the underlying buffer happens to be NPP. One hopes not,
    but I've heard several people swear that it does. How would a driver even
    know, other than through some a priori assumptions?

    > -----Original Message-----
    > From: Jamey Kirby [mailto:[email protected]]
    > Sent: Monday, April 17, 2000 2:22 PM
    > To: NT Developers Interest List
    > Subject: [ntdev] RE: A query !!
    >
    >
    > I think you need to use MmBuildMdlForNonPagedPool() if you
    > use NPP in your
    > MDL.
    >
    > Jamey
    >
    > > -----Original Message-----
    > > From: Kiran Mandava [mailto:[email protected]]
    > > Sent: Monday, April 17, 2000 11:08 AM
    > > To: NT Developers Interest List
    > > Subject: [ntdev] A query !!
    > >
    > >
    > > The Microsoft Exchange Server received an Internet message
    > that could
    > > not be processed. To view the original message content, open the
    > > attached message. <
    > >
    >
    >
    > ---
    > You are currently subscribed to ntdev as: [email protected]
    > To unsubscribe send a blank email to $subst('Email.Unsub')
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Yes.

    I simply follow the DDK rules that say to use MmBuildMdlForNonPagedPool().
    This way, I eliminate any possible problems. It would not occur to me to NOT
    do this.

    Isn't NT great :)

    Jamey

    > -----Original Message-----
    > From: [email protected]ts.osr.com
    > [mailto:[email protected]]On Behalf Of Roddy, Mark
    > Sent: Monday, April 17, 2000 11:42 AM
    > To: NT Developers Interest List
    > Subject: [ntdev] RE: A query !!
    >
    >
    >
    > However it is an interesting question if MmProbeAndLockPages/MmUnlockPages
    > cause a problem if the underlying buffer happens to be NPP. One hopes not,
    > but I've heard several people swear that it does. How would a driver even
    > know, other than through some a priori assumptions?
    >
    > > -----Original Message-----
    > > From: Jamey Kirby [mailto:[email protected]]
    > > Sent: Monday, April 17, 2000 2:22 PM
    > > To: NT Developers Interest List
    > > Subject: [ntdev] RE: A query !!
    > >
    > >
    > > I think you need to use MmBuildMdlForNonPagedPool() if you
    > > use NPP in your
    > > MDL.
    > >
    > > Jamey
    > >
    > > > -----Original Message-----
    > > > From: Kiran Mandava [mailto:[email protected]]
    > > > Sent: Monday, April 17, 2000 11:08 AM
    > > > To: NT Developers Interest List
    > > > Subject: [ntdev] A query !!
    > > >
    > > >
    > > > The Microsoft Exchange Server received an Internet message
    > > that could
    > > > not be processed. To view the original message content, open the
    > > > attached message. <
    > > >
    > >
    > >
    > > ---
    > > You are currently subscribed to ntdev as: [email protected]
    > > To unsubscribe send a blank email to $subst('Email.Unsub')
    > >
    >
    > ---
    > You are currently subscribed to ntdev as: [email protected]
    > To unsubscribe send a blank email to $subst('Email.Unsub')
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Yeah ok sure but suppose that you are a top level driver that routinely
    builds MDLS as you are a method neither sort of driver. Normally you are
    called via some user space activity so of course you use
    MmProbeAndLockPages. Then some other loser of a driver decides that it needs
    to use whatever service you provide. So now you have requests coming from
    kernel mode, and it is entirely possible that this other driver will
    allocate buffers from NPP to send to you for processing.


    > -----Original Message-----
    > From: Jamey Kirby [mailto:[email protected]]
    > Sent: Monday, April 17, 2000 2:56 PM
    > To: NT Developers Interest List
    > Subject: [ntdev] RE: A query !!
    >
    >
    > Yes.
    >
    > I simply follow the DDK rules that say to use
    > MmBuildMdlForNonPagedPool().
    > This way, I eliminate any possible problems. It would not
    > occur to me to NOT
    > do this.
    >
    > Isn't NT great :)
    >
    > Jamey
    >
    > > -----Original Message-----
    > > From: [email protected]
    > > [mailto:[email protected]]On Behalf Of Roddy, Mark
    > > Sent: Monday, April 17, 2000 11:42 AM
    > > To: NT Developers Interest List
    > > Subject: [ntdev] RE: A query !!
    > >
    > >
    > >
    > > However it is an interesting question if
    > MmProbeAndLockPages/MmUnlockPages
    > > cause a problem if the underlying buffer happens to be NPP.
    > One hopes not,
    > > but I've heard several people swear that it does. How would
    > a driver even
    > > know, other than through some a priori assumptions?
    > >
    > > > -----Original Message-----
    > > > From: Jamey Kirby [mailto:[email protected]]
    > > > Sent: Monday, April 17, 2000 2:22 PM
    > > > To: NT Developers Interest List
    > > > Subject: [ntdev] RE: A query !!
    > > >
    > > >
    > > > I think you need to use MmBuildMdlForNonPagedPool() if you
    > > > use NPP in your
    > > > MDL.
    > > >
    > > > Jamey
    > > >
    > > > > -----Original Message-----
    > > > > From: Kiran Mandava [mailto:[email protected]]
    > > > > Sent: Monday, April 17, 2000 11:08 AM
    > > > > To: NT Developers Interest List
    > > > > Subject: [ntdev] A query !!
    > > > >
    > > > >
    > > > > The Microsoft Exchange Server received an Internet message
    > > > that could
    > > > > not be processed. To view the original message content, open the
    > > > > attached message. <
    > > > >
    > > >
    > > >
    > > > ---
    > > > You are currently subscribed to ntdev as: [email protected]
    > > > To unsubscribe send a blank email to
    > $subst('Email.Unsub')
    > > >
    > >
    > > ---
    > > You are currently subscribed to ntdev as: [email protected]
    > > To unsubscribe send a blank email to $subst('Email.Unsub')
    > >
    >
    >
    > ---
    > You are currently subscribed to ntdev as: [email protected]
    > To unsubscribe send a blank email to $subst('Email.Unsub')
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Hi,

    some more info on the current scenario,

    The main scenario is i Create a MDL first time and reuse it all the time
    with the calls MmPrepareMdlForReuse + MmInitializeMdl.

    1. we have a driver which does only MmProbeAndLockPages (There is no
    compensating call mmunlockpages)and everything worked fine until we got into
    something like heavy usage of NonPagedPool (70M) + LockingDown some of the
    Paged Pool In the Memory(about 30 MB) so the final kernel memory usage was
    something like 140 MB...
    (everything works fine until the memory usage creeped upto 140 MB, in the
    normal cases it was Around 90 MB and evrything works fine.)

    but the problem at that point was something like i was observing a blue
    sreen after the whole system runs for a while (say 4 to 5 hours) the
    bugcheck being NO_MORE_SYSTEM_PTES (i don't know whether it is related or
    not but...)

    so once i fixed the stuff using the mmunlockpages it worked fine for two
    days and the page table entres were constant..
    but after it crashed with the error IRQL_NOT_LESS_OR_EQUAL...which i
    suspect is due to the mmunlockpages..

    2. I tried to Use the NT DDK specified MmbuildMDLforNonPagedPool and after a
    while (unpredcictable)the system blue screens with error
    PFN_FILE_CORRUPT



    could somebody help me on this.


    thanks,

    >-----Original Message-----
    >From: Roddy, Mark [mailto:[email protected]]
    >Sent: Monday, April 17, 2000 11:42 AM
    >To: NT Developers Interest List
    >Subject: [ntdev] RE: A query !!
    >
    >
    >
    >However it is an interesting question if
    >MmProbeAndLockPages/MmUnlockPages
    >cause a problem if the underlying buffer happens to be NPP.
    >One hopes not,
    >but I've heard several people swear that it does. How would a
    >driver even
    >know, other than through some a priori assumptions?
    >
    >> -----Original Message-----
    >> From: Jamey Kirby [mailto:[email protected]]
    >> Sent: Monday, April 17, 2000 2:22 PM
    >> To: NT Developers Interest List
    >> Subject: [ntdev] RE: A query !!
    >>
    >>
    >> I think you need to use MmBuildMdlForNonPagedPool() if you
    >> use NPP in your
    >> MDL.
    >>
    >> Jamey
    >>
    >> > -----Original Message-----
    >> > From: Kiran Mandava [mailto:[email protected]]
    >> > Sent: Monday, April 17, 2000 11:08 AM
    >> > To: NT Developers Interest List
    >> > Subject: [ntdev] A query !!
    >> >
    >> >
    >> > The Microsoft Exchange Server received an Internet message
    >> that could
    >> > not be processed. To view the original message content, open the
    >> > attached message. <
    >> >
    >>
    >>
    >> ---
    >> You are currently subscribed to ntdev as: [email protected]
    >> To unsubscribe send a blank email to $subst('Email.Unsub')
    >>
    >
    >---
    >You are currently subscribed to ntdev as: [email protected]
    >To unsubscribe send a blank email to $subst('Email.Unsub')
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Interesting. I experienced this in my driver. Here is what I was finding:

    If you lock the pages and call the FSD below you, the FSD will lock and
    unlock the pages. There is no lock count, so your lock is gone. So, you not
    unlocking the pages should be OK. If it is NPP, you should use
    MmBuildMdlForNonPagedPool.

    This means that your locked pages are no longer locked in your completion
    handler. Are you using a completion handler? Are you accessing the buffers
    in the completion handler?

    Sorry I can not be more specific; it would help to see your code.

    Jamey

    > -----Original Message-----
    > From: [email protected]
    > [mailto:[email protected]]On Behalf Of Kiran Mandava
    > Sent: Monday, April 17, 2000 12:17 PM
    > To: NT Developers Interest List
    > Subject: [ntdev] RE: A query !!
    >
    >
    > Hi,
    >
    > some more info on the current scenario,
    >
    > The main scenario is i Create a MDL first time and reuse it all the time
    > with the calls MmPrepareMdlForReuse + MmInitializeMdl.
    >
    > 1. we have a driver which does only MmProbeAndLockPages (There is no
    > compensating call mmunlockpages)and everything worked fine until
    > we got into
    > something like heavy usage of NonPagedPool (70M) + LockingDown some of the
    > Paged Pool In the Memory(about 30 MB) so the final kernel memory usage was
    > something like 140 MB...
    > (everything works fine until the memory usage creeped upto 140
    > MB, in the
    > normal cases it was Around 90 MB and evrything works fine.)
    >
    > but the problem at that point was something like i was observing a blue
    > sreen after the whole system runs for a while (say 4 to 5 hours) the
    > bugcheck being NO_MORE_SYSTEM_PTES (i don't know whether it is related or
    > not but...)
    >
    > so once i fixed the stuff using the mmunlockpages it worked fine for two
    > days and the page table entres were constant..
    > but after it crashed with the error IRQL_NOT_LESS_OR_EQUAL...which i
    > suspect is due to the mmunlockpages..
    >
    > 2. I tried to Use the NT DDK specified MmbuildMDLforNonPagedPool
    > and after a
    > while (unpredcictable)the system blue screens with error
    > PFN_FILE_CORRUPT
    >
    >
    >
    > could somebody help me on this.
    >
    >
    > thanks,
    >
    > >-----Original Message-----
    > >From: Roddy, Mark [mailto:[email protected]]
    > >Sent: Monday, April 17, 2000 11:42 AM
    > >To: NT Developers Interest List
    > >Subject: [ntdev] RE: A query !!
    > >
    > >
    > >
    > >However it is an interesting question if
    > >MmProbeAndLockPages/MmUnlockPages
    > >cause a problem if the underlying buffer happens to be NPP.
    > >One hopes not,
    > >but I've heard several people swear that it does. How would a
    > >driver even
    > >know, other than through some a priori assumptions?
    > >
    > >> -----Original Message-----
    > >> From: Jamey Kirby [mailto:[email protected]]
    > >> Sent: Monday, April 17, 2000 2:22 PM
    > >> To: NT Developers Interest List
    > >> Subject: [ntdev] RE: A query !!
    > >>
    > >>
    > >> I think you need to use MmBuildMdlForNonPagedPool() if you
    > >> use NPP in your
    > >> MDL.
    > >>
    > >> Jamey
    > >>
    > >> > -----Original Message-----
    > >> > From: Kiran Mandava [mailto:[email protected]]
    > >> > Sent: Monday, April 17, 2000 11:08 AM
    > >> > To: NT Developers Interest List
    > >> > Subject: [ntdev] A query !!
    > >> >
    > >> >
    > >> > The Microsoft Exchange Server received an Internet message
    > >> that could
    > >> > not be processed. To view the original message content, open the
    > >> > attached message. <
    > >> >
    > >>
    > >>
    > >> ---
    > >> You are currently subscribed to ntdev as: [email protected]
    > >> To unsubscribe send a blank email to $subst('Email.Unsub')
    > >>
    > >
    > >---
    > >You are currently subscribed to ntdev as: [email protected]
    > >To unsubscribe send a blank email to $subst('Email.Unsub')
    > >
    >
    > ---
    > You are currently subscribed to ntdev as: [email protected]
    > To unsubscribe send a blank email to $subst('Email.Unsub')
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Hi Jamey,

    But the Lower driver which my driver acessing is the TCP/IP Native Protocol
    stack.
    that means i shouldn't use the mmprobelockpages and instead use the
    MmBuildMdlForNonPagedPool


    kiran


    >-----Original Message-----
    >From: Jamey Kirby [mailto:[email protected]]
    >Sent: Monday, April 17, 2000 12:28 PM
    >To: NT Developers Interest List
    >Subject: [ntdev] RE: A query !!
    >
    >
    >Interesting. I experienced this in my driver. Here is what I
    >was finding:
    >
    >If you lock the pages and call the FSD below you, the FSD will lock and
    >unlock the pages. There is no lock count, so your lock is
    >gone. So, you not
    >unlocking the pages should be OK. If it is NPP, you should use
    >MmBuildMdlForNonPagedPool.
    >
    >This means that your locked pages are no longer locked in your
    >completion
    >handler. Are you using a completion handler? Are you accessing
    >the buffers
    >in the completion handler?
    >
    >Sorry I can not be more specific; it would help to see your code.
    >
    >Jamey
    >
    >> -----Original Message-----
    >> From: [email protected]
    >> [mailto:[email protected]]On Behalf Of Kiran Mandava
    >> Sent: Monday, April 17, 2000 12:17 PM
    >> To: NT Developers Interest List
    >> Subject: [ntdev] RE: A query !!
    >>
    >>
    >> Hi,
    >>
    >> some more info on the current scenario,
    >>
    >> The main scenario is i Create a MDL first time and reuse it
    >all the time
    >> with the calls MmPrepareMdlForReuse + MmInitializeMdl.
    >>
    >> 1. we have a driver which does only MmProbeAndLockPages (There is no
    >> compensating call mmunlockpages)and everything worked fine until
    >> we got into
    >> something like heavy usage of NonPagedPool (70M) +
    >LockingDown some of the
    >> Paged Pool In the Memory(about 30 MB) so the final kernel
    >memory usage was
    >> something like 140 MB...
    >> (everything works fine until the memory usage creeped upto 140
    >> MB, in the
    >> normal cases it was Around 90 MB and evrything works fine.)
    >>
    >> but the problem at that point was something like i was
    >observing a blue
    >> sreen after the whole system runs for a while (say 4 to 5 hours) the
    >> bugcheck being NO_MORE_SYSTEM_PTES (i don't know whether it
    >is related or
    >> not but...)
    >>
    >> so once i fixed the stuff using the mmunlockpages it worked
    >fine for two
    >> days and the page table entres were constant..
    >> but after it crashed with the error
    >IRQL_NOT_LESS_OR_EQUAL...which i
    >> suspect is due to the mmunlockpages..
    >>
    >> 2. I tried to Use the NT DDK specified MmbuildMDLforNonPagedPool
    >> and after a
    >> while (unpredcictable)the system blue screens with error
    >> PFN_FILE_CORRUPT
    >>
    >>
    >>
    >> could somebody help me on this.
    >>
    >>
    >> thanks,
    >>
    >> >-----Original Message-----
    >> >From: Roddy, Mark [mailto:[email protected]]
    >> >Sent: Monday, April 17, 2000 11:42 AM
    >> >To: NT Developers Interest List
    >> >Subject: [ntdev] RE: A query !!
    >> >
    >> >
    >> >
    >> >However it is an interesting question if
    >> >MmProbeAndLockPages/MmUnlockPages
    >> >cause a problem if the underlying buffer happens to be NPP.
    >> >One hopes not,
    >> >but I've heard several people swear that it does. How would a
    >> >driver even
    >> >know, other than through some a priori assumptions?
    >> >
    >> >> -----Original Message-----
    >> >> From: Jamey Kirby [mailto:[email protected]]
    >> >> Sent: Monday, April 17, 2000 2:22 PM
    >> >> To: NT Developers Interest List
    >> >> Subject: [ntdev] RE: A query !!
    >> >>
    >> >>
    >> >> I think you need to use MmBuildMdlForNonPagedPool() if you
    >> >> use NPP in your
    >> >> MDL.
    >> >>
    >> >> Jamey
    >> >>
    >> >> > -----Original Message-----
    >> >> > From: Kiran Mandava [mailto:[email protected]]
    >> >> > Sent: Monday, April 17, 2000 11:08 AM
    >> >> > To: NT Developers Interest List
    >> >> > Subject: [ntdev] A query !!
    >> >> >
    >> >> >
    >> >> > The Microsoft Exchange Server received an Internet message
    >> >> that could
    >> >> > not be processed. To view the original message content, open the
    >> >> > attached message. <
    >> >> >
    >> >>
    >> >>
    >> >> ---
    >> >> You are currently subscribed to ntdev as: [email protected]
    >> >> To unsubscribe send a blank email to
    >$subst('Email.Unsub')
    >> >>
    >> >
    >> >---
    >> >You are currently subscribed to ntdev as:
    >[email protected]
    >> >To unsubscribe send a blank email to $subst('Email.Unsub')
    >> >
    >>
    >> ---
    >> You are currently subscribed to ntdev as: [email protected]
    >> To unsubscribe send a blank email to $subst('Email.Unsub')
    >>
    >
    >
    >---
    >You are currently subscribed to ntdev as: [email protected]
    >To unsubscribe send a blank email to $subst('Email.Unsub')
    >
  • Thomas_F._DivineThomas_F._Divine Member Posts: 537
    PCAUSA licenses Advanced TDI Client samples for Windows NT & Windows 2000,
    which seem to work for most folks that have used them.

    The following KS_AllocateAndProbeMdl seems to work just fine for creating
    MDLs to be passed to TDI.

    Please do note that the MDL Next field is set to NULL. TDI can work with
    chains of MDLs, with the NExt field being set to NULL in the last one.

    In addition, we often use NdisAllocateBuffer, etc. to allocate NDIS_BUFFERs,
    which are equivalent to MDLs on Windows NT. In many cases using the NDIS
    buffer functions is somewhat safer then using the NT kernel services. For
    example NdisAllocateBuffer takes care of the MDL Next field for you.
    Certainly more transportable to 9X platform...

    Good luck,

    Thomas F. Divine

    PCAUSA - Toolkits & Resources For Network Software Developers
    NDIS Protocol - TDI Client - Windows 95 Redirector
    <http://www.pcausa.com&gt;

    PMDL
    KS_AllocateAndProbeMdl(
    PVOID VirtualAddress,
    ULONG Length,
    BOOLEAN SecondaryBuffer,
    BOOLEAN ChargeQuota,
    PIRP Irp OPTIONAL
    )
    {
    PMDL pMdl = NULL;

    pMdl = IoAllocateMdl(
    VirtualAddress,
    Length,
    SecondaryBuffer,
    ChargeQuota,
    Irp
    );

    if( !pMdl )
    {
    return( (PMDL )NULL );
    }

    try
    {
    MmProbeAndLockPages( pMdl, KernelMode, IoModifyAccess );
    }
    except( EXCEPTION_EXECUTE_HANDLER )
    {
    IoFreeMdl( pMdl );

    pMdl = NULL;

    return( NULL );
    }

    pMdl->Next = NULL;

    return( pMdl );
    }
    ----- Original Message -----
    From: Kiran Mandava <[email protected]>
    To: NT Developers Interest List <[email protected]>
    Sent: Monday, April 17, 2000 4:55 PM
    Subject: [ntdev] RE: A query !!


    > Hi Jamey,
    >
    > But the Lower driver which my driver acessing is the TCP/IP Native
    Protocol
    > stack.
    > that means i shouldn't use the mmprobelockpages and instead use the
    > MmBuildMdlForNonPagedPool
    >
    >
    > kiran
    >
    >
    > >-----Original Message-----
    > >From: Jamey Kirby [mailto:[email protected]]
    > >Sent: Monday, April 17, 2000 12:28 PM
    > >To: NT Developers Interest List
    > >Subject: [ntdev] RE: A query !!
    > >
    > >
    > >Interesting. I experienced this in my driver. Here is what I
    > >was finding:
    > >
    > >If you lock the pages and call the FSD below you, the FSD will lock and
    > >unlock the pages. There is no lock count, so your lock is
    > >gone. So, you not
    > >unlocking the pages should be OK. If it is NPP, you should use
    > >MmBuildMdlForNonPagedPool.
    > >
    > >This means that your locked pages are no longer locked in your
    > >completion
    > >handler. Are you using a completion handler? Are you accessing
    > >the buffers
    > >in the completion handler?
    > >
    > >Sorry I can not be more specific; it would help to see your code.
    > >
    > >Jamey
    > >
    > >> -----Original Message-----
    > >> From: [email protected]
    > >> [mailto:[email protected]]On Behalf Of Kiran Mandava
    > >> Sent: Monday, April 17, 2000 12:17 PM
    > >> To: NT Developers Interest List
    > >> Subject: [ntdev] RE: A query !!
    > >>
    > >>
    > >> Hi,
    > >>
    > >> some more info on the current scenario,
    > >>
    > >> The main scenario is i Create a MDL first time and reuse it
    > >all the time
    > >> with the calls MmPrepareMdlForReuse + MmInitializeMdl.
    > >>
    > >> 1. we have a driver which does only MmProbeAndLockPages (There is no
    > >> compensating call mmunlockpages)and everything worked fine until
    > >> we got into
    > >> something like heavy usage of NonPagedPool (70M) +
    > >LockingDown some of the
    > >> Paged Pool In the Memory(about 30 MB) so the final kernel
    > >memory usage was
    > >> something like 140 MB...
    > >> (everything works fine until the memory usage creeped upto 140
    > >> MB, in the
    > >> normal cases it was Around 90 MB and evrything works fine.)
    > >>
    > >> but the problem at that point was something like i was
    > >observing a blue
    > >> sreen after the whole system runs for a while (say 4 to 5 hours) the
    > >> bugcheck being NO_MORE_SYSTEM_PTES (i don't know whether it
    > >is related or
    > >> not but...)
    > >>
    > >> so once i fixed the stuff using the mmunlockpages it worked
    > >fine for two
    > >> days and the page table entres were constant..
    > >> but after it crashed with the error
    > >IRQL_NOT_LESS_OR_EQUAL...which i
    > >> suspect is due to the mmunlockpages..
    > >>
    > >> 2. I tried to Use the NT DDK specified MmbuildMDLforNonPagedPool
    > >> and after a
    > >> while (unpredcictable)the system blue screens with error
    > >> PFN_FILE_CORRUPT
    > >>
    > >>
    > >>
    > >> could somebody help me on this.
    > >>
    > >>
    > >> thanks,
    > >>
    > >> >-----Original Message-----
    > >> >From: Roddy, Mark [mailto:[email protected]]
    > >> >Sent: Monday, April 17, 2000 11:42 AM
    > >> >To: NT Developers Interest List
    > >> >Subject: [ntdev] RE: A query !!
    > >> >
    > >> >
    > >> >
    > >> >However it is an interesting question if
    > >> >MmProbeAndLockPages/MmUnlockPages
    > >> >cause a problem if the underlying buffer happens to be NPP.
    > >> >One hopes not,
    > >> >but I've heard several people swear that it does. How would a
    > >> >driver even
    > >> >know, other than through some a priori assumptions?
    > >> >
    > >> >> -----Original Message-----
    > >> >> From: Jamey Kirby [mailto:[email protected]]
    > >> >> Sent: Monday, April 17, 2000 2:22 PM
    > >> >> To: NT Developers Interest List
    > >> >> Subject: [ntdev] RE: A query !!
    > >> >>
    > >> >>
    > >> >> I think you need to use MmBuildMdlForNonPagedPool() if you
    > >> >> use NPP in your
    > >> >> MDL.
    > >> >>
    > >> >> Jamey
    > >> >>
    > >> >> > -----Original Message-----
    > >> >> > From: Kiran Mandava [mailto:[email protected]]
    > >> >> > Sent: Monday, April 17, 2000 11:08 AM
    > >> >> > To: NT Developers Interest List
    > >> >> > Subject: [ntdev] A query !!
    > >> >> >
    > >> >> >
    > >> >> > The Microsoft Exchange Server received an Internet message
    > >> >> that could
    > >> >> > not be processed. To view the original message content, open the
    > >> >> > attached message. <
    > >> >> >
    > >> >>
    > >> >>
    > >> >> ---
    > >> >> You are currently subscribed to ntdev as: [email protected]
    > >> >> To unsubscribe send a blank email to
    > >$subst('Email.Unsub')
    > >> >>
    > >> >
    > >> >---
    > >> >You are currently subscribed to ntdev as:
    > >[email protected]
    > >> >To unsubscribe send a blank email to $subst('Email.Unsub')
    > >> >
    > >>
    > >> ---
    > >> You are currently subscribed to ntdev as: [email protected]
    > >> To unsubscribe send a blank email to $subst('Email.Unsub')
    > >>
    > >
    > >
    > >---
    > >You are currently subscribed to ntdev as: [email protected]
    > >To unsubscribe send a blank email to $subst('Email.Unsub')
    > >
    >
    > ---
    > You are currently subscribed to ntdev as: [email protected]
    > To unsubscribe send a blank email to $subst('Email.Unsub')
    >
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 30 January 2023 Live, Online
Developing Minifilters 20 March 2023 Live, Online
Writing WDF Drivers TBD 2023 Live, Online
Internals & Software Drivers 17 April 2023 Live, Online