Hi,
Is it ok for MmGetSystemAddressForMdlSafe() to return NULL.
DDK states that the I/O Manager does not create MDLs for
zero-length transfers, a zero-length buffer results in a
NULL value at Irp->MdlAddress.
Using MmGetSystemAddressForMdlSafe(), to map the address
space, returns NULL if mapping fails. As it will if a driver
passes a NULL MdlAddress.
Is this a valid argument? Are there any other circumstances
that results in NULL for
MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority);
Thanx,
Mike
Get free e-mail and a permanent address at http://www.amexmail.com/?A=1
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Being out of system PTEs is a cause.
----- Original Message -----
From: “Mike Zirolli”
To: “NT Developers Interest List”
Sent: Tuesday, September 25, 2001 5:49 PM
Subject: [ntdev] MmGetSystemAddressForMdlSafe
Hi,
Is it ok for MmGetSystemAddressForMdlSafe() to return NULL.
DDK states that the I/O Manager does not create MDLs for
zero-length transfers, a zero-length buffer results in a
NULL value at Irp->MdlAddress.
Using MmGetSystemAddressForMdlSafe(), to map the address
space, returns NULL if mapping fails. As it will if a driver
passes a NULL MdlAddress.
Is this a valid argument? Are there any other circumstances
that results in NULL for
MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority);
Thanx,
Mike
____________________________________________________________________
Get free e-mail and a permanent address at http://www.amexmail.com/?A=1
—
You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Zero length transfers require special handling, out side of the
(Io)AllocateAdapterChannel. I’m assuming that you really do want to do
something with a piece of hardware that has no data associated with it, such
as sending an out of band ACK to a green widget. In my case I test for a
null MDL queue the transfer request, do what set is needed that
AllocateAdapterChannel would have done, and call the DmaCallback function
directly to process a queue of transfer requests.
The normal paths do not handle zero length transfers - indeed you will find
that Driver Verifier will fault in 2000 and early versions of XP (Peter and
the boys and girls at MS finally listened to me and fixed DV about 2419 or
so.) The reason behind it is that typically the IRP with a zero length
transfer will be completed and returned without being hung on a device. This
does not take into account a Fibre channel card controlling a SCSI disk that
will send an initiator CDB with SCSI_INQURIY and no data buffer.
Gary G. Little
Staff Engineer
Broadband Storage, Inc.
xxxxx@broadstor.com
-----Original Message-----
From: Mike Zirolli [mailto:xxxxx@usa.net]
Sent: Tuesday, September 25, 2001 6:50 AM
To: NT Developers Interest List
Subject: [ntdev] MmGetSystemAddressForMdlSafe
Hi,
Is it ok for MmGetSystemAddressForMdlSafe() to return NULL.
DDK states that the I/O Manager does not create MDLs for
zero-length transfers, a zero-length buffer results in a
NULL value at Irp->MdlAddress.
Using MmGetSystemAddressForMdlSafe(), to map the address
space, returns NULL if mapping fails. As it will if a driver
passes a NULL MdlAddress.
Is this a valid argument? Are there any other circumstances
that results in NULL for
MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority);
Thanx,
Mike
Get free e-mail and a permanent address at http://www.amexmail.com/?A=1
You are currently subscribed to ntdev as: xxxxx@broadstor.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
If this is the case, the system should have crashed with
Bug Check 0x3F: NO_MORE_SYSTEM_PTES. Definitely something
looks wrong. Could that be caused by our driver? How do
we track this problem?
Thanx,
Mike
“Maxim S. Shatskih” wrote:
> Being out of system PTEs is a cause.
>
> ----- Original Message -----
> From: “Mike Zirolli”
> To: “NT Developers Interest List”
> Sent: Tuesday, September 25, 2001 5:49 PM
> Subject: [ntdev] MmGetSystemAddressForMdlSafe
>
>
> Hi,
>
> Is it ok for MmGetSystemAddressForMdlSafe() to return NULL.
> DDK states that the I/O Manager does not create MDLs for
> zero-length transfers, a zero-length buffer results in a
> NULL value at Irp->MdlAddress.
>
> Using MmGetSystemAddressForMdlSafe(), to map the address
> space, returns NULL if mapping fails. As it will if a driver
> passes a NULL MdlAddress.
>
> Is this a valid argument? Are there any other circumstances
> that results in NULL for
> MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority);
>
> Thanx,
> Mike
____________________________________________________________________
Get free e-mail and a permanent address at http://www.amexmail.com/?A=1
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com