RxResumeBlockedOperations_Serially function (rxcontx.h)
RxResumeBlockedOperations_Serially wakes up the next waiting thread, if any, on the serialized blocking I/O queue.
Syntax
void RxResumeBlockedOperations_Serially(
[in, out] IN OUT PRX_CONTEXT RxContext,
[in, out] IN OUT PLIST_ENTRY BlockingIoQ
);
Parameters
[in, out] RxContext
A pointer to the RX_CONTEXT structure of the operation being synchronized.
[in, out] BlockingIoQ
A pointer to the blocking I/O queue.
Return value
None
Remarks
RxResumeBlockedOperations_Serially wakes up the next work item on a serialized blocking I/O queue, if one exists. The FCB structure must still be valid because of the reference that is being held by the I/O system on the file object, thereby preventing a close operation.
A serialized blocking I/O queue is one for which the FlagsForLowIo member of the RX_CONTEXT structure pointed to by RxContext has the RXCONTEXT_FLAG4LOWIO_PIPE_SYNC_OPERATION bit set.
RxResumeBlockedOperations_Serially performs this operation by calling RxFsdPostRequest to post the operation to a worker thread.
The RxResumeBlockedOperations_Serially routine is normally not called directly by a network mini-redirector driver, but is called internally by RDBSS when processing synchronous read and write operations on a named pipe that requires a serialized queue.
A network mini-redirector may need to call RxResumeBlockedOperations_Serially if an RX_CONTEXT has been placed on a synchronization queue using __RxSynchronizeBlockingOperations or __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | rxcontx.h (include Rxcontx.h) |
IRQL | <= APC_LEVEL |
See also
RxDereferenceAndDeleteRxContext_Real