Compartilhar via


Função KsRegisterCountedWorker (ks.h)

Lida com clientes que se registram para uso de um thread.

Sintaxe

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

Parâmetros

[in] WorkQueueType

Contém a prioridade do thread de trabalho. Normalmente, esse é um dos seguintes: CriticalWorkQueue, DelayedWorkQueue ou HyperCriticalWorkQueue.

[in] CountedWorkItem

Contém um ponteiro para o item da fila de trabalho que será enfileirado conforme necessário com base no valor de contagem atual.

[out] Worker

Contém o contexto opaco que deve ser usado ao agendar um item de trabalho. Também contém o tipo de fila e é usado para sincronizar a conclusão de itens de trabalho.

Retornar valor

Retorna STATUS_SUCCESS se um trabalho foi inicializado.

Comentários

Isso deve ser correspondido por um KsUnregisterWorker correspondente quando o uso do thread é concluído. Essa função é semelhante a KsRegisterWorker, com a adição de passar o item de trabalho que sempre será enfileirado. Isso deve ser usado com KsIncrementCountedWorker e KsDecrementCountedWorker para minimizar o número de itens de trabalho enfileirados e reduzir o código de exclusão mútua necessário em um item de trabalho necessário para serializar o acesso em vários threads de item de trabalho. A fila de trabalho ainda pode ser usada para enfileirar outros itens de trabalho. Isso só pode ser chamado em PASSIVE_LEVEL.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib