FltAcquirePushLockSharedEx 함수(fltkernel.h)

FltAcquirePushLockSharedEx 루틴은 호출 스레드에서 공유 액세스에 대해 지정된 푸시 잠금을 획득합니다.

구문

VOID FLTAPI FltAcquirePushLockSharedEx(
  PEX_PUSH_LOCK PushLock,
  ULONG         Flags
);

매개 변수

PushLock

불투명 푸시 잠금 포인터입니다. 이 포인터는 FltInitializePushLock에 대한 이전 호출에 의해 초기화되어야 합니다.

Flags

잠금의 특성을 제어하는 플래그의 비트 마스크입니다.

반환 값

없음

설명

FltAcquirePushLockSharedEx 루틴은 호출 스레드에서 공유 액세스에 대해 지정된 푸시 잠금을 획득합니다.

푸시 잠금은 공유 또는 배타적 액세스를 위해 획득할 수 있다는 ERESOURCE 구조(리소스라고도 함)와 유사합니다. 푸시 잠금에 대한 자세한 내용은 FltInitializePushLock에 대한 참조 항목을 참조하세요.

ERESOURCE 구조와 달리 푸시 잠금은 재귀적으로 가져올 수 없습니다. 호출자가 배타적 액세스를 위해 푸시 잠금을 이미 획득한 경우 시스템이 중단됩니다. 호출자가 공유 액세스에 대한 푸시 잠금을 이미 획득한 경우 공유 액세스를 다시 받을 수 있습니다. 그러나 FltAcquirePushLockShared 에 대한 각 호출은 FltReleasePushLock에 대한 후속 호출과 일치해야 합니다.

호출자에게 지정된 푸시 잠금에 대한 공유 액세스 권한이 부여되는 경우 다음 사항에 따라 달라집니다.

  • 푸시 잠금이 현재 소유되지 않은 경우 공유 액세스 권한이 현재 스레드에 즉시 부여됩니다.

  • 다른 스레드에서 공유 액세스를 위해 푸시 잠금을 이미 획득했으며 푸시 잠금에 대한 단독 액세스를 기다리는 스레드가 없는 경우 공유 액세스 권한이 호출자에게 즉시 부여됩니다. 전용 웨이터가 있는 경우 호출자는 대기 상태로 전환됩니다.

  • 다른 스레드에서 단독 액세스를 위해 푸시 잠금을 이미 획득했거나 배타적 액세스를 기다리는 다른 스레드가 있는 경우 푸시 잠금을 획득할 수 있을 때까지 현재 스레드가 대기 상태로 전환됩니다.

요구 사항

요구 사항
헤더 fltkernel.h
라이브러리 FltMgr.lib

추가 정보

FltInitializePushLock