Contextos de propiedad
Un contexto de propiedad proporciona una manera cómoda de que un minidriver identifique una serie de propiedades en las que está interesado durante la validación de esas propiedades. Con un contexto de propiedad, un minidriver puede determinar rápidamente si se cambia alguna de las propiedades identificadas. A continuación, el minidriver pasa el contexto de propiedad a una de las funciones de la biblioteca de servicios WIA (por ejemplo, wiasGetChangedValueFloat), que usa el contexto para determinar si una aplicación está cambiando el valor de una propiedad.
El enfoque de WIA para la validación es que cuando una aplicación cambia una propiedad, también se deben actualizar las propiedades dependientes. Sin embargo, si la aplicación también cambia las propiedades dependientes, simplemente puede comprobar la propiedad de nivel superior para determinar si su nuevo valor es válido. Las funciones de la biblioteca de servicios WIA que están relacionadas con la validación de propiedades usan este principio para decidir cuándo deben actualizar las propiedades dependientes y cuándo deben comprobar la validez.
El contexto de un conjunto de propiedades se mantiene en una estructura de WIA_PROPERTY_CONTEXT , que contiene tres miembros: el número de propiedades en el contexto de propiedad, un puntero a una matriz de identificadores de propiedad (PROPID) y un puntero a una matriz de valores BOOL. Las matrices se mantienen en paralelo (es decir, la propiedad cuyo identificador de propiedad se encuentra en el índice N de la matriz de identificadores de propiedad está asociada al valor BOOL en el mismo índice de la matriz BOOL).
El minidriver llama a la función de biblioteca de servicios WIA, wiasCreatePropContext, para asignar memoria y rellenar los valores de un contexto de propiedad. Otras funciones de la biblioteca de servicios WIA, como wiasGetChangedValueFloat, usan un contexto de propiedad para determinar cuándo se deben actualizar los valores de una propiedad.