KeInitializeSemaphore-Funktion (wdm.h)
Die KeInitializeSemaphore-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 Verteilerobjekt 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 Wert ungleich 0 (null) legt den Anfangszustand des Semaphors auf signalisiert fest.
[in] Limit
Gibt den maximalen Anzahlwert an, den das Semaphor erreichen kann. Dieser Wert muss positiv sein. Es bestimmt, wie viele wartende Threads zur Ausführung berechtigt sind, wenn der Semaphor auf den signalierten Zustand festgelegt ist, und kann daher auf die Ressource zugreifen, die vom Semaphor geschützt wird.
Rückgabewert
Keine
Bemerkungen
Das Semaphorobjekt wird mit der angegebenen Anfangsanzahl und dem angegebenen Grenzwert initialisiert.
Der Speicher für ein Semaphorobjekt muss resident sein: in der Geräteerweiterung eines vom Treiber erstellten Geräteobjekts, in der Controllererweiterung eines vom Treiber erstellten Controllerobjekts oder in einem nicht ausgelagerten Pool, der vom Aufrufer zugeordnet wird.
Weitere Informationen zu Semaphorobjekten finden Sie unter Semaphorobjekte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm) |