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