Метод INapSystemHealthValidator::Validate
Примечание
Платформа защиты доступа к сети недоступна, начиная с Windows 10
Метод INapSystemHealthValidator::Validate определяется разработчиком SHV и вызывается системой NAP для проверки SoHRequest , полученного от клиента.
Синтаксис
HRESULT Validate(
[in] INapSystemHealthValidationRequest *request,
[in] UINT32 hintTimeOutInMsec,
[in] INapServerCallback *callback
);
Параметры
-
request [in]
-
Com-указатель на объект INapSystemHealthValidationRequest , идентифицирующий объект запроса на проверку.
-
hintTimeOutInMsec [in]
-
Длительность (в миллисекундах) периода ожидания связи. Проверяющий элемент управления работоспособности системы (SHV) должен ответить в течение этого периода времени; в противном случае ответ удаляется.
Примечание
Время ожидания по умолчанию для всех shv составляет 2000 миллисекунда. Использование значения, отличного от значения по умолчанию, изменит время ожидания для всех зарегистрированных shv.
-
callback [in]
-
Указатель на объект обратного вызова INapServerCallback. Этот указатель обратного вызова используется shvv, когда они возвращают E_PENDING из вызова INapSystemHealthValidator::Validate. Используется для асинхронной проверки. Ожидается, что shv ответит в течение времени hintTimeOutInMsec , в противном случае ответ будет удален.
Возвращаемое значение
Если возвращается какой-либо другой код ошибки, система предполагает, что произошел сбой serverComponent, и выполняется соответствующее сопоставление для передачи или сбоя.
Код возврата | Описание |
---|---|
|
Указывает, что проверяющий элемент управления установил SoHResponse для объекта request. |
|
Указывает, что OnComplete() будет вызываться в отдельном потоке. |
|
Указывает, что процесс средства проверки работоспособности системы (SHV) завершился без фактического освобождения ссылки napServer на него. NapServer попытается повторно создать новую ссылку на SHV и повторно выполнит вызов Validate один раз. Если создание объекта или повторное выполнение проверки завершается сбоем, SHV удаляется из списка загруженных shv. Единственный способ перезагрузить этот SHV — отменить регистрацию и повторно зарегистрировать SHV или при перезапуске NapServer. |
Комментарии
Для поддержки обнаружения вторжений shvs будет предложено проверить клиентский компьютер независимо от того, отправил ли клиент запрос SoHRequest , предназначенный для SHV.
ShV должен выполнять следующие действия.
- Получите SoHRequest из запроса , вызвав запрос. GetSoHRequest().
- Если пакет SoHRequest имеет значение NULL:
- Если SHV является системой обнаружения вторжений, заполните пакет SoHRequest соответствующим кодом ошибки NAP , чтобы узнать, почему клиентский компьютер является вредоносным.
- Все остальные shv должны заполнять пакет SoHRequest кодом ошибки NAP_E_MISSING_SOH.
- Если napSystemGenerated имеет значение TRUE из вызова запроса. GetSoHRequest(), SHV должен ожидать пакет SoH со следующими 3 TLV: sohAttributeTypeHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Этот запрос SoHRequest создается NapAgent от имени агента работоспособности системы (SHA), так как при получении пакета запроса из SHA произошла ошибка.
- Проверьте пакет SoHRequest .
- Если soHRequest имеет неправильный формат, создайте пакет SoHResponse с кодом ошибки NAP_E_INVALID_PACKET.
- Если SHV использует только кэшированные сведения для проверки пакета SoHRequest (т. е. ввода-вывода не выполняется), он может создать SoHResponse, задать его для объекта в запросе и вернуть S_OK.
- Если shv выполняет операции ввода-вывода для взаимодействия со своими внутренними серверами для проверки работоспособности клиента, то оно должно поместить операции ввода-вывода в очередь и вернуть эту функцию с E_PENDING. В этом случае SHV должен вызвать обратный вызов. OnComplete() в отдельном потоке в течение периода ожидания, hintTimeOutInMsec. В противном случае ответ SHV будет удален.
- Не возвращайте никаких ошибок, отличных от перечисленных выше. Если shv возвращает какой-либо другой код ошибки (например, некоторая системная ошибка), пакет будет удален.
ShV должен возвращать sohAttributeTypeComplianceResultCodes или sohAttributeTypeFailureCategory TLV в своем SoHRequest.
- sohAttributeTypeComplianceResultCodes TLV: если SHV может проверить работоспособность клиента (т. е. работоспособную или неработоспособную), возвращается этот TLV.
- sohAttributeTypeFailureCategory TLV: если на клиенте или сервере произошел сбой компонента или связи, он должен быть указан в этом TLV. Этот TLV будет дополнительно сопоставлен с работоспособным или неработоспособным в зависимости от конфигурации SHV. Дополнительные сведения см. в статье Интерфейс INapServerManagement и структура FailureCategoryMapping .
ShV не должен содержать ссылки на запрос или обратный вызов после завершения асинхронного вызова.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Ни одна версия не поддерживается |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
IDL |
|