Синхронизация ресурсов FCB
Ресурсы синхронизации, представляющие интерес для драйверов мини-перенаправления, в основном связаны с FCB. Существует ресурс ввода-вывода подкачки и обычный ресурс. Ресурс ввода-вывода подкачки управляется внутренней службой RDBSS. Единственным ресурсом, доступным для драйверов мини-перенаправления, является обычный ресурс, к которому следует обращаться с помощью следующих подпрограмм:
Подпрограмма | Описание |
---|---|
Эта подпрограмма получает ресурс FCB в монопольном режиме. Эта подпрограмма будет ожидать освобождения ресурса FCB, если он был ранее приобретен; эта подпрограмма не возвращает управление, пока не будет получен эксклюзивный ресурс. Эта подпрограмма получает ресурс FCB, даже если структура RX_CONTEXT, связанная с этим FCB, была отменена. |
|
Эта подпрограмма получает ресурс 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) и более поздних версиях. |
Эта подпрограмма освобождает ресурс FCB, ранее полученный с помощью RxAcquireExclusiveFcbResourceInMRx или RxAcquireSharedFcbResourceInMRx. |
Следующие макросы определяются в файле заголовка rxprocs.h, чтобы определить, имеет ли текущий поток доступ к регулярному ресурсу FCB.
Макрос | Описание |
---|---|
RxFcbAcquiredShared (RXCONTEXT, FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к обычному ресурсу в общем режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredSharedLite . |
RxIsFcbAcquiredShared (FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к обычному ресурсу в общем режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredSharedLite . |
RxIsFcbAcquiredExclusive (FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к обычному ресурсу в монопольном режиме. Этот макрос вызывает подпрограмму ExIsResourceAcquiredExclusiveLite . |
RxIsFcbAcquired (FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к обычному ресурсу в общем или монопольном режиме. Этот макрос вызывает подпрограммы ExIsResourceAcquiredSharedLite и ExIsResourceAcquiredExclusiveLite . |