Функция KeInitializeSemaphore (wdm.h)
Подпрограмма KeInitializeSemaphore инициализирует объект семафора с указанным числом и задает верхний предел, который может достичь счетчика.
Синтаксис
void KeInitializeSemaphore(
[out] PRKSEMAPHORE Semaphore,
[in] LONG Count,
[in] LONG Limit
);
Параметры
[out] Semaphore
Указатель на объект диспетчера типа семафор, для которого вызывающий объект предоставляет хранилище.
[in] Count
Указывает начальное значение счетчика, назначаемое семафору. Это значение должно быть положительным. Ненулевое значение задает для семафора начальное состояние signaled.
[in] Limit
Указывает максимальное значение счетчика, которое может достичь семафор. Это значение должно быть положительным. Он определяет, сколько ожидающих потоков становятся подходящими для выполнения, когда семафор получает состояние сигналов и, следовательно, может получить доступ к ресурсу, защищаемый семафором.
Возвращаемое значение
None
Remarks
Объект семафора инициализируется с указанным начальным числом и ограничением.
Хранилище для объекта семафора должно быть резидентным: в расширении устройства объекта устройства, созданного драйвером, в расширении контроллера созданного драйвером объекта контроллера или в пуле без пахоты, выделенном вызывающим объектом.
Дополнительные сведения об объектах семафоров см. в разделе Объекты семафора.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm) |