FwpsFlowAssociateContext0-Funktion (fwpsk.h)
Die FwpsFlowAssociateContext0-Funktion ordnet einen vom Legendentreiber definierten Kontext einem Datenfluss zu.
Syntax
NTSTATUS FwpsFlowAssociateContext0(
[in] UINT64 flowId,
[in] UINT16 layerId,
[in] UINT32 calloutId,
[in] UINT64 flowContext
);
Parameter
[in] flowId
Ein Laufzeitbezeichner, der den Datenfluss angibt, dem der Kontext zugeordnet werden soll. Der Laufzeitbezeichner für einen Datenfluss wird einem Legendentreiber über den FWPS_METADATA_FIELD_FLOW_HANDLE Metadatenwert bereitgestellt, der an die Legendenfunktion klassifizierenFn des Legendentreibers übergeben wurde.
[in] layerId
Der Laufzeitbezeichner für die Filterebene, der der Kontext zugeordnet wird. Der Kontext wird nur der angegebenen Filterebene zugeordnet. Weitere Informationen finden Sie unter Laufzeitfilterung von Ebenenbezeichnern.
[in] calloutId
Der Laufzeitbezeichner für die Beschriftung in der Filter-Engine. Dieser Bezeichner wurde zurückgegeben, als der Legendentreiber die Funktionen FwpsCalloutRegister0, FwpsCalloutRegister1 oder FwpsCalloutRegister2 aufgerufen hat, um die Legende bei der Filter-Engine zu registrieren.
[in] flowContext
Der vom Legendentreiber definierte Kontext, der dem Datenfluss zugeordnet werden soll. Dieser Parameter darf nicht 0 sein. Dieser Kontext ist für die Filter-Engine undurchsichtig.
Rückgabewert
Die FwpsFlowAssociateContext0-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Der Kontext wurde dem Datenfluss erfolgreich zugeordnet. |
|
Entweder ist der flowContext-ParameterNULL oder für die vom Parameter calloutID angegebene Legende ist kein flowDeleteFn registriert. |
|
Dem Datenfluss ist bereits ein Kontext zugeordnet. In diesem Fall sollte ein Legendentreiber zuerst die Funktion FwpsFlowRemoveContext0 aufrufen, um den vorhandenen Kontext zu entfernen, und dann die Funktion FwpsFlowAssociateContext0 erneut aufrufen, um den neuen Kontext dem Datenfluss zuzuordnen. |
|
Ein Fehler ist aufgetreten. |
Hinweise
Beim Filtern eines Datenflusses kann ein Legendentreiber die Funktion FwpsFlowAssociateContext0 aufrufen, um dem Datenfluss einen Kontext zuzuordnen. Anschließend kann dieser Kontext verwendet werden, um alle treiberspezifischen Daten oder Zustandsinformationen zwischen Aufrufen der Filter-Engine an die Legendenfunktion klassifizierenFn für diesen Datenfluss beizubehalten.
Es muss eine Legende in der Filter-Engine auf der Ebene vorhanden sein, die durch den layerId-Parameter identifiziert wurde, der eine flowDeleteFn-Legendenfunktion registriert hat. Andernfalls gibt der Aufruf der Funktion FwpsFlowAssociateContext0 STATUS_INVALID_PARAMETER zurück. Die Filter-Engine ruft diese flowDeleteFn-Beschriftungsfunktion auf, wenn der Flow beendet wird, sodass der Legendentreiber den dem Flow zugeordneten Kontext sauber kann.
Sie können FwpsFlowAssociateContext0 für denselben Flow mehrmals aufrufen. In jedem Aufruf müssen Sie eine andere Beschriftung und einen anderen Kontext angeben– einen Kontext pro hinzugefügter Legende.
Die FwpsFlowAssociateContext0-Funktion verknüpft einen einzelnen Kontext mit einer einzelnen hinzugefügten Legende.
Sie können einem Flow mehrere Kontexte zuordnen. Jedem Kontext muss jedoch eine andere Beschriftung zugeordnet sein. Die neue Legende kann sich auf derselben Ebene wie die vorherige oder auf einer anderen Ebene befinden.
Weitere Informationen und Beispielcode finden Sie unter Zuordnen des Kontexts zu einem Datenfluss und im Windows-Filterplattformbeispiel.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows Vista. |
Zielplattform | Universell |
Header | fwpsk.h (include fwpsk.h) |
Bibliothek | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |
Weitere Informationen
Zuordnen von Kontext zu einem Datenfluss