INapSystemHealthValidator::Validate 메서드

참고

네트워크 액세스 보호 플랫폼은 Windows 10 시작해서 사용할 수 없습니다.

INapSystemHealthValidator::Validate 메서드는 SHV 개발자가 정의하고 NAP 시스템에서 호출하여 클라이언트에서 받은 SoHRequest의 유효성을 검사합니다.

구문

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

매개 변수

request [in]

유효성 검사 요청 개체를 식별하는 INapSystemHealthValidationRequest 개체에 대한 COM 포인터입니다.

hintTimeOutInMsec [in]

통신 시간 제한 기간의 기간(밀리초)입니다. SHV(시스템 상태 유효성 검사기)는 이 시간 내에 응답해야 합니다. 그렇지 않으면 응답이 삭제됩니다.

참고

모든 SHV의 기본 시간 제한은 2000밀리초입니다. 기본값이 아닌 값을 사용하면 등록된 모든 SHV에 대한 시간 제한이 변경됩니다.

콜백 [in]

콜백 개체 INapServerCallback에 대한 포인터입니다. 이 콜백 포인터는 INapSystemHealthValidator::Validate 호출에서 E_PENDING 반환할 때 SHV에서 사용됩니다. 비동기 유효성 검사에 사용됩니다. SHV는 hintTimeOutInMsec 시간 내에 응답해야 합니다. 그렇지 않으면 응답이 삭제됩니다.

반환 값

다른 오류 코드가 반환되면 시스템은 serverComponent 오류가 발생했으며 전달/실패를 위해 적절한 매핑이 수행된다고 가정합니다.

반환 코드 Description
S_OK
유효성 검사기가 'request' 개체에 대해 SoHResponse를 설정했음을 나타냅니다.
E_PENDING
OnComplete()가 별도의 스레드에서 호출됨을 나타냅니다.
RPC_S_SERVER_UNAVAILABLE
NapServer가 실제로 참조를 해제하지 않고 SHV(시스템 상태 유효성 검사기) 프로세스가 종료되었음을 나타냅니다. NapServer는 SHV에 대한 새 참조를 다시 만들려고 시도하고 유효성 검사 호출을 한 번 다시 실행합니다. 개체를 만들거나 다시 실행된 유효성 검사에 실패하면 로드된 SHV 목록에서 SHV가 제거됩니다. 이제 이 SHV를 다시 로드할 수 있는 유일한 방법은 SHV의 등록을 취소하고 다시 등록하거나 NapServer가 다시 시작될 때입니다.

설명

침입 검색을 지원하기 위해 SHV는 클라이언트가 SHV용 SoHRequest 를 보냈는지 여부에 관계없이 클라이언트 컴퓨터의 유효성을 검사하라는 메시지가 표시됩니다.

SHV는 다음을 수행해야 합니다.

  • 요청을 호출하여 요청에서 SoHRequest검색합니다. GetSoHRequest().
  • SoHRequest 패킷이 null인 경우:
  • napSystemGenerated가 요청 호출에서 TRUE인 경우 GetSoHRequest(), SHV는 sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes 등 3개의 LLV가 있는 SoH 패킷을 예상해야 합니다. SHA에서 요청 패킷을 검색하는 동안 오류가 발생했기 때문에 이 SoHRequest 는 SHA(시스템 상태 에이전트)를 대신하여 NapAgent에 의해 생성됩니다.
  • SoHRequest 패킷의 유효성을 검사합니다.
    • SoHRequest의 형식이 잘못된 경우 오류 코드가 NAP_E_INVALID_PACKETSoHResponse 패킷을 생성합니다.
    • SHV가 캐시된 정보만 사용하여 SoHRequest 패킷의 유효성을 검사하는 경우(즉, I/O가 수행되지 않음) SoHResponse를 생성하고 요청 시 개체에 설정하고 S_OK 반환할 수 있습니다.
    • SHV가 클라이언트의 상태를 확인하기 위해 백 엔드 서버와 통신하기 위해 I/O를 수행하는 경우 I/O를 큐에 대기하고 E_PENDING 이 함수를 반환해야 합니다. 이 경우 SHV는 콜백을 호출해야 합니다 . 시간 제한 기간 내의 별도 스레드에 대한 OnComplete() hintTimeOutInMsec입니다. 그렇지 않으면 SHV의 응답이 삭제됩니다.
  • 위에 나열된 오류 이외의 다른 오류는 반환하지 마세요. SHV에서 다른 오류 코드가 반환되면(예: 일부 시스템 오류) 패킷이 삭제됩니다.

SHV는 SoHRequest에서 sohAttributeTypeComplianceResultCodes 또는 sohAttributeTypeFailureCategory TLV를 반환해야 합니다.

비동기 호출이 완료되면 SHV는 요청 또는 콜백 에 대한 참조를 보유해서는 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
지원되는 버전 없음
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱만 해당]
헤더
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

추가 정보

INapSystemHealthValidator