PFN_LIST_CORRUPT

Hi guys,
Why this error comes, I have allocated a new MDL using
IoAllocateMDL(, , FALSE, FALSE, ), built an Irp using
TdiBuildDevceIoControl, and used TdiReceiveDatagram to set others fields.
Then I have called IoCallDriver (for UDP device).
When kernel Receives a packet for my address, error comes saying
MemoryDescri…->Flags & MDL_PAGED_LOCKED !=0. With WinDbg I found out
that kernel is triying to doing MmUnlockPages (while I didn’t lock the
MDL when I sent that MDL with IRP to IocallDriver). I tried with
MmProbeAndLockPages too but same.
After that blue screen comes with PFN_LIST_CORRUPT.
What Wrong am I doing ? Does system worker thread come in the picture.
Anything regarding this are welcome.

Thanks

Raw

If you send a Tdireceive with an attached MDL, TCP after finishing the
receive request it tries to unlock MDL…so if you do MmProbeAndlockPages
before you do a receive and don’t do the Unlock on the receive completion
then it should be fine!

-----Original Message-----
From: xxxxx@hss.hns.com [mailto:xxxxx@hss.hns.com]
Sent: Tuesday, November 28, 2000 4:00 PM
To: NT Developers Interest List
Subject: [ntdev] PFN_LIST_CORRUPT

Hi guys,
Why this error comes, I have allocated a new MDL using
IoAllocateMDL(, , FALSE, FALSE, ), built an Irp using
TdiBuildDevceIoControl, and used TdiReceiveDatagram to set
others fields.
Then I have called IoCallDriver (for UDP device).
When kernel Receives a packet for my address, error comes saying
MemoryDescri…->Flags & MDL_PAGED_LOCKED !=0. With WinDbg I found out
that kernel is triying to doing MmUnlockPages (while I didn’t lock the
MDL when I sent that MDL with IRP to IocallDriver). I tried with
MmProbeAndLockPages too but same.
After that blue screen comes with PFN_LIST_CORRUPT.
What Wrong am I doing ? Does system worker thread come in the picture.
Anything regarding this are welcome.

Thanks

Raw


You are currently subscribed to ntdev as: xxxxx@skystream.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)