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 |
|---|---|
|
Gibt an, dass das Validierungsobjekt eine SoHResponse für das Request-Objekt festgelegt hat. |
|
Gibt an, dass OnComplete() in einem separaten Thread aufgerufen wird. |
|
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 es sich bei der SHV um ein Angriffserkennungssystem handelt, füllen Sie ein SoHRequest-Paket mit dem entsprechenden NAP-Fehlercode auf, um zu sehen, warum der Clientcomputer böswillig ist.
- Alle anderen SHVs sollten ein SoHRequest-Paket mit dem Fehlercode NAP E MISSING _ _ _ SOH auffüllen.
- 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.
- sohAttributeTypeComplianceResultCodes TLV:Wenn die SHV die Integrität des Clients überprüfen könnte (d. h. fehlerfrei oder fehlerhaft), wird dieser TLV zurückgegeben.
- sohAttributeTypeFailureCategory TLV:Wenn auf dem Client oder Server ein Komponenten- oder Kommunikationsfehler vorgefertigt wurde, muss dies von diesem TLV angegeben werden. Dieser TLV wird je nach Konfiguration des SHV weiter fehlerfrei oder fehlerhaft zugeordnet. Weitere Informationen finden Sie unter der INapServerManagement-Schnittstelle und der FailureCategoryMapping-Struktur.
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 |
|
| IDL |
|