FCB 리소스 동기화
미니 리디렉터 드라이버에 대한 관심 있는 동기화 리소스는 주로 FCB와 연결됩니다. 페이징 I/O 리소스와 일반 리소스가 있습니다. 페이징 I/O 리소스는 RDBSS를 통해 내부적으로 관리됩니다. 미니 리디렉터 드라이버에 액세스할 수 있는 유일한 리소스는 다음과 같은 제공된 루틴을 사용하여 액세스해야 하는 일반 리소스입니다.
루틴에서 반환된 값 | Description |
---|---|
이 루틴은 단독 모드에서 FCB 리소스를 획득합니다. 이 루틴은 FCB 리소스가 이전에 획득한 경우 해제될 때까지 기다립니다. 이 루틴은 배타적 리소스를 획득할 때까지 컨트롤을 반환하지 않습니다. 이 루틴은 이 FCB와 연결된 RX_CONTEXT 구조가 취소된 경우에도 FCB 리소스를 획득합니다. |
|
이 루틴은 공유 모드에서 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 이상에서만 사용할 수 있습니다. |
이 루틴은 이전에 RxAcquireExclusiveFcbResourceInMRx 또는 RxAcquireSharedFcbResourceInMRx를 사용하여 획득한 FCB 리소스를 해제합니다. |
다음 매크로는 rxprocs.h 헤더 파일에 정의되어 현재 스레드가 FCB 일반 리소스에 액세스할 수 있는지 여부를 확인합니다.
매크로 | Description |
---|---|
RxFcbAcquiredShared (RXCONTEXT, FCB) |
이 매크로는 현재 스레드가 공유 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 루틴을 호출합니다. |
RxIsFcbAcquiredShared (FCB) |
이 매크로는 현재 스레드가 공유 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 루틴을 호출합니다. |
RxIsFcbAcquiredExclusive (FCB) |
이 매크로는 현재 스레드가 전용 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredExclusiveLite 루틴을 호출합니다. |
RxIsFcbAcquired (FCB) |
이 매크로는 현재 스레드가 공유 또는 배타적 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로 는 ExIsResourceAcquiredSharedLite 및 ExIsResourceAcquiredExclusiveLite 루틴을 호출합니다. |