다음을 통해 공유


PSHED Plug-In 의해 수행되는 PFA

플랫폼별 PSHED(하드웨어 오류 드라이버) 플러그 인은 ECC 메모리에서 PFA(예측 오류 분석)를 수행할 수 있습니다. 이 경우 WHEA가 아닌 플러그 인이 ECC 메모리 페이지를 모니터링해야 합니다. 플러그 인에서 ECC 메모리 페이지가 오류 임계값을 초과했다고 판단하면 이 상태 WHEA로 표시됩니다. 그런 다음, WHEA는 메모리 페이지를 오프라인으로 전환하려고 시도합니다.

참고 PSHED 플러그 인이 PFA를 수행하고 레지스트리를 사용하여 오류 임계값 및 모니터링 시간 제한과 같은 구성 설정을 저장하는 경우 WHEA 정책 설정에 설명된 WHEA PFA 구성 설정을 사용하거나 사용하지 않아야 합니다.

ECC 메모리 오류가 발생하면 WHEA 및 플러그 인은 다음 단계를 수행합니다.

  1. LLHEH(하위 수준 하드웨어 오류 처리기)는 메모리 오류 조건의 존재에 대한 알림을 받습니다.

  2. LLHEH는 오류 원본에서 메모리 오류에 대한 정보를 검색하고 오류 데이터를 사용하여 하드웨어 오류 패킷을 완료합니다. 이 패킷은 WHEA_ERROR_PACKET 구조체로 형식이 지정됩니다.

  3. LLHEH는 PSHED를 호출하여 플랫폼별 하드웨어 오류 정보를 검색합니다. PSHED 플러그 인이 설치되어 있고 오류에 대한 정보를 검색하기 위해 등록된 경우 PSHED는 PSHED 플러그 인을 호출하여 플러그 인이 LLHEH에 반환되는 오류에 대한 정보를 수정할 수 있도록 합니다.

  4. LLHEH는 Windows 운영 체제 커널을 호출하고 오류 패킷을 전달합니다.

  5. Windows 커널은 오류 레코드 를 만들고 LLHEH에서 받은 오류 패킷의 정보를 추가합니다. 또한 Windows 커널은 오류 원본, 오류의 심각도 및 오류 레코드에 오류가 발생한 횟수와 같은 오류에 대한 다른 정보를 추가합니다.

  6. Windows 커널은 PSHED를 호출하여 PSHED가 오류 레코드에 섹션을 추가할 수 있도록 합니다.

  7. PSHED 플러그 인이 설치되어 있고 오류 정보를 검색하기 위해 등록된 경우 PSHED는 오류 레코드의 정보를 수정할 수 있도록 PSHED 플러그 인을 호출합니다.

  8. PSHED 플러그 인이 ECC 메모리 페이지에서 PFA를 수행하는 경우 다음을 수행해야 합니다.

    • WHEA_ERROR_PACKET 구조체WHEA_ERROR_PACKET_FLAGS 멤버에서 PlatformPfaControl 비트를 설정합니다. 이 비트가 설정되면 WHEA는 더 이상 해당 메모리 페이지의 PFA를 담당하지 않습니다.
    • 플러그 인에서 오류가 발생한 ECC 메모리 페이지를 오프라인으로 전환해야 한다고 판단하는 경우 WHEA_ERROR_PACKET_FLAGS 멤버에서 PlatformDirectedOffline 비트를 설정합니다. 이 비트가 설정되면 WHEA는 메모리 페이지를 오프라인으로 전환하려고 시도합니다.

    그렇지 않으면 PSHED 플러그 인이 WHEA_ERROR_PACKET 구조체의 WHEA_ERROR_PACKET_FLAGS 멤버에서 PlatformPfaControlPlatformDirectedOffline 비트를 지워야 합니다.

    참고PlatformPfaControl 비트가 지워지면 WHEA는 PFA를 수행하도록 구성된 경우 PFA를 수행하고 오류가 발생한 ECC 메모리 페이지를 오프라인으로 전환해야 하는지 여부를 결정합니다. 이 프로세스에 대한 자세한 내용은 WHEA에서 PFA 수행을 참조하세요.

  9. ECC 메모리 페이지를 오프라인으로 전환해야 하는 경우 WHEA는 먼저 시스템 메모리 관리자를 호출하여 이 작업을 수행합니다.

    참고 시스템 메모리 관리자가 호출될 때 ECC 메모리 페이지가 실제로 오프라인으로 전환된다는 보장은 없습니다.

그런 다음 WHEA는 시스템의 BCD(부팅 구성 데이터) 저장소에 메모리 페이지를 추가합니다. 이렇게 하면 다음 시스템을 다시 시작한 후 메모리 페이지가 사용되지 않습니다.

참고 레지스트리 값 DisableOffline 이 0이 아닌 값으로 설정된 경우 WHEA는 ECC 메모리 페이지와 같은 하드웨어 구성 요소를 오프라인으로 사용하지 않습니다. 또한 레지스트리 값 MemPersistOffline 이 0으로 설정된 경우 WHEA는 BCD 저장소에 메모리 페이지를 추가하지 않습니다. 레지스트리 값에 대한 자세한 내용은 WHEA 정책 설정을 참조하세요.

시스템 메모리 관리자에 대한 자세한 내용은 Windows SDK 설명서의 메모리 관리를 참조하세요.

  1. Windows 커널은 ETW 이벤트를 생성하고 시스템 이벤트 로그에 오류 정보를 기록합니다.