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 |
---|---|
|
Indica que el validador ha establecido un SoHResponse en el objeto 'request'. |
|
Indica que se llamará a OnComplete() en un subproceso independiente. |
|
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 el SHV es un sistema de detección de intrusiones, rellene un paquete SoHRequest con el código de error NAP adecuado para por qué la máquina cliente es malintencionada.
- Todos los demás SHV deben rellenar un paquete SoHRequest con un código de error de NAP_E_MISSING_SOH.
- 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.
- sohAttributeTypeComplianceResultCodes TLV: si el SHV podría validar el estado del cliente (es decir, correcto o incorrecto), se devuelve este TLV.
- sohAttributeTypeFailureCategory TLV: si se produjo algún error de comunicación o componente en el cliente o servidor, este TLV debe indicarlo. Este TLV se asignará aún más a correcto o incorrecto en función de la configuración de SHV. Para obtener más información, consulte la interfaz INapServerManagement y la estructura FailureCategoryMapping .
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 |
|
IDL |
|