Функция 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 (include Ks.h)
библиотеки Ks.lib