[PATCH 3/4] server: STATUS_MORE_PROCESSING_REQUIRED does not indicate that an async operation is complete (try 3).

Erich E. Hoover ehoover at mymail.mines.edu
Fri May 25 15:48:46 CDT 2012


Real Name:
    Erich Hoover

Description:
    Several MSDN articles indicate that kernel drivers can respond
with STATUS_MORE_PROCESSING_REQUIRED to indicate that an IRP is
incomplete and that a completion should not be processed.  Handling
the return value of our async operations in this way permits us to
handle completions for closed AcceptEx socket handles (part 3).  I
realize that my previous attempt at this (using STATUS_ALERTED) was
considered to be hackish, but I now have some evidence to support this
method and I have added a variety of tests that establish that
AcceptEx needs to work this way.  Since there isn't enough room to add
the completion port and the completion key to apc_call_t, and it would
be unacceptable to use the handle to the APC to send the completion, I
can't see any other way to solve this issue except to have the
callback return a value that means "I'm not done yet" or drastically
restructure how the APC data is passed between the client and the
server.  This version of the patch has been rebased against an updated
patch 2.

Changelog:
    server: STATUS_MORE_PROCESSING_REQUIRED does not indicate that an
async operation is complete.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-server-STATUS_MORE_PROCESSING_REQUIRED-does-not-indi.patch
Type: application/octet-stream
Size: 1073 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20120525/f0d0d56b/attachment.obj>


More information about the wine-patches mailing list