HalExamineMBR 함수(ntddk.h)

HalExamineMBR 루틴은 디스크의 master 부팅 레코드(MBR)를 읽고 MBR이 호출자가 지정한 형식인 경우 MBR에서 데이터를 반환합니다.

구문

void HalExamineMBR(
  [in]  PDEVICE_OBJECT DeviceObject,
  [in]  ULONG          SectorSize,
  [in]  ULONG          MBRTypeIdentifier,
  [out] PVOID          *Buffer
);

매개 변수

[in] DeviceObject

검사 중인 디바이스의 디바이스 개체에 대한 포인터입니다.

[in] SectorSize

I/O 작업이 검사 중인 디바이스에서 가져올 수 있는 최소 바이트 수입니다. 이 값이 512보다 작은 경우 HalExamineMBR 은 512바이트를 읽어 전체 파티션 테이블을 읽도록 합니다.

[in] MBRTypeIdentifier

MBR 파티션 형식 식별자입니다. 이 매개 변수는 디스크에 있을 수 있는 MBR의 형식을 지정합니다. 자세한 내용은 설명 부분을 참조하세요.

[out] Buffer

HalExamineMBR이 MBR의 데이터를 포함하는 버퍼에 대한 포인터를 쓰는 위치에 대한 포인터입니다. 버퍼의 레이아웃은 MBR 파티션 유형에 따라 달라집니다. HalExamineMBR 은 이 버퍼에 대한 스토리지를 할당합니다. 호출자는 ExFreePool 루틴을 호출하여 가능한 한 빨리 이 버퍼의 할당을 취소해야 합니다.

디스크의 MBR 파티션 유형이 MBRTypeIdentifier에서 지정한 것과 일치하지 않거나 오류가 있는 경우 HalExamineMBR은 *Buffer = NULL을 설정합니다.

반환 값

없음

설명

시스템 정의 MBR 파티션 형식 식별자 목록은 PARTITION_INFORMATION 테이블을 참조하세요. 이러한 식별자는 Ntdddisk.h 헤더 파일에 정의됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ntddk.h(Ntddk.h 포함)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

추가 정보

ExFreePool

PARTITION_INFORMATION