Share via


Méthode INapSystemHealthValidator::Validate

Notes

La plateforme protection de l’accès réseau n’est pas disponible à partir de Windows 10

La méthode INapSystemHealthValidator::Validate est définie par le développeur SHV et appelée par le système NAP pour valider le SoHRequest reçu d’un client.

Syntaxe

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

Paramètres

request [in]

Pointeur COM vers un objet INapSystemHealthValidationRequest qui identifie l’objet de demande de validation.

hintTimeOutInMsec [in]

Durée, en millisecondes, de la période de délai d’expiration de la communication. Le validateur d’intégrité du système (SHV) doit répondre dans ce délai ; sinon, la réponse est supprimée.

Notes

Le délai d’attente par défaut pour tous les SMV est de 2 000 millisecondes. L’utilisation d’une valeur autre que la valeur par défaut modifie le délai d’expiration pour tous les shVs inscrits.

rappel [in]

Pointeur vers l’objet de rappel INapServerCallback. Ce pointeur de rappel est utilisé par les SMV lorsqu’ils retournent E_PENDING à partir de l’appel à INapSystemHealthValidator::Validate. Il est utilisé pour la validation asynchrone. Les shVs sont censés répondre dans le délai de hintTimeOutInMsec , sinon la réponse sera supprimée.

Valeur retournée

Si un autre code d’erreur est retourné, le système suppose que l’échec de serverComponent s’est produit et que le mappage approprié est effectué pour passer/échouer.

Code de retour Description
S_OK
Indique que le validateur a défini une SoHResponse sur l’objet « request ».
E_PENDING
Indique que OnComplete() sera appelé sur un thread distinct.
RPC_S_SERVER_UNAVAILABLE
Indique que le processus du validateur d’intégrité du système (SHV) s’est terminé sans que NapServer publie réellement une référence à celui-ci. NapServer essaiera de recréer une référence au SHV et réexécutera l’appel Validate une fois. Si la création de l’objet ou le validate réexécuté échoue, le SHV est supprimé de la liste des SMV chargés. La seule façon de recharger ce SHV consiste à désinscrire et à réinscrire le SHV, ou lorsque napServer redémarre

Notes

Pour prendre en charge la détection des intrusions, les SVM sont invités à valider l’ordinateur client, que le client ait ou non envoyé ou non une soHRequest destinée au SHV.

Le SHV doit effectuer les opérations suivantes :

  • Récupérez le SoHRequest à partir de la demande en appelant la demande. GetSoHRequest().
  • Si le paquet SoHRequest a la valeur Null :
  • Si napSystemGenerated a la valeurTRUE à partir de l’appel à la demande. GetSoHRequest(), le SHV doit s’attendre à un paquet SoH avec les 3 TTLVs suivantes : sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Cette soHRequest est générée par NapAgent pour le compte de l’agent d’intégrité du système (SHA) car une erreur s’est produite lors de la récupération d’un paquet de requête à partir du SHA.
  • Validez le paquet SoHRequest .
    • Si la requête SoHRequest est incorrecte, construisez un paquet SoHResponse avec le code d’erreur NAP_E_INVALID_PACKET.
    • Si le SHV utilise uniquement les informations mises en cache pour valider le paquet SoHRequest (c’est-à-dire qu’aucune E/S n’est effectuée), il peut construire le SoHResponse, le définir sur l’objet dans la demande et retourner S_OK.
    • Si le SHV effectue des E/S afin de communiquer avec ses serveurs principaux pour valider l’intégrité du client, il doit mettre en file d’attente les E/S et renvoyer cette fonction avec E_PENDING. Dans ce cas, le SHV doit rappeler le rappel. OnComplete() sur un thread distinct dans le délai d’expiration, hintTimeOutInMsec. Dans le cas contraire, la réponse du SHV sera supprimée.
  • Ne retournez aucune autre erreur que celles répertoriées ci-dessus. Si un autre code d’erreur est retourné par le SHV (par exemple, une erreur système), le paquet est ignoré.

Un SHV doit retourner un TLV sohAttributeTypeComplianceResultCodes ou sohAttributeTypeFailureCategory dans son SoHRequest.

Le SHV ne doit pas contenir de références à la demande ou au rappel une fois l’appel asynchrone terminé.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Aucun pris en charge
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

Voir aussi

INapSystemHealthValidator