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

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxFsdPostRequest

RxInitializeContext

RxPrepareContextForReuse

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock