Freigeben über


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
S_OK
Gibt an, dass der Validierungsgeber ein SoHResponse-Objekt für das Objekt "request" festgelegt hat.
E_PENDING
Gibt an, dass OnComplete() in einem separaten Thread aufgerufen wird.
RPC_S_SERVER_UNAVAILABLE
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 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.

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
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

Siehe auch

INapSystemHealthValidator