Condividi tramite


Metodo INapSystemHealthValidator::Validate

Nota

La piattaforma Protezione accesso alla rete non è disponibile a partire da Windows 10

Il metodo INapSystemHealthValidator::Validate viene definito dallo sviluppatore SHV e chiamato dal sistema NAP per convalidare la richiesta SoHRequest ricevuta da un client.

Sintassi

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

Parametri

richiesta [in]

Puntatore COM a un oggetto INapSystemHealthValidationRequest che identifica l'oggetto richiesta di convalida.

hintTimeOutInMsec [in]

Durata, in millisecondi, del periodo di timeout della comunicazione. Il validator di integrità del sistema (SHV) deve rispondere entro questo periodo di tempo; in caso contrario, la risposta viene eliminata.

Nota

Il timeout predefinito per tutti gli SHV è di 2000 millisecondi. L'uso di un valore diverso da quello predefinito modificherà il timeout per tutti gli SHV registrati.

callback [in]

Puntatore all'oggetto di callback INapServerCallback. Questo puntatore di callback viene usato dagli SHV quando restituiscono E_PENDING dalla chiamata a INapSystemHealthValidator::Validate. Viene usato per la convalida asincrona. È previsto che gli SHV rispondano entro il tempo hintTimeOutInMsec . In caso contrario, la risposta verrà eliminata.

Valore restituito

Se viene restituito un altro codice di errore, il sistema presuppone che si sia verificato un errore serverComponent e che il mapping appropriato venga eseguito per il passaggio/esito negativo.

Codice restituito Descrizione
S_OK
Indica che il validator ha impostato un oggetto SoHResponse sull'oggetto 'request'.
E_PENDING
Indica che OnComplete() verrà chiamato in un thread separato.
RPC_S_SERVER_UNAVAILABLE
Indica che il processo SHV (System Health Validator) è terminato senza che NapServer rilasci effettivamente un riferimento. NapServer tenterà di ricreare un nuovo riferimento a SHV e riesecherà la chiamata Validate una sola volta. Se la creazione dell'oggetto o la convalida riese eseguita ha esito negativo, l'SHV viene rimosso dall'elenco di caricati SHV. L'unico modo in cui questo SHV può ora essere ricaricato è annullare la registrazione e registrare nuovamente il file SHV o quando NapServer viene riavviato

Commenti

Per supportare il rilevamento delle intrusioni, agli SHV verrà chiesto di convalidare il computer client indipendentemente dal fatto che il client abbia inviato un Oggetto SoHRequest destinato a SHV.

L'SHV deve eseguire le operazioni seguenti:

  • Recuperare l'oggetto SoHRequest dalla richiesta chiamando la richiesta. GetSoHRequest().
  • Se il pacchetto SoHRequest è Null:
  • Se napSystemGenerated è TRUE dalla chiamata alla richiesta. GetSoHRequest(), SHV deve prevedere un pacchetto SoH con i 3 VTL seguenti: sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Questa richiesta SoHRequest viene generata da NapAgent per conto dell'agente di integrità del sistema (SHA) perché si è verificato un errore nel recupero di un pacchetto di richiesta da SHA.
  • Convalidare il pacchetto SoHRequest .
    • Se soHRequest non è valido, costruire un pacchetto SoHResponse con codice di errore NAP_E_INVALID_PACKET.
    • Se SHV usa solo informazioni memorizzate nella cache per convalidare il pacchetto SoHRequest (ovvero nessun I/O viene eseguito), può costruire soHResponse, impostarlo sull'oggetto nella richiesta e restituire S_OK.
    • Se SHV esegue operazioni di I/O per comunicare con i server back-end per convalidare l'integrità del client, deve accodare l'I/O e restituire questa funzione con E_PENDING. In questo caso, il servizio SHV deve chiamare il callback. OnComplete() in un thread separato entro il periodo di timeout , hintTimeOutInMsec. In caso contrario, la risposta SHV verrà eliminata.
  • Non restituire altri errori diversi da quelli elencati in precedenza. Se un altro codice di errore viene restituito da SHV (ad esempio, un errore di sistema), il pacchetto verrà eliminato.

Un SHV deve restituire un sohAttributeTypeComplianceResultCodes o sohAttributeTypeFailureCategory TLV nella relativa soHRequest.

L'SHV non deve contenere riferimenti alla richiesta o al callback al termine della chiamata asincrona.

Requisiti

Requisito Valore
Client minimo supportato
Nessuno supportato
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

Vedi anche

INapSystemHealthValidator