Поделиться через


Синхронизация ресурсов FCB

Ресурсы синхронизации, интересующие драйверы мини-перенаправления, в основном связаны с FCB. Существует ресурс ввода-вывода на разбиение по страницам и обычный ресурс. Ресурс ввода-вывода на разбиение на страницах управляется с помощью RDBSS. Единственным ресурсом, доступным для драйверов мини-перенаправления, является обычный ресурс, к которому следует обращаться с помощью указанных ниже подпрограмм:

Рутина Описание

RxAcquireExclusiveFcbResourceInMRx

Эта подпрограмма получает ресурс FCB в эксклюзивном режиме. Эта подпрограмма ожидает, что ресурс FCB будет бесплатным, если он был приобретен ранее; эта подпрограмма не возвращает контроль до получения эксклюзивного ресурса. Эта подпрограмма получает ресурс FCB, даже если структура RX_CONTEXT, связанная с этим FCB, была отменена.

RxAcquireSharedFcbResourceInMRx

Эта процедура получает ресурс FCB в режиме общего доступа. Эта подпрограмма ожидает, что ресурс FCB будет бесплатным, если он был ранее приобретен исключительно; эта подпрограмма не возвращает контроль до получения общего ресурса. Эта подпрограмма получает ресурс FCB, даже если RX_CONTEXT структура, связанная с этим FCB, была отменена.

RxAcquireSharedFcbResourceInMRxEx

Эта подпрограмма получает ресурс FCB в общем режиме. Эта подпрограмма ожидает, что ресурс FCB будет бесплатным, если он был ранее приобретен исключительно; эта подпрограмма не возвращает контроль до получения общего ресурса. Эта подпрограмма получает ресурс FCB, даже если структура RX_CONTEXT, связанная с этим FCB, была отменена.

Эта подпрограмма доступна только в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версий.

RxReleaseFcbResourceForThreadInMRx

Эта подпрограмма освобождает ресурс FCB, полученный ранее с помощью RxAcquireSharedFcbResourceInMRxEx.

Эта подпрограмма доступна только в Windows Server 2003 с пакетом обновления 1 и более поздних версий.

RxReleaseFcbResourceInMRx

Эта подпрограмма освобождает ресурс FCB, полученный ранее с помощью RxAcquireExclusiveFcbResourceInMRx или RxAcquireSharedFcbResourceInMRx.

Следующие макросы определены в файле заголовка rxprocs.h, чтобы определить, имеет ли текущий поток доступ к регулярному ресурсу FCB.

Макрос Описание

RxFcbAcquiredShared (RXCONTEXT, FCB)

Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в общем режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredSharedLite .

RxIsFcbAcquiredShared (FCB)

Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в общем режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredSharedLite .

RxIsFcbAcquiredExclusive (FCB)

Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в монопольном режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredExclusiveLite .

RxIsFcbAcquired (FCB)

Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в общем или монопольном режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredSharedLite и ExIsResourceAcquiredExclusiveLite .