KsPropertyHandler-Funktion (ks.h)
Treiber rufen die KsPropertyHandler-Funktion für die IRP-Behandlung auf.
Syntax
KSDDKAPI NTSTATUS KsPropertyHandler(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet
);
Parameter
[in] Irp
Gibt die IRP an, bei der die Eigenschaftsanforderung verarbeitet wird.
[in] PropertySetsCount
Gibt die Anzahl der übergebenen Eigenschaftensätze an.
[in] PropertySet
Zeigt auf ein Array von KSPROPERTY_SET Strukturen. Der Treiber sollte eine Struktur für jeden Eigenschaftensatz bereitstellen, den KsPropertyHandler verarbeiten soll.
Rückgabewert
Die KsPropertyHandler-Funktion gibt bei erfolgreicher Ausführung STATUS_SUCCESS oder einen fehlerspezifischen Fehler für die zu behandelnde Eigenschaft zurück, wenn der Fehler nicht erfolgreich ist. Die Funktion legt die IRP-IO_STATUS_BLOCK> fest. Informationsmember, entweder durch Festlegen auf null aufgrund eines internen Fehlers oder durch einen Eigenschaftenhandler, der ihn festlegt. Die Funktion legt weder den lrp-IoStatus.Status-Member> fest, noch schließt sie die IRP ab.
Hinweise
KsPropertyHandler reagiert auf alle Eigenschaftenbezeichner, die von den Sätzen definiert werden, und kann nur bei PASSIVE_LEVEL aufgerufen werden.
Jeder KSPROPERTY_SET Eintrag enthält einen Zeiger auf ein Array von KSPROPERTY_ITEM Strukturen im PropertyItem-Element. Für die treiberspezifische Verarbeitung übergibt KsPropertyHandler jede Anforderung an einen der vom Treiber bereitgestellten Rückrufe in PropertyItem. KsPropertyHandler übernimmt die erforderliche IRP-Verarbeitung.
KsPropertyHandler verwendet nicht das FastIoTable-Element seiner KSPROPERTY_SET-Struktur . Wenn der Treiber die schnelle E/A-Verarbeitung von Anforderungen unterstützen muss, sollte dieselbe KSPROPERTY_SET Struktur an die KsFastPropertyHandler-Routine übergeben werden.
Der Besitzer der Eigenschaftssätze kann eine Vor- oder Nachfilterung der Eigenschaftenbehandlung durchführen. Grundlegende Eigenschaftenstrukturzugriffsausnahmen werden von der KsPropertyHandler-Funktion behandelt, obwohl die Bereinigung für bestimmte Ausnahmen vom Eigenschaftenhandler abgedeckt werden muss.
KsPropertyHandler platziert einen Zeiger auf die relevante KSPROPERTY_SET-Struktur im Irp-Tail.Overlay.DriverContext-Parameter> im IRP. Der Minidriver kann das makro KSPROPERTY_SET_IRP_STORAGE verwenden, das in ks.h definiert ist, um auf diesen Zeiger zuzugreifen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ks.h (einschließlich Ks.h) |
Bibliothek | Ks.lib |