다음을 통해 공유


FCB 리소스 동기화

미니 리디렉터 드라이버에 대한 관심 있는 동기화 리소스는 주로 FCB와 연결됩니다. 페이징 I/O 리소스와 일반 리소스가 있습니다. 페이징 I/O 리소스는 RDBSS를 통해 내부적으로 관리됩니다. 미니 리디렉터 드라이버에 액세스할 수 있는 유일한 리소스는 다음과 같은 제공된 루틴을 사용하여 액세스해야 하는 일반 리소스입니다.

루틴에서 반환된 값 Description

RxAcquireExclusiveFcbResourceInMRx

이 루틴은 단독 모드에서 FCB 리소스를 획득합니다. 이 루틴은 FCB 리소스가 이전에 획득한 경우 해제될 때까지 기다립니다. 이 루틴은 배타적 리소스를 획득할 때까지 컨트롤을 반환하지 않습니다. 이 루틴은 이 FCB와 연결된 RX_CONTEXT 구조가 취소된 경우에도 FCB 리소스를 획득합니다.

RxAcquireSharedFcbResourceInMRx

이 루틴은 공유 모드에서 FCB 리소스를 획득합니다. 이 루틴은 이전에 독점적으로 획득한 경우 FCB 리소스가 해제될 때까지 기다립니다. 이 루틴은 공유 리소스를 획득할 때까지 컨트롤을 반환하지 않습니다. 이 루틴은 이 FCB와 연결된 RX_CONTEXT 구조가 취소된 경우에도 FCB 리소스를 획득합니다.

RxAcquireSharedFcbResourceInMRxEx

이 루틴은 공유 모드에서 FCB 리소스를 획득합니다. 이 루틴은 이전에 독점적으로 획득한 경우 FCB 리소스가 해제될 때까지 기다립니다. 이 루틴은 공유 리소스를 획득할 때까지 컨트롤을 반환하지 않습니다. 이 루틴은 이 FCB와 연결된 RX_CONTEXT 구조가 취소된 경우에도 FCB 리소스를 획득합니다.

이 루틴은 Windows Server 2003 SP1(서비스 팩 1) 이상에서만 사용할 수 있습니다.

RxReleaseFcbResourceForThreadInMRx

이 루틴은 이전에 RxAcquireSharedFcbResourceInMRxEx를 사용하여 획득한 FCB 리소스를 해제합니다.

이 루틴은 Windows Server 2003 서비스 팩 1 이상에서만 사용할 수 있습니다.

RxReleaseFcbResourceInMRx

이 루틴은 이전에 RxAcquireExclusiveFcbResourceInMRx 또는 RxAcquireSharedFcbResourceInMRx를 사용하여 획득한 FCB 리소스를 해제합니다.

다음 매크로는 rxprocs.h 헤더 파일에 정의되어 현재 스레드가 FCB 일반 리소스에 액세스할 수 있는지 여부를 확인합니다.

매크로 Description

RxFcbAcquiredShared (RXCONTEXT, FCB)

이 매크로는 현재 스레드가 공유 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 루틴을 호출합니다.

RxIsFcbAcquiredShared (FCB)

이 매크로는 현재 스레드가 공유 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 루틴을 호출합니다.

RxIsFcbAcquiredExclusive (FCB)

이 매크로는 현재 스레드가 전용 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredExclusiveLite 루틴을 호출합니다.

RxIsFcbAcquired (FCB)

이 매크로는 현재 스레드가 공유 또는 배타적 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로 는 ExIsResourceAcquiredSharedLiteExIsResourceAcquiredExclusiveLite 루틴을 호출합니다.