Partilhar via


Função KsPropertyHandler (ks.h)

Os drivers chamam função KsPropertyHandler para manipulação de IRP.

Sintaxe

KSDDKAPI NTSTATUS KsPropertyHandler(
  [in] PIRP                 Irp,
  [in] ULONG                PropertySetsCount,
  [in] const KSPROPERTY_SET *PropertySet
);

Parâmetros

[in] Irp

Especifica o IRP com a solicitação de propriedade sendo tratada.

[in] PropertySetsCount

Especifica o número de conjuntos de propriedades que estão sendo passados.

[in] PropertySet

Aponta para uma matriz de estruturas de KSPROPERTY_SET. O driver deve fornecer uma estrutura para cada conjunto de propriedades que deseja que KsPropertyHandler manipule.

Valor de retorno

A função KsPropertyHandler retorna STATUS_SUCCESS se bem-sucedida ou um erro específico à propriedade que está sendo tratada se não tiver êxito. A função define o IRP–>IO_STATUS_BLOCK. Membro de informações, por meio de defini-lo como zero devido a um erro interno ou por meio de um manipulador de propriedades defini-lo. A função não define o membro lrp->IoStatus.Status nem conclui o IRP.

Observações

KsPropertyHandler responde a todos os identificadores de propriedade definidos pelos conjuntos e só pode ser chamado em PASSIVE_LEVEL.

Cada entrada KSPROPERTY_SET contém um ponteiro para uma matriz de estruturas KSPROPERTY_ITEM em seu membro PropertyItem. Para processamento específico do driver, o KsPropertyHandler entrega cada solicitação a um dos retornos de chamada fornecidos pelo driver no PropertyItem. KsPropertyHandler cuida de qualquer processamento IRP necessário.

KsPropertyHandler não usa o membro FastIoTable de sua estrutura de KSPROPERTY_SET. Se o driver precisar dar suporte ao tratamento rápido de E/S de solicitações, a mesma estrutura de KSPROPERTY_SET deverá ser passada para a rotina KsFastPropertyHandler.

O proprietário dos conjuntos de propriedades pode executar pré-filtragem ou pós-filtragem de manipulação de propriedade. As exceções básicas de acesso à estrutura de propriedades são tratadas pela função KsPropertyHandler, embora a limpeza para exceções específicas deva ser abordada pelo manipulador de propriedades.

KsPropertyHandler coloca um ponteiro para a estrutura de KSPROPERTY_SET relevante no parâmetro Irp->Tail.Overlay.DriverContext no IRP. O minidriver pode usar a macro KSPROPERTY_SET_IRP_STORAGE, definida em ks.h, para acessar esse ponteiro.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho ks.h (incluir Ks.h)
biblioteca Ks.lib

Consulte também

KsFastPropertyHandler

KsPropertyHandlerWithAllocator