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 |