Freigeben über


KsRegisterCountedWorker-Funktion (ks.h)

Behandelt Clients, die für die Verwendung eines Threads registriert werden.

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 einer Arbeitsaufgabe verwendet werden muss. Enthält auch den Warteschlangentyp und wird verwendet, um den Abschluss der Arbeitsaufgaben zu synchronisieren.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn ein Worker initialisiert wurde.

Bemerkungen

Dies muss mit einem entsprechenden KsUnregisterWorker- abgeglichen werden, wenn die Threadverwendung abgeschlossen ist. Diese Funktion ähnelt KsRegisterWorkermit dem Hinzufügen der Übergabe der Arbeitsaufgabe, die immer in die Warteschlange gestellt wird. Dies ist mit KsIncrementCountedWorker und KsDecrementCountedWorker- zu verwenden, um die Anzahl der Arbeitsaufgaben in der Warteschlange zu minimieren und den gegenseitigen Ausschlusscode zu reduzieren, der in einer Arbeitsaufgabe erforderlich ist, um den Zugriff auf mehrere Arbeitsaufgabenthreads zu serialisieren. Die Arbeitswarteschlange kann weiterhin verwendet werden, um andere Arbeitsaufgaben in die Warteschlange zu stellen. Dies kann nur bei PASSIVE_LEVEL aufgerufen werden.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib