INapSystemHealthValidator::Validate-Methode
Hinweis
Die Netzwerkzugriffsschutzplattform ist ab 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 Kommunikationstimeoutzeitraums in Millisekunden. Die Systemintegritätsprüfung (System Health Validator, SHV) sollte innerhalb dieser Zeit reagieren. andernfalls wird die Antwort gelöscht.
Hinweis
Das Standardtimeout für alle SHVs beträgt 2000 Millisekunden. Wenn Sie einen anderen Wert als den Standardwert verwenden, wird das Timeout für alle registrierten SHVs geändert.
-
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 reagieren, andernfalls wird die Antwort gelöscht.
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/fehlschlagen.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Gibt an, dass der Validierungsgeber ein SoHResponse-Objekt für das Objekt "request" 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 den SHV neu zu erstellen, und führt den Validate-Aufruf einmal erneut aus. Wenn die Erstellung des Objekts oder die erneut ausgeführte Überprüfung fehlschlägt, wird der SHV aus der Liste der geladenen SHVs entfernt. Die einzige Möglichkeit, diese SHV neu zu laden, besteht darin, die Registrierung aufzuheben und den SHV erneut zu registrieren, oder wenn der NapServer neu gestartet wird. |
Bemerkungen
Um die Erkennung von Eindringversuchen zu unterstützen, werden SHVs aufgefordert, den Clientcomputer zu überprüfen, unabhängig davon, ob der Client eine soHRequest gesendet hat, die für den SHV vorgesehen ist.
Der 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 System zur Erkennung von Eindringversuchen handelt, füllen Sie ein SoHRequest-Paket mit dem entsprechenden NAP-Fehlercode aus, warum der Clientcomputer böswillig ist.
- Alle anderen SHVs sollten ein SoHRequest-Paket mit dem Fehlercode NAP_E_MISSING_SOH auffüllen.
- Wenn napSystemGeneratedtrue aus dem Aufruf der Anforderung ist. GetSoHRequest(), sollte der SHV ein SoH-Paket mit den folgenden 3 TLVs erwarten: sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Diese SoHRequest wird vom NapAgent im Auftrag des SystemIntegritäts-Agents (SHA) generiert, da beim Abrufen eines Anforderungspakets aus dem SHA ein Fehler aufgetreten ist.
- Überprüfen Sie das SoHRequest-Paket .
- Wenn die SoHRequest falsch formatiert ist, erstellen Sie ein SoHResponse-Paket mit dem Fehlercode NAP_E_INVALID_PACKET.
- Wenn der SHV nur zwischengespeicherte Informationen verwendet, um das SoHRequest-Paket zu überprüfen (d. h. es wird keine E/A ausgeführt), kann er die SoHResponse erstellen, für das Objekt in der Anforderung festlegen und S_OK zurückgeben.
- Wenn der SHV E/A ausführt, um mit seinen Back-End-Servern zu kommunizieren, um die Integrität des Clients zu überprüfen, muss er die E/A in die Warteschlange stellen und diese Funktion mit E_PENDING zurückgeben. In diesem Fall muss der SHV den Rückruf aufrufen. OnComplete() für einen separaten Thread innerhalb des Timeoutzeitraums , hinweistTimeOutInMsec. Andernfalls wird die Antwort des SHV gelöscht.
- Geben Sie keinen anderen Als die oben aufgeführten Fehler zurück. Wenn ein anderer Fehlercode vom SHV zurückgegeben wird (z. B. ein Systemfehler), wird das Paket verworfen.
Ein SHV muss entweder einen sohAttributeTypeComplianceResultCodes oder einen sohAttributeTypeFailureCategory-TLV in seiner SoHRequest zurückgeben.
- sohAttributeTypeComplianceResultCodes TLV: Wenn der SHV die Integrität des Clients überprüfen konnte (d. h. fehlerfrei oder fehlerhaft), wird diese TLV zurückgegeben.
- sohAttributeTypeFailureCategory TLV: Wenn eine Komponente oder ein Kommunikationsfehler auf dem Client oder Server aufgetreten ist, muss dies von diesem TLV angegeben werden. Dieser TLV wird je nach Konfiguration des SHV weiterhin fehlerfrei oder fehlerhaft zugeordnet. Weitere Informationen finden Sie unter der INapServerManagement-Schnittstelle und der FailureCategoryMapping-Struktur .
Der SHV darf keine Verweise auf Anforderung oder Rückruf enthalten, sobald der asynchrone Aufruf abgeschlossen ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Nicht unterstützt |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|
IDL |
|