Compartir a través de


INapSystemHealthValidator::Validate (método)

Nota

La plataforma protección de acceso a redes no está disponible a partir de Windows 10

El desarrollador de SHV define el método INapSystemHealthValidator::Validate y lo llama el sistema NAP para validar el SoHRequest recibido de un cliente.

Sintaxis

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

Parámetros

request [in]

Puntero COM a un objeto INapSystemHealthValidationRequest que identifica el objeto de solicitud de validación.

hintTimeOutInMsec [in]

Duración, en milisegundos, del período de tiempo de espera de comunicación. El validador de estado del sistema (SHV) debe responder dentro de este período de tiempo; de lo contrario, se quita la respuesta.

Nota

El tiempo de espera predeterminado para todos los SHV es de 2000 milisegundos. El uso de un valor distinto del valor predeterminado cambiará el tiempo de espera de todos los SHV registrados.

devolución de llamada [in]

Puntero al objeto de devolución de llamada INapServerCallback. Los SHV usan este puntero de devolución de llamada cuando devuelven E_PENDING de la llamada a INapSystemHealthValidator::Validate. Se usa para la validación asincrónica. Se espera que los SHV respondan dentro de la hora hintTimeOutInMsec o, de lo contrario, se quitará la respuesta.

Valor devuelto

Si se devuelve cualquier otro código de error, el sistema supone que se ha producido un error serverComponent y la asignación adecuada se realiza para pasar o producir un error.

Código devuelto Descripción
S_OK
Indica que el validador ha establecido un SoHResponse en el objeto 'request'.
E_PENDING
Indica que se llamará a OnComplete() en un subproceso independiente.
RPC_S_SERVER_UNAVAILABLE
Indica que el proceso validador de estado del sistema (SHV) finalizó sin que NapServer libere realmente una referencia a él. NapServer intentará volver a crear una nueva referencia al SHV y volverá a ejecutar la llamada Validate una vez. Si se produce un error en la creación del objeto o la validación ejecutada de nuevo, el SHV se quita de la lista de SHV cargados. La única manera en que se puede volver a cargar este SHV ahora es anular el registro y volver a registrar el SHV, o cuando se reinicia NapServer.

Observaciones

Para admitir la detección de intrusiones, se pedirá a los SHV que validen la máquina cliente independientemente de si el cliente envió un SoHRequest destinado al SHV.

El SHV debe hacer lo siguiente:

  • Recupere soHRequest de la solicitud mediante una llamada a la solicitud. GetSoHRequest().
  • Si el paquete SoHRequest es null:
  • Si napSystemGenerated es TRUE desde la llamada a la solicitud. GetSoHRequest(), el SHV debe esperar un paquete SoH con los siguientes 3 TLV: sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. NapAgent genera este SoHRequest en nombre del Agente de mantenimiento del sistema (SHA) ya que se produjo un error al recuperar un paquete de solicitud del SHA.
  • Valide el paquete SoHRequest .
    • Si soHRequest tiene un formato incorrecto, construya un paquete SoHResponse con código de error NAP_E_INVALID_PACKET.
    • Si el SHV solo usa información almacenada en caché para validar el paquete SoHRequest (es decir, no se realiza ninguna E/S), puede construir el SoHResponse, establecerlo en el objeto en la solicitud y devolver S_OK.
    • Si el SHV realiza E/S para comunicarse con sus servidores back-end para validar el estado del cliente, debe poner en cola la E/S y devolver esta función con E_PENDING. En este caso, el SHV debe llamar a la devolución de llamada. OnComplete() en un subproceso independiente dentro del período de tiempo de espera, hintTimeOutInMsec. De lo contrario, se quitará la respuesta del SHV.
  • No devuelva ningún otro error distinto de los enumerados anteriormente. Si el SHV devuelve cualquier otro código de error (por ejemplo, algún error del sistema), el paquete se descartará.

Un SHV debe devolver un sohAttributeTypeComplianceResultCodes o sohAttributeTypeFailureCategory TLV en su SoHRequest.

El SHV no debe contener referencias a la solicitud o devolución de llamada una vez completada la llamada asincrónica.

Requisitos

Requisito Value
Cliente mínimo compatible
No se admite ninguno
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

Vea también

INapSystemHealthValidator