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 |