다음을 통해 공유


KeInitializeSpinLock 함수(wdm.h)

KeInitializeSpinLock 루틴은 KSPIN_LOCK 형식의 변수를 초기화합니다.

통사론

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

매개 변수

[out] SpinLock

호출자가 스토리지를 제공해야 하는 스핀 잠금에 대한 포인터입니다.

반환 값

없음

발언

KeAcquireInStackQueuedSpinLock KeAcquireSpinLock또는 스핀 잠금이 인수로 필요한 다른 지원 루틴에 대한 초기 호출 전에 이 루틴을 호출해야 합니다.

스핀 잠금 개체의 스토리지는 드라이버에서 만든 디바이스 개체의 디바이스 확장, 드라이버에서 만든 컨트롤러 개체의 컨트롤러 확장 또는 호출자가 할당한 비페이지 풀에 상주해야 합니다.

이 함수는 Windows XP에서 Windows 7까지 x64 시스템에 대해 인라인 처리됩니다. Windows 8부터 이 함수는 ntoskrnl.lib내보냅니다. 따라서 Windows 10 WDK를 사용하여 Windows 7에서 실행되는 이진 파일을 빌드하는 경우(따라서 Windows 10 HLK 테스트를 통과하려면 NX 풀 사용량이 필요함) WIN9X_COMPAT_SPINLOCK정의해야 합니다. 그렇지 않으면 Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)볼 수 있습니다.

스핀 잠금에 대한 자세한 내용은 스핀 잠금 참조하세요.

이 루틴의 호출자는 모든 IRQL에서 실행할 수 있습니다. 일반적으로 호출자는 irQL = PASSIVE_LEVEL AddDevice 루틴에서 실행됩니다.

요구 사항

요구
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준(설명 섹션 참조)
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport)

참고 항목

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel