다음을 통해 공유


KBUGCHECK_REMOVE_PAGES 구조체(wdm.h)

KBUGCHECK_REMOVE_PAGES 구조는 크래시 덤프 파일에서 KBUGCHECK_REASON_CALLBACK_ROUTINE 콜백 루틴에 의해 제거될 드라이버 제공 데이터의 하나 이상의 페이지를 설명합니다.

구문

typedef struct _KBUGCHECK_REMOVE_PAGES {
  PVOID     Context;
  ULONG     Flags;
  ULONG     BugCheckCode;
  ULONG_PTR Address;
  ULONG_PTR Count;
} KBUGCHECK_REMOVE_PAGES, *PKBUGCHECK_REMOVE_PAGES;

멤버

Context

콜백 루틴을 단독으로 사용하기 위한 프라이빗 컨텍스트 데이터를 포함합니다. 콜백 루틴은 이 멤버를 모든 값으로 설정할 수 있습니다. 일반적으로 콜백 루틴을 두 번 이상 호출해야 하는 경우 루틴은 초기 호출 중에 드라이버 제공 버퍼를 가리키도록 이 멤버를 설정합니다. 후속 호출 중에 콜백 루틴은 이 버퍼의 이전 내용을 읽고 해당 콘텐츠를 업데이트할 수 있습니다. 콜백 루틴에 대한 초기 호출 전에 컨텍스트NULL입니다.

Flags

제거 페이지 요청을 설명하는 플래그를 포함합니다. 콜백 루틴은 이 멤버의 값을 설정해야 합니다. 이 멤버를 다음 플래그 비트 중 하나 이상의 비트 OR로 설정합니다.

KB_ADD_PAGES_FEATURE_SHIFT       4

KB_REMOVE_PAGES_FEATURE_SHIFT    4

KB_ADD_PAGES_FEATURE_MASK        (0xF << KB_ADD_PAGES_FEATURE_SHIFT)

KB_REMOVE_PAGES_FEATURE_MASK     (0xF << (KB_ADD_PAGES_FEATURE_SHIFT + KB_REMOVE_PAGES_FEATURE_SHIFT))

BugCheckCode

버그 검사 이유를 지정하는 버그 검사 코드가 포함되어 있습니다. 콜백 루틴은 이 정보를 사용하여 크래시 덤프 파일에 페이지를 추가할지 여부를 결정할 수 있습니다. 버그 검사 코드의 전체 목록은 WDK에 포함된 Bugcodes.h 헤더 파일을 참조하세요.

Address

콜백 루틴 요청이 크래시 덤프 파일에서 제거될 페이지 또는 페이지의 실제 또는 가상 주소를 지정합니다.

Count

주소 멤버가 지정한 가상 또는 실제 주소에서 시작하여 크래시 덤프 파일에서 제거할 연속 페이지 수를 지정합니다. Count> 1 및 Address가 가상 주소인 경우 페이지는 가상 메모리 공간에서 연속됩니다. Count> 1 및 Address가 실제 주소인 경우 페이지는 실제 메모리 공간에서 연속됩니다. 콜백 루틴은 이 멤버를 0으로 설정하여 크래시 덤프 파일에서 페이지를 제거할 필요가 없음을 나타낼 수 있습니다.

설명

KBUGCHECK_REASON_CALLBACK_ROUTINE 콜백 루틴을 호출할 때 운영 체제는 Reason 매개 변수를 KbCallbackRemovePages로 설정하고 ReasonSpecificData 매개 변수를 설정하여 KBUGCHECK_REMOVE_PAGES 구조를 가리킵니다.

버그 검사 콜백 루틴에 대한 자세한 내용은 버그 검사 콜백 루틴 작성을 참조하세요.

요구 사항

요구 사항
헤더 wdm.h