Partilhar via


Contextos de propriedade

Um contexto de propriedade fornece uma maneira conveniente para um minidriver identificar várias propriedades em que ele está interessado durante a validação dessas propriedades. Usando um contexto de propriedade, um minidriver pode determinar rapidamente se alguma das propriedades identificadas está sendo alterada. Em seguida, o minidriver passa o contexto de propriedade para uma das funções da biblioteca de serviços WIA (por exemplo, wiasGetChangedValueFloat), que usa o contexto para determinar se um aplicativo está alterando o valor de uma propriedade.

A abordagem wia para validação é que, quando um aplicativo altera uma propriedade, todas as propriedades dependentes também devem ser atualizadas. No entanto, se o aplicativo também estiver alterando as propriedades dependentes, você poderá simplesmente marcar a propriedade de nível superior para determinar se seu novo valor é válido. As funções da biblioteca de serviços wia que se preocupam com a validação de propriedade usam esse princípio para decidir quando devem atualizar as propriedades dependentes e quando devem apenas marcar para validação.

O contexto para um conjunto de propriedades é mantido em uma estrutura WIA_PROPERTY_CONTEXT , que contém três membros: o número de propriedades no contexto da propriedade, um ponteiro para uma matriz de PROPIDs (identificadores de propriedade) e um ponteiro para uma matriz de valores BOOL. As matrizes são mantidas em paralelo (ou seja, a propriedade cujo identificador de propriedade está no índice N na matriz do identificador de propriedade está associada ao valor BOOL no mesmo índice na matriz BOOL).

O minidriver chama a função de biblioteca de serviços WIA, wiasCreatePropContext, para alocar memória e preencher os valores de um contexto de propriedade. Outras funções da biblioteca de serviços WIA, como wiasGetChangedValueFloat, usam um contexto de propriedade para determinar quando os valores de uma propriedade devem ser atualizados.