Функция 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) |