KsPropertyHandler-Funktion (ks.h)
Treiber rufen 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 das IRP an, wobei die Eigenschaftsanforderung verarbeitet wird.
[in] PropertySetsCount
Gibt die Anzahl der übergebenen Eigenschaftensätze an.
[in] PropertySet
Verweist auf ein Array von KSPROPERTY_SET Strukturen. Der Treiber sollte für jeden Eigenschaftensatz eine Struktur bereitstellen, die von KsPropertyHandler behandelt werden soll.
Rückgabewert
Die KsPropertyHandler--Funktion gibt STATUS_SUCCESS bei erfolgreicher Ausführung oder einen Fehler zurück, der für die Eigenschaft, die behandelt wird, wenn dies nicht erfolgreich ist. Die Funktion legt den IRP-->IO_STATUS_BLOCKfest. Informationselement, entweder durch Festlegen auf Null aufgrund eines internen Fehlers oder durch festlegen eines Eigenschaftenhandlers. Die Funktion legt das Element "lrp->IoStatus.Status" nicht fest und schließt das IRP nicht ab.
Bemerkungen
KsPropertyHandler antwortet 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 innerhalb von PropertyItem. KsPropertyHandler kümmert sich um jede 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 Eigenschaftensätze kann eine Vorfilterung oder Nachfilterung der Eigenschaftenbehandlung durchführen. Grundlegende Ausnahmen für den Eigenschaftenstrukturzugriff werden vom KsPropertyHandler Funktion behandelt, wobei die Bereinigung für bestimmte Ausnahmen vom Eigenschaftenhandler abgedeckt werden muss.
KsPropertyHandler platziert einen Zeiger auf die relevante KSPROPERTY_SET Struktur in der Irp->Tail.Overlay.DriverContext Parameter im IRP. Der Minidriver kann das KSPROPERTY_SET_IRP_STORAGE Makro verwenden, das in ks.h-definiert ist, um auf diesen Zeiger zuzugreifen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ks.h (enthalten Ks.h) |
Library | Ks.lib |