다음을 통해 공유


ExAcquirePushLockShared 매크로(wdm.h)

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

통사론

void ExAcquirePushLockShared(
   Lock
);

매개 변수

Lock

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

반환 값

없음

발언

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

ERESOURCE 구조와 달리 푸시 잠금은 재귀적으로 획득할 수 없습니다. 호출자가 단독 액세스를 위해 푸시 잠금을 이미 획득한 경우 시스템이 중단됩니다. 호출자가 공유 액세스에 대한 푸시 잠금을 이미 획득한 경우 공유 액세스를 다시 받을 수 있습니다.

푸시 잠금을 획득한 후 해제하려면 ExReleasePushLockShared호출합니다. ExAcquirePushLockShared 대한 각 호출은 exReleasePushLockShared후속 호출과 일치해야 합니다.

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

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

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

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

이 루틴을 호출하기 전에 드라이버는 KeEnterCriticalRegion호출하여 일반 커널 APC 배달을 사용하지 않도록 설정해야 합니다. KeLeaveCriticalRegion호출하여 푸시 잠금이 해제된 후 다시 활성화할 수 있습니다. 자세한 내용은 APC 사용하지 않도록 설정하는참조하세요.

단독 액세스를 위한 푸시 잠금을 획득하려면 ExAcquirePushLockExclusive호출합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 버전 1809
헤더 wdm.h

참고 항목

exInitializePushLock

KeEnterCriticalRegion

exReleasePushLockShared

exAcquirePushLockExclusive