KeInitializeSemaphore 함수(wdm.h)

KeInitializeSemaphore 루틴은 지정된 개수로 세마포 개체를 초기화하고 개수가 달성할 수 있는 상한을 지정합니다.

구문

void KeInitializeSemaphore(
  [out] PRKSEMAPHORE Semaphore,
  [in]  LONG         Count,
  [in]  LONG         Limit
);

매개 변수

[out] Semaphore

호출자가 스토리지를 제공하는 세마포 형식의 디스패처 개체에 대한 포인터입니다.

[in] Count

세마포에 할당할 초기 개수 값을 지정합니다. 이 값은 양수여야 합니다. 0이 아닌 값은 세마포의 초기 상태를 신호로 설정합니다.

[in] Limit

세마포가 달성할 수 있는 최대 개수 값을 지정합니다. 이 값은 양수여야 합니다. 세마포가 신호됨 상태로 설정되어 세마포가 보호하는 리소스에 액세스할 수 있는 경우 실행할 수 있는 대기 스레드 수를 결정합니다.

반환 값

없음

설명

세마포 개체는 지정된 초기 개수 및 제한으로 초기화됩니다.

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

세마포 개체에 대한 자세한 내용은 세마포 개체를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

추가 정보

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject