Função KsPropertyHandler (ks.h)

Os drivers chamam a 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.

Retornar valor

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

Comentários

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, KsPropertyHandler entrega cada solicitação a um dos retornos de chamada fornecidos pelo driver no PropertyItem. KsPropertyHandler cuida de qualquer processamento IRP necessário.

O 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 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 precise ser coberta 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
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib

Confira também

KsFastPropertyHandler

KsPropertyHandlerWithAllocator