Table of contents
TOC
Collapse the table of content
Expand the table of content

FCB Resource Synchronization

Last Updated: 7/30/2016

The synchronization resources of interest to mini-redirector drivers are primarily associated with the FCB. There is a paging I/O resource and a regular resource. The paging I/O resource is managed internally by RDBSS. The only resource accessible to mini-redirector drivers is the regular resource, which should be accessed using the following supplied routines:

RoutineDescription

RxAcquireExclusiveFcbResourceInMRx

This routine acquires the FCB resource in the exclusive mode. This routine will wait for the FCB resource to be free if it was previously acquired; this routine does not return control until the exclusive resource has been acquired. This routine acquires the FCB resource even if the RX_CONTEXT structure associated with this FCB has been canceled.

RxAcquireSharedFcbResourceInMRx

This routine acquires the FCB resource in shared mode. This routine will wait for the FCB resource to be free if it was previously acquired exclusively; this routine does not return control until the shared resource has been acquired. This routine acquires the FCB resource even if the RX_CONTEXT structure associated with this FCB has been canceled.

RxAcquireSharedFcbResourceInMRxEx

This routine acquires the FCB resource in shared mode. This routine will wait for the FCB resource to be free if it was previously acquired exclusively; this routine does not return control until the shared resource has been acquired. This routine acquires the FCB resource even if the RX_CONTEXT structure associated with this FCB has been canceled.

This routine is only available on Windows Server 2003 Service Pack 1 (SP1) and later.

RxReleaseFcbResourceForThreadInMRx

This routine frees the FCB resource previously acquired using RxAcquireSharedFcbResourceInMRxEx.

This routine is only available on Windows Server 2003 Service Pack 1 and later.

RxReleaseFcbResourceInMRx

This routine frees the FCB resource previously acquired using RxAcquireExclusiveFcbResourceInMRx or RxAcquireSharedFcbResourceInMRx.

The following macros are defined in the rxprocs.h header file to determine whether the current thread has access to the FCB regular resource.

MacroDescription

RxFcbAcquiredShared (RXCONTEXT, FCB)

This macro checks if the current thread has access to the regular resource in shared mode. This macro calls the ExIsResourceAcquiredSharedLite routine.

RxIsFcbAcquiredShared (FCB)

This macro checks if the current thread has access to the regular resource in shared mode. This macro calls the ExIsResourceAcquiredSharedLite routine.

RxIsFcbAcquiredExclusive (FCB)

This macro checks if the current thread has access to the regular resource in exclusive mode. This macro calls the ExIsResourceAcquiredExclusiveLite routine.

RxIsFcbAcquired (FCB)

This macro checks if the current thread has access to the regular resource in either shared or exclusive mode. This macro calls the ExIsResourceAcquiredSharedLite and ExIsResourceAcquiredExclusiveLite routine.


© 2016 Microsoft