KeInitializeSemaphore-Funktion (wdm.h)
Die KeInitializeSemaphor Routine initialisiert ein Semaphorobjekt mit einer angegebenen Anzahl und gibt eine Obergrenze an, die die Anzahl erreichen kann.
Syntax
void KeInitializeSemaphore(
[out] PRKSEMAPHORE Semaphore,
[in] LONG Count,
[in] LONG Limit
);
Parameter
[out] Semaphore
Zeiger auf ein Dispatcherobjekt vom Typ Semaphor, für das der Aufrufer den Speicher bereitstellt.
[in] Count
Gibt den anfänglichen Anzahlwert an, der dem Semaphor zugewiesen werden soll. Dieser Wert muss positiv sein. Ein Nonzero-Wert legt den Anfangszustand des Semaphors auf signalisiert fest.
[in] Limit
Gibt den Maximalwert an, den das Semaphor erreichen kann. Dieser Wert muss positiv sein. Es bestimmt, wie viele Wartethreads zur Ausführung berechtigt werden, wenn der Semaphor auf den signalierten Zustand festgelegt ist und somit auf die Ressource zugreifen kann, die der Semaphor schützt.
Rückgabewert
Nichts
Bemerkungen
Das Semaphorobjekt wird mit der angegebenen Anfangsanzahl und dem angegebenen Grenzwert initialisiert.
Der Speicher für ein Semaphorobjekt muss sich befinden: in der Geräteerweiterung eines vom Treiber erstellten Geräteobjekts, in der Controllererweiterung eines vom Treiber erstellten Controllerobjekts oder in nicht seitengebundenem Pool, der vom Aufrufer zugewiesen wird.
Weitere Informationen zu Semaphorobjekten finden Sie unter Semaphor-Objekte.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm) |