Freigeben über


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

Weitere Informationen

KsFastPropertyHandler

KsPropertyHandlerWithAllocator