버그 검사 0x15E: BUGCODE_NDIS_DRIVER_LIVE_DUMP

BUGCODE_NDIS_DRIVER_LIVE_DUMP 라이브 덤프의 값은 0x0000015E. 이 버그 코드는 NDIS가 라이브 커널 덤프를 캡처했음을 나타냅니다. NDIS는 이 상황에서 버그 검사 생성하지 않습니다.

BUGCODE_NDIS_DRIVER 매개 변수

매개 변수 1은 위반 유형을 나타냅니다. 다른 매개 변수의 의미는 매개 변수 1의 값에 따라 달라집니다. 매개 변수의 값이 "0"이면 사용되지 않음을 의미합니다.

매개 변수 1 매개 변수 1 값 및 오류 원인 매개 변수 2 매개 변수 3 매개 변수 4

0x01

NDIS_BUGCHECK_MINIPORT_FATAL_ERROR

미니포트 드라이버에 치명적인 오류가 발생하여 다시 열거를 요청했습니다.

미니포트 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.minidriver 를 실행합니다.

미니포트의 PDO(물리적 디바이스 개체)의 주소입니다.

이 라이브 덤프를 발생시킨 심각한 오류입니다. 가능한 값은 다음과 같습니다.

  1. 70: 사용자 모드로 인해 발생
  2. 71: NdisMRemoveMiniport에 의해 발생
  3. 72: NdisIMInitializeDeviceInstanceEx 실패로 인해 발생
  4. 73: MiniportRestart 실패로 인해 발생
  5. 74: OID_PNP_SET_POWER(D0) 요청 실패로 인해 발생
  6. 75: OID_PNP_SET_POWER(Dx) 요청 실패로 인해 발생

0x25

NDIS_BUGCHECK_WATCHDOG

네트워크 스택을 관리하려는 시도가 너무 오래 걸렸습니다. NDIS가 다른 드라이버로 호출하면 NDIS는 워치독 타이머를 시작하여 호출이 즉시 완료되도록 합니다. 호출이 너무 오래 걸리면 NDIS에서 버그 검사를 삽입합니다.

이는 단순한 교착 상태로 인해 발생할 수 있습니다. "!stacks 2 ndis" 또는 유사한 스레드가 의심스러운지 확인합니다. NDIS_WATCHDOG_TRIAGE_BLOCK PrimaryThread에 특히 주의하세요.

NCL 손실로 인해 발생할 수 있습니다. 이 경우 !ndiskd.pendingnbls가 도움이 될 수 있습니다. !ndiskd.oid를 사용하여 중단된 OID를 확인합니다.

너무 오래 걸린 작업입니다. 가능한 값은 다음과 같습니다.

  • 0x01: NDIS_BUGCHECK_WATCHDOG_PROTOCOL_PAUSE

    프로토콜 드라이버를 일시 중지하는 동안 시간 제한이 있었습니다.

  • 0x02: NDIS_BUGCHECK_WATCHDOG_PROTOCOL_NETPNPEVENT

    프로토콜 드라이버에 NET_PNP_EVENT_NOTIFICATION 제공하는 동안 시간 제한이 있었습니다.

  • 0x03: NDIS_BUGCHECK_WATCHDOG_PROTOCOL_STATUS_INDICATION

    프로토콜 드라이버에 상태 표시를 전달하는 동안 시간 제한이 있었습니다.

  • 0x04: NDIS_BUGCHECK_WATCHDOG_PROTOCOL_UNBIND

    프로토콜 드라이버를 바인딩 해제하는 동안 시간 제한이 있었습니다.

  • 0x11: NDIS_BUGCHECK_WATCHDOG_FILTER_PAUSE

    필터 드라이버를 일시 중지하는 동안 시간 제한이 있었습니다.

  • 0x12: NDIS_BUGCHECK_WATCHDOG_FILTER_NETPNPEVENT

    필터 드라이버에 NET_PNP_EVENT_NOTIFICATION 제공하는 동안 시간 제한이 있었습니다.

  • 0x13: NDIS_BUGCHECK_WATCHDOG_FILTER_STATUS_INDICATION

    필터 드라이버에 상태 표시를 전달하는 동안 시간 제한이 있었습니다.

  • 0x14: NDIS_BUGCHECK_WATCHDOG_FILTER_DETACH

    필터 드라이버를 분리하는 동안 시간 제한이 있었습니다.

  • 0x21: NDIS_BUGCHECK_WATCHDOG_MINIPORT_PAUSE

    미니포트 어댑터를 일시 중지하는 동안 시간 제한이 있었습니다.

  • 0x22 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_HALT

    미니포트 어댑터를 중지하는 동안 시간 제한이 있었습니다.

  • 0x23: NDIS_BUGCHECK_WATCHDOG_MINIPORT_OID

    미니포트 어댑터에 OID 요청을 전달하는 동안 시간 제한이 있었습니다.

  • 0x24: NDIS_BUGCHECK_WATCHDOG_FILTER_OID

    필터 드라이버에 OID 요청을 전달하는 동안 시간 제한이 있었습니다.

  • 0x25: NDIS_BUGCHECK_WATCHDOG_MINIPORT_IDLE

    미니포트 어댑터를 유휴 상태로 두는 동안 시간 제한이 있었습니다.

  • 0x26: NDIS_BUGCHECK_WATCHDOG_CANCEL_IDLE

    미니포트 어댑터에서 유휴 요청을 취소하는 동안 시간 제한이 있었습니다.

신디에 캐스팅! NDIS_WATCHDOG_TRIAGE_BLOCK. 유용한 필드:

  • StartTime 은 KeQueryInterruptTime에서 반환한 대로 작업이 시작된 시간을 100ns 단위로 표시합니다.
  • TimeoutMilliseconds는 이 버그 검사를 트리거하기 전에 최소한 NDIS가 대기한 시간을 보여 줍니다.
  • TargetObject 는 NDIS가 대기 중인 프로토콜, 필터 모듈 또는 미니포트 어댑터에 대한 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.protocol, !ndiskd.filter 또는 !ndiskd.netadapter 를 실행합니다.
  • PrimaryThread 는 NDIS가 작업을 시작한 스레드입니다. 일반적으로 작업이 비동기적으로 처리되는 경우 스레드가 다른 곳으로 갔을 수 있지만 가장 먼저 볼 수 있습니다.

매개 변수 4의 값은 매개 변수 2의 값에 따라 달라집니다. 이 목록의 각 숫자는 매개 변수 2의 동일한 숫자에 해당합니다.

  • 0x01 : 0
  • 0x02: 중단된 이벤트의 NET_PNP_EVENT_CODE. 이러한 코드에 대한 자세한 내용은 NET_PNP_EVENT.를 참조하세요.
  • 0x03: 중단된 표시의 NDIS_STATUS 코드입니다. !ndiskd.help를 사용하여 디코딩합니다.
  • 0x04 : 0
  • 0x11 : 0
  • 0x12: 중단된 이벤트의 NET_PNP_EVENT_CODE. 가능한 값은 이 목록의 항목 2에 대한 이전 값 목록을 참조하세요.
  • 0x13: 중단된 표시의 NDIS_STATUS 코드입니다. !ndiskd.help를 사용하여 디코딩합니다.
  • 0x14 : 0
  • 0x21 : 0
  • 0x22 : 0
  • 0x23: 중단된 요청의 OID 코드입니다. !ndiskd.help를 사용하여 디코딩합니다.
  • 0x24: 중단된 요청의 OID 코드입니다. !ndiskd.help를 사용하여 디코딩합니다.
  • 0x25 : 0
  • 0x26 : 0

0x30

NDIS_BUGCHECK_STUCK_NBL

미니포트 드라이버는 한동안 NBL을 스택으로 되돌리지 않았습니다.

미니포트 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.minidriver 를 실행합니다.

0

0

원인

!analyze 디버그 확장은 버그 검사 대한 정보를 표시하며 근본 원인을 확인하는 데 도움이 될 수 있습니다. 매개 변수 1은 BUGCODE_NDIS_DRIVER_LIVE_DUMP 버그 검사의 특정 원인을 나타냅니다.

설명

NDIS는 다른 네트워크 드라이버의 심각한 문제를 감지하고 복구했습니다. 시스템이 중단되지는 않았지만 이 문제는 나중에 연결 문제 또는 치명적인 버그 검사를 일으킬 수 있습니다.

이 버그 코드는 Windows 8.1 이상 버전의 Windows에서만 발생합니다.