KeInitializeSpinLock 함수(wdm.h)

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

구문

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

매개 변수

[out] SpinLock

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

반환 값

없음

설명

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

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

이 함수는 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에서 실행할 수 있습니다. 일반적으로 호출자는 ADDDevice 루틴에서 IRQL = PASSIVE_LEVEL 실행됩니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 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