Eigenschaftenkontexte
Ein Eigenschaftskontext bietet einem Minitreiber eine bequeme Möglichkeit, eine Reihe von Eigenschaften zu identifizieren, an denen er während der Validierung dieser Eigenschaften interessiert ist. Mithilfe eines Eigenschaftenkontexts kann ein Minitreiber schnell ermitteln, ob eine der identifizierten Eigenschaften geändert wird. Der Minidriver übergibt dann den Eigenschaftenkontext an eine der WIA-Dienstbibliotheksfunktionen (z. B. wiasGetChangedValueFloat), die den Kontext verwendet, um zu bestimmen, ob eine Anwendung den Wert einer Eigenschaft ändert.
Der WIA-Ansatz für die Validierung besteht darin, dass, wenn eine Anwendung eine Eigenschaft ändert, auch alle abhängigen Eigenschaften aktualisiert werden sollen. Wenn die Anwendung jedoch auch abhängige Eigenschaften ändert, können Sie einfach die Eigenschaft der obersten Ebene überprüfen, um zu ermitteln, ob der neue Wert gültig ist. Die WIA-Dienstbibliotheksfunktionen, die sich mit der Eigenschaftsvalidierung befassen, verwenden dieses Prinzip, um zu entscheiden, wann sie abhängige Eigenschaften aktualisieren und wann sie nur auf Gültigkeit überprüfen sollen.
Der Kontext für einen Satz von Eigenschaften wird in einer WIA_PROPERTY_CONTEXT-Struktur verwaltet, die drei Member enthält: die Anzahl der Eigenschaften im Eigenschaftenkontext, einen Zeiger auf ein Array von Eigenschaftenbezeichnern (PROPIDs) und einen Zeiger auf ein Array von BOOL-Werten. Die Arrays werden parallel verwaltet (d. a. die Eigenschaft, deren Eigenschaftsbezeichner beim Index N im Eigenschaftenbezeichnerarray liegt, wird dem BOOL-Wert am gleichen Index im BOOL-Array zugeordnet).
Der Minidriver ruft die WIA-Dienstbibliotheksfunktion wiasCreatePropContext auf, um Arbeitsspeicher zuzuweisen und die Werte für einen Eigenschaftskontext auszufüllen. Andere WIA-Dienstbibliotheksfunktionen, z. B. wiasGetChangedValueFloat, verwenden einen Eigenschaftskontext, um zu bestimmen, wann die Werte einer Eigenschaft aktualisiert werden sollen.