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


Синхронизация ресурсов 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 (SP1) и более поздних версиях.

RxReleaseFcbResourceInMRx

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

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

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

RxFcbAcquiredShared (RXCONTEXT, FCB)

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

RxIsFcbAcquiredShared (FCB)

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

RxIsFcbAcquiredExclusive (FCB)

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

RxIsFcbAcquired (FCB)

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