RxResumeBlockedOperations_Serially function

RxResumeBlockedOperations_Serially wakes up the next waiting thread, if any, on the serialized blocking I/O queue.

Syntax


VOID RxResumeBlockedOperations_Serially(
  _Inout_ PRX_CONTEXT RxContext,
  _Inout_ PLIST_ENTRY BlockingIoQ
);

Parameters

RxContext [in, out]

A pointer to the RX_CONTEXT structure of the operation being synchronized.

BlockingIoQ [in, out]

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

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

 

 

Send comments about this topic to Microsoft

Show: