Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Eigenschaft stellt eine Funktions- oder Steuerelementstatuseinstellung dar, die zu einem Kernelstreamingobjekt gehört, z. B. einen Filter oder einen Pin. Clienten eines Kernel-Streaming-Minidrivers können Eigenschaftsabfrage- und -festlegungsanforderungen (KSPROPERTY_TYPE_GET und KSPROPERTY_TYPE_SET) an die Filter und Pins übermitteln, die der Minidriver instanziiert hat. Eine Gruppe verwandter Eigenschaften wird als Eigenschaftensatz bezeichnet.
Um einzelne Eigenschaften abzurufen oder festzulegen, rufen Benutzermodusclients die Win32-Funktion DeviceIoControl auf, wobei der dwIoControlCode-Parameter auf IOCTL_KS_PROPERTY festgelegt ist. DeviceIoControl wird in der Microsoft Windows SDK-Dokumentation beschrieben. Kernelmodusclients sollten KsSynchronousDeviceControl aufrufen.
Der Eingabepuffer ist entweder eine KSPROPERTY-Struktur oder ein Wrapper mit einer KSPROPERTY-Struktur und anderen für die Anforderung relevanten Informationen. Als Reaktion auf diesen Aufruf verteilt das Betriebssystem ein IRP an den Klassentreiber.
Wenn der Klassentreiber das resultierende IRP empfängt, ruft er KsPropertyHandler auf. Der Klassentreiber enthält als Aufrufparameter die Adresse der KSPROPERTY-Struktur, die die Besonderheiten der Eigenschaftsanforderung identifiziert. Die Eigenschaftsanforderung wird entweder automatisch auf Klassentreiberebene oder von einem vom Minidriver bereitgestellten Handler behandelt. Unter Kernel Streaming Property Sets finden Sie Referenzinformationen, einschließlich der Eigenschaftensätze, die vom Klassentreiber behandelt werden und für die minidriver-bereitgestellte Handler erforderlich sind. Ein Minidriver kann den Klassentreiber-Handler überschreiben oder erweitern, indem Callbacks für eine Eigenschaft implementiert werden, die standardmäßig vom Klassentreiber behandelt wird.
Wenn der Minidriver Handler für diese Eigenschaft bereitgestellt hat, leitet KsPropertyHandler die Anforderung an den vom Minidriver bereitgestellten entsprechenden Rückruf weiter.
Ein Minidriver stellt Zeiger auf seine Eigenschaftsunterstützungs-Callbacks in einer Struktur vom Typ KSPROPERTY_ITEM bereit. Ein Minidriver gruppiert ein Array verwandter KSPROPERTY_ITEM Strukturen in einer KSPROPERTY_SET Struktur. Verschiedene Klassentreibermodelle haben geringfügig unterschiedliche Methoden, wie der Minidriver Eigenschaftensatzdaten für den Klassentreiber verfügbar macht. Sie finden klassentreiberspezifische Informationen, indem Sie den Links im Kernelstreaming folgen.
Der Minidriver stellt auch einen Zeiger auf eine KSPROPERTY_VALUES Struktur in einer KSPROPERTY_ITEM Struktur bereit. Die KSPROPERTY_VALUES Struktur enthält wiederum ein Array von KSPROPERTY_MEMBERSLIST Strukturen. Hier gibt der Minidriver die Größe und den Typ der zulässigen Werte für die Eigenschaft an. Jede KSPROPERTY_MEMBERSLIST-Struktur enthält ein Header-Element: Weitere Informationen, wie Sie gesetzliche Bereiche oder Werte für eine Eigenschaft angeben, die Ihr Minidriver unterstützt, finden Sie unter KSPROPERTY_MEMBERSHEADER. Sie finden auch eine Implementierung dieses Mechanismus im Testcap-Beispiel im Microsoft Windows Driver Kit (WDK).
Um die Größe und den Typ zulässiger Werte für eine Eigenschaft zu melden, gibt der Klassentreiber eine KSPROPERTY_DESCRIPTION Struktur als Reaktion auf eine KSPROPERTY_TYPE_BASICSUPPORT Anforderung vom Client zurück.
Der Klassentreiber kann eine Liste von KSPROPERTY_MEMBERSHEADER Strukturen an die KSPROPERTY_DESCRIPTION Struktur anfügen.