다음을 통해 공유


pHalSetSystemInformation 콜백 함수(ntddk.h)

HAL에 MCA 드라이버를 등록합니다.

구문

pHalSetSystemInformation Phalsetsysteminformation;

NTSTATUS Phalsetsysteminformation(
  [in]  HAL_SET_INFORMATION_CLASS InformationClass,
  [in]  ULONG BufferSize,
  [out] PVOID Buffer
)
{...}

매개 변수

[in] InformationClass

HALMcaRegisterDriver는 MCA 드라이버의 콜백 루틴을 HAL에 등록합니다. 두 가지 콜백 루틴인 ExceptionCallback 및 DpcCallback이 있습니다. ExceptionCallback 루틴은 시스템에 대한 버그 검사 실행하기 전에 MCE(Machine Check Exception) 처리기에서 다시 시작할 수 없는 오류 처리 중에 호출됩니다. MCA 오류를 다시 시작할 수 있을 때 DpcCallback 루틴이 호출됩니다. Itanium 시스템의 경우 HalCmcRegisterDriver를 지정하여 드라이버의 수정된 CPU 오류 DpcCallback 루틴을 등록하고, HalCpeRegisterDriver를 지정하여 드라이버의 수정된 플랫폼 오류 DpcCallback을 등록합니다.

[in] BufferSize

호출자가 제공하는 버퍼의 크기(바이트)입니다.

[out] Buffer

다음과 같이 정의된 MCA_DRIVER_INFO 형식의 호출자 제공 버퍼에 대한 포인터입니다.

typedef struct _MCA_DRIVER_INFO {
  PDRIVER_EXCPTN_CALLBACK  ExceptionCallback; // NULL for Itanium corrected error registration
  PKDEFERRED_ROUTINE  DpcCallback;
  PVOID  DeviceContext;
} MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;

이 구조체에는 다음 멤버가 포함됩니다.

  • ExceptionCallback

    수정되지 않은 오류에 대해 MCE(Machine Check Exception)가 발생할 때 호출할 드라이버 제공 루틴입니다. 드라이버는 커널 서비스 또는 스핀 잠금 루틴을 명시적으로 사용할 수 없습니다. 처리기는 가장 높은 IRQL에서 작동하는 드라이버와 동일한 제약 조건으로 제한됩니다.

  • DpcCallback

    MCE(Machine Check Exception)를 발생시킨 수정된 오류에 대해 호출되는 드라이버 제공 루틴입니다. 이 루틴은 DISPATCH_LEVEL 호출해야 합니다.

  • DeviceContext

    이 MCA 드라이버에 대한 디바이스별 컨텍스트입니다.

반환 값

등록에 성공하면 STATUS_SUCCESS 반환합니다.

설명

MCA 드라이버가 다른 인터페이스 루틴을 사용하려면 먼저 HalSetSystemInformation을 호출해야 합니다. 지정된 시간에 하나의 MCA 드라이버만 HAL에 등록할 수 있습니다.

Windows Vista 이상 버전의 Windows는 이 항목에 설명된 MCA(Machine Check Architecture) 및 MCE(Machine Check Exception) 보고 유형을 지원하지 않습니다. MCA 및 MCE 보고는 Windows WHEA(하드웨어 오류 아키텍처) 를 통해 지원됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ntddk.h(Ntddk.h 포함)