Прочитать на английском

Поделиться через


Функция KeInitializeSemaphore (wdm.h)

Программа KeInitializeSemaphore инициализирует объект семафора с указанным числом и указывает верхний предел, который может достичь счетчика.

Синтаксис

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

Параметры

[out] Semaphore

Указатель на объект диспетчера типа семафор, для которого вызывающий объект предоставляет хранилище.

[in] Count

Указывает начальное значение счетчика, которое будет назначено семафору. Это значение должно быть положительным. Ненулевое значение задает начальное состояние семафора для сигнала.

[in] Limit

Указывает максимальное значение счетчика, которое может достичь семафор. Это значение должно быть положительным. Он определяет, сколько потоков ожидания становится допустимым для выполнения, когда семафор задано сигнальное состояние и поэтому может получить доступ к ресурсу, который защищает семафор.

Возвращаемое значение

Никакой

Замечания

Объект семафора инициализирован с указанным начальным числом и ограничением.

Хранилище для объекта семафора должно быть резидентом: в расширении устройства объекта устройства, созданного драйвером, в расширении контроллера объекта контроллера, созданного драйвером, или в непакованном пуле, выделенном вызывающим объектом.

Дополнительные сведения об объектах семафора см. в объектов Семафора.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

См. также

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject