Because otherwise the rather complicated decision by the IoManager about how
to complete an asynchronous IO request, which has to cover both completions
on the ‘dispatch side’ and asynchronous ‘interrupt side’ completions, gets
confused and the system crashes (eventually.) There is an excellent article
in the NtInsider by Tony Mason from a few years back, that I think is
available online at www.osr.com http: that lays out the
details with pictures even. Read it and understand it. Meanwhile just follow
the directions, as even without complete understanding of the internal
mechanisms, as long as the external interfaces and operational procedures
are documented, it is quite possible to write kernel modules that will
behave correctly.
-----Original Message-----
From: Assaf Wodeslavsky [mailto:xxxxx@hotmail.com]
Sent: Thursday, December 06, 2001 12:43 PM
To: NT Developers Interest List
Subject: [ntdev] [ntdev]why must driver call IoMarkIrpPending?
hi all
in osr’s book page:332
it says that a driver must call IoMarkIrpPending
as well as return STATUS_PENDING
“failure of a driver to do both of these things causes improper system
behaviour”
what improper system behaviour?
and why?
assaf
—
You are currently subscribed to ntdev as: xxxxx@stratus.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</http:>