KsRegisterCountedWorker-Funktion (ks.h)
Verarbeitet Clients, die sich für die Verwendung eines Threads registrieren.
Syntax
KSDDKAPI NTSTATUS KsRegisterCountedWorker(
[in] WORK_QUEUE_TYPE WorkQueueType,
[in] PWORK_QUEUE_ITEM CountedWorkItem,
[out] PKSWORKER *Worker
);
Parameter
[in] WorkQueueType
Enthält die Priorität des Arbeitsthreads. Dies ist normalerweise eine der folgenden: CriticalWorkQueue, DelayedWorkQueue oder HyperCriticalWorkQueue.
[in] CountedWorkItem
Enthält einen Zeiger auf das Arbeitswarteschlangenelement, das je nach Bedarf basierend auf dem aktuellen Zählungswert in die Warteschlange eingereiht wird.
[out] Worker
Enthält den undurchsichtigen Kontext, der beim Planen eines Arbeitselements verwendet werden muss. Enthält auch den Warteschlangentyp und wird zum Synchronisieren der Vervollständigung von Arbeitselementen verwendet.
Rückgabewert
Gibt STATUS_SUCCESS zurück, wenn ein Worker initialisiert wurde.
Hinweise
Dies muss von einem entsprechenden KsUnregisterWorker abgeglichen werden, wenn die Threadverwendung abgeschlossen ist. Diese Funktion ähnelt KsRegisterWorker, wobei das Arbeitselement übergeben wird, das immer in die Warteschlange gestellt wird. Dies soll mit KsIncrementCountedWorker und KsDecrementCountedWorker verwendet werden, um die Anzahl der Arbeitselemente in der Warteschlange zu minimieren und den code für gegenseitigen Ausschluss zu reduzieren, der in einem Arbeitselement erforderlich ist, um den Zugriff auf mehrere Arbeitselementthreads zu serialisieren. Die Workerwarteschlange kann weiterhin verwendet werden, um andere Arbeitselemente in die Warteschlange zu stellen. Dies kann nur bei PASSIVE_LEVEL aufgerufen werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ks.h (einschließlich Ks.h) |
Bibliothek | Ks.lib |