Функция KsRegisterCountedWorker (ks.h)

Обрабатывает регистрацию клиентов для использования потока.

Синтаксис

KSDDKAPI NTSTATUS KsRegisterCountedWorker(
  [in]  WORK_QUEUE_TYPE  WorkQueueType,
  [in]  PWORK_QUEUE_ITEM CountedWorkItem,
  [out] PKSWORKER        *Worker
);

Параметры

[in] WorkQueueType

Содержит приоритет рабочего потока. Обычно это один из следующих вариантов: CriticalWorkQueue, DelayedWorkQueue или HyperCriticalWorkQueue.

[in] CountedWorkItem

Содержит указатель на элемент рабочей очереди, который будет помещен в очередь по мере необходимости на основе текущего значения счетчика.

[out] Worker

Содержит непрозрачный контекст, который необходимо использовать при планировании рабочего элемента. Также содержит тип очереди и используется для синхронизации завершения рабочих элементов.

Возвращаемое значение

Возвращает STATUS_SUCCESS, если рабочая роль была инициализирована.

Комментарии

Это должно соответствовать соответствующему объекту KsUnregisterWorker при завершении использования потока. Эта функция напоминает KsRegisterWorker с добавлением передачи рабочего элемента, который всегда будет помещен в очередь. Это необходимо использовать с KsIncrementCountedWorker и KsDecrementCountedWorker , чтобы свести к минимуму количество рабочих элементов, помещенных в очередь, и уменьшить код взаимного исключения, необходимый в рабочем элементе для сериализации доступа к нескольким потокам рабочих элементов. Рабочая очередь по-прежнему может использоваться для постановки в очередь других рабочих элементов. Это можно вызвать только в PASSIVE_LEVEL.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib