고정 MDL 스택 검사

고정 MDL 스택 검사 옵션은 드라이버가 드라이버 스택에서 고정 MDL 버퍼를 처리하는 방법을 모니터링합니다. 드라이버 검증 도구는 고정 MDL 버퍼의 잘못된 수정을 검색할 수 있습니다. 이 옵션을 사용하려면 하나 이상의 드라이버에서 I/O 확인을 사용하도록 설정해야 합니다.

참고 이 옵션은 Windows 8 시작해서 사용할 수 있습니다.

고정 MDL 스택 검사 옵션을 사용하면 드라이버가 드라이버 스택을 벗어나는 지점에서만 고정 MDL 버퍼에 대한 규칙을 따르도록 합니다.

고정 MDL이 있는 IRP가 IoCallDriver 루틴에 처음 표시되면 고정 MDL 버퍼의 내용에서 고유한 서명이 계산되고 내부 데이터베이스에 저장됩니다. IoCompleteRequest 루틴에서 IRP를 완료하는 동안 IRP가 서명을 기록한 고정 MDL을 계속 전달하는 경우 드라이버 검증 도구는 버퍼가 변경되지 않은지 확인합니다.

쓰기 요청에 대한 고정 버퍼는 IRP의 전체 수명 동안 수정할 수 없습니다. 읽기 요청의 경우 디스패치 경로에서 고정 버퍼를 수정할 수 없으므로 버퍼 서명 비교는 IoCallDriver에 대한 마지막 호출에서 수행됩니다.

고정 MDL 스택 검사 옵션은 스택의 개별 드라이버를 통과할 때 버퍼가 어떻게 되는지에 관계없이 전체 드라이버 스택에서 MDL 버퍼 분산을 확인합니다. 이 옵션은 전역적이며 드라이버별로 선택적으로 적용할 수 없습니다. 고정 MDL 스택 검사 옵션은 버퍼 분산을 위반한 드라이버를 정확히 파악하지 않고 위반만 catch할 수 있습니다. 결함이 있는 드라이버를 정확히 파악하려면 IoCallDriverIoCompleteRequest DDIs에 대한 모든 호출에서 버퍼 콘텐츠의 분산 유효성 검사를 수행하는 고정 MDL 드라이버 검사 옵션을 사용합니다.

이 옵션 활성화

드라이버 검증 도구 관리자 또는 Verifier.exe 명령줄을 사용하여 하나 이상의 드라이버에 대해 고정 MDL 스택 검사 기능을 활성화할 수 있습니다. 고정 MDL 스택 확인 옵션을 활성화하거나 비활성화하려면 컴퓨터를 다시 시작해야 합니다. 자세한 내용은 드라이버 검증 도구 옵션 선택을 참조하세요.

고정 MDL 스택 확인 옵션을 활성화하려면 I/O 확인도 활성화해야 합니다.

  • 명령줄에서

    명령줄에서 고정 MDL 스택 검사는 0x00002000 (비트 13)로 표시됩니다. 고정 MDL 스택 검사를 활성화하려면 플래그 값 0x00002010 사용하거나 플래그 값에 0x00002010 추가합니다. 이 값은 0x10(I/O 확인) 및 고정 MDL 스택 검사(0x00002000)를 활성화합니다. 예:

    verifier /flags 0x00002010 /driver MyDriver.sys
    

    이 기능은 다음 부팅 후에 활성화됩니다.

  • 드라이버 검증 도구 관리자 사용

    1. 드라이버 검증 도구 관리자를 시작합니다. 명령 프롬프트 창에 검증 도구 를 입력합니다.
    2. 사용자 지정 설정 만들기(코드 개발자용)를 선택하고 다음을 클릭합니다.
    3. 전체 목록에서 개별 설정 선택을 선택합니다.
    4. (검사) I/O 확인 및 고정 MDL 스택 검사를 선택합니다.
    5. 컴퓨터를 다시 시작합니다.