Функция 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 |