INapSystemHealthValidator::Validate-Methode

Hinweis

Die Netzwerkzugriffsschutz-Plattform ist ab dem Windows 10

Die INapSystemHealthValidator::Validate-Methode wird vom SHV-Entwickler definiert und vom NAP-System aufgerufen, um die von einem Client empfangene SoHRequest zu überprüfen.

Syntax

HRESULT Validate(
  [in] INapSystemHealthValidationRequest *request,
  [in] UINT32                            hintTimeOutInMsec,
  [in] INapServerCallback                *callback
);

Parameter

Anforderung [ In]

Ein COM-Zeiger auf ein INapSystemHealthValidationRequest-Objekt, das das Validierungsanforderungsobjekt identifiziert.

hintTimeOutInMsec [ In]

Die Dauer des Kommunikationszeitüberschreitungszeitraums in Millisekunden. Das System health Validator (SHV) sollte innerhalb dieses Zeitbereichs antworten. Andernfalls wird die Antwort gelöscht.

Hinweis

Das Standard-Timeout für alle SHVs beträgt 2.000 Millisekunden. Wenn Sie einen anderen Wert als den Standardwert verwenden, ändert sich das Timeout für alle registrierten SHVs.

Rückruf [ In]

Ein Zeiger auf das Rückrufobjekt INapServerCallback. Dieser Rückrufzeiger wird von den SHVs verwendet, wenn sie E _ PENDING aus dem Aufruf von INapSystemHealthValidator::Validate zurückgeben. Dies wird für die asynchrone Validierung verwendet. Es wird erwartet, dass die SHVs innerhalb der hintTimeOutInMsec-Zeit antworten, da die Antwort sonst gelöscht wird.

Rückgabewert

Wenn ein anderer Fehlercode zurückgegeben wird, geht das System davon aus, dass serverComponent-Fehler aufgetreten ist, und die entsprechende Zuordnung erfolgt, um zu bestehen/zu fehlschlagen.

Rückgabecode Beschreibung
S _ OK
Gibt an, dass das Validierungsobjekt eine SoHResponse für das Request-Objekt festgelegt hat.
E _ AUSSTEHEND
Gibt an, dass OnComplete() in einem separaten Thread aufgerufen wird.
_ _ RPC-S-SERVER _ NICHT VERFÜGBAR
Gibt an, dass der ShV-Prozess (System Health Validator) beendet wurde, ohne dass der NapServer tatsächlich einen Verweis darauf freigibt. Der NapServer versucht, einen neuen Verweis auf die SHV neu zu erstellen und den Validate-Aufruf einmal erneut aus. Wenn die Erstellung des Objekts oder die erneut ausgeführte Überprüfung fehlschlägt, wird die SHV aus der Liste der geladenen SHVs entfernt. Die einzige Möglichkeit, diese SHV jetzt erneut zu laden, besteht im Aufheben der Registrierung und erneuten Registrierung der SHV oder beim Neustart des NapServers.

Bemerkungen

Um die Angriffserkennung zu unterstützen, werden SHVs aufgefordert, den Clientcomputer unabhängig davon zu überprüfen, ob der Client eine für die SHV vorgesehene SoHRequest gesendet hat.

Die SHV muss Folgendes tun:

  • Rufen Sie die SoHRequest aus der Anforderung ab, indem Sie die Anforderung aufrufen. GetSoHRequest().
  • Wenn das SoHRequest-Paket NULL ist:
  • Wenn napSystemGenerated vom Aufruf an die Anforderung true ist. GetSoHRequest(), sollte die SHV ein SoH-Paket mit den folgenden drei TLVs erwarten: sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Diese SoHRequest wird vom NapAgent im Auftrag des System health-Agents (SHA) generiert, da beim Abrufen eines Anforderungspakets aus dem SHA ein Fehler aufgetreten ist.
  • Überprüfen Sie das SoHRequest-Paket.
    • Wenn soHRequest falsch formatiert ist, erstellen Sie ein SoHResponse-Paket mit dem Fehlercode NAP E INVALID _ _ _ PACKET.
    • Wenn die SHV nur zwischengespeicherte Informationen verwendet, um das SoHRequest-Paket zu überprüfen (d. h., es wird keine E/A ausgeführt), kann sie soHResponse erstellen, sie für das Objekt in der Anforderung festlegen und S OK _ zurückgeben.
    • Wenn die SHV E/A-Aufgaben für die Verbindung mit den Back-End-Servern zur Überprüfung der Clientzustandsfunktion vorsendet, muss die SHV die E/A in die Warteschlange stellen und diese Funktion mit E _ PENDING zurückgeben. In diesem Fall muss die SHV rückrufen. OnComplete() in einem separaten Thread innerhalb des Timeoutzeitraums, hintTimeOutInMsec. Andernfalls wird die Antwort der SHV gelöscht.
  • Geben Sie keinen anderen Fehler als die oben aufgeführten zurück. Wenn ein anderer Fehlercode von der SHV zurückgegeben wird (z. B. einige Systemfehler), wird das Paket verworfen.

Eine SHV muss entweder einen sohAttributeTypeComplianceResultCodes oder sohAttributeTypeFailureCategory TLV in seiner SoHRequest zurückgeben.

Die SHV darf keine Verweise auf Anforderungen oder Rückrufe enthalten, sobald der asynchrone Aufruf abgeschlossen ist.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Nicht unterstützt
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2008-Desktop-Apps]
Header
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

Weitere Informationen

INapSystemHealthValidator