다음을 통해 공유


버그 검사 0x7C: BUGCODE_NDIS_DRIVER

BUGCODE_NDIS_DRIVER 버그 검사 값은 0x0000007C. 이 버그 검사 운영 체제가 네트워킹 드라이버에서 오류를 감지했음을 나타냅니다.

중요

이 문서는 프로그래머용입니다. 컴퓨터를 사용하는 동안 파란색 화면 오류 코드를 받은 고객인 경우 블루 스크린 오류 문제 해결을 참조하세요.

BUGCODE_NDIS_DRIVER 매개 변수

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

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

0x01

NDIS_BUGCHECK_ALLOCATE_SHARED_MEM_HIGH_IRQL

제기 된 IRQL에서 NdisMAllocateSharedMemory 라는 드라이버.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

요청된 공유 메모리의 길이

현재 IRQL

0x02

NDIS_BUGCHECK_SHARED_MEM_CORRUPTION

NdisMAllocateSharedMemory를 호출하는 동안 NDIS는 이전에 할당한 공유 메모리 페이지가 손상된 것을 발견했습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

손상된 공유 메모리 페이지

드라이버의 공유 메모리 할당을 추적하는 NDIS_WRAPPER_CONTEXTE 주소입니다.

0x03

NDIS_BUGCHECK_FREE_INVALID_SHARED_MEM

이미 해제된 공유 메모리 주소가 있는 NdisMFreeSharedMemory (비동기)라는 미니포트 드라이버입니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

이 공유 메모리가 할당된 페이지

공유 메모리의 가상 주소

0x04

NDIS_BUGCHECK_UNLOAD_DRIVER_INVALID_PARAMETER

AddDevice 는 NDIS에 등록된 드라이버 목록에 없는 드라이버로 호출되었습니다.

특수 계측된 NDIS에서만 사용하도록 설정됩니다.

NDIS_M_DRIVER_BLOCK 주소

DRIVER_OBJECT 주소

0

0x05

NDIS_BUGCHECK_RECVD_PACKET_IN_USE_BAD_STACK_LOCATION

이더넷 드라이버는 프로토콜 스택에서 현재 사용 중인 패킷 설명자를 사용하여 패킷을 수신했음을 나타냅니다.

스택 패킷 위치를 확인하여 적발되었습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

드라이버에서 사용하는 패킷 설명자의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.pkt 를 실행합니다.

이 패킷 설명자를 포함하는 패킷 배열의 주소

0x06

NDIS_BUGCHECK_RECVD_PACKET_IN_USE_BAD_REF_COUNT

이더넷 드라이버는 프로토콜 스택에서 현재 사용 중인 패킷 설명자를 사용하여 패킷을 수신했음을 나타냅니다.

패킷 참조 횟수를 확인하여 적발되었습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

드라이버에서 사용하는 패킷 설명자의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.pkt 를 실행합니다.

이 패킷 설명자를 포함하는 패킷 배열의 주소

0x07

FDDI 드라이버는 프로토콜 스택에서 현재 사용 중인 패킷 설명자를 사용하여 패킷을 수신했음을 나타냅니다.

참조 횟수를 확인하여 적발됩니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

드라이버에서 사용하는 패킷 설명자의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.pkt 를 실행합니다.

이 패킷 설명자를 포함하는 패킷 배열의 주소

0x08

NDIS_BUGCHECK_HALT_WITHOUT_INTERRUPT_DEREGISTER

미니포트 드라이버는 중단 프로세스 중에 인터럽트 등록을 취소하지 않았습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

NDIS_MINIPORT_INTERRUPT 주소

0

0x09

NDIS_BUGCHECK_HALT_WITHOUT_CANCEL_TIMER

모든 타이머를 성공적으로 취소하지 않고 미니포트 드라이버가 중지되었습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

미니포트 드라이버 타이머 큐의 주소(NDIS_MINIPORT_TIMER)

0

0x0A

NDIS_BUGCHECK_DRIVER_UNLOAD_UNEXPECTED

미니포트 드라이버가 조기에 언로드됩니다.

NDIS_M_DRIVER_BLOCK 주소

DRIVER_OBJECT 주소

미니포트 드라이버에 대한 참조 수

0x0B

NDIS_BUGCHECK_INIT_FAILED_WITHOUT_INTERRUPT_DEREGISTER

미니포트 드라이버는 인터럽트 등록을 취소하지 않고 초기화에 실패했습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

NDIS_MINIPORT_INTERRUPT 주소

0

0x0C

NDIS_BUGCHECK_INIT_FAILED_WITHOUT_CANCEL_TIMER

미니포트 드라이버는 모든 타이머를 성공적으로 취소하지 않고 초기화에 실패했습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

미니포트 드라이버 타이머 큐의 주소(NDIS_MINIPORT_TIMER)

0

0x0D

NDIS_BUGCHECK_HALT_INIT_WITHOUT_INTERRUPT_DEREGISTER

미니포트 드라이버는 중단 프로세스 중에 인터럽트 등록을 취소하지 않았습니다.

미니포트 드라이버가 초기화 처리기에서 성공을 반환한 후 초기화 루틴에서 중지가 호출되었습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

NDIS_MINIPORT_INTERRUPT 주소

0

0x0E

NDIS_BUGCHECK_HALT_INIT_WITHOUT_CANCEL_TIMER

모든 타이머를 취소하지 않고 미니포트 드라이버가 중지되었습니다.

미니포트 드라이버가 초기화 처리기에서 성공을 반환한 후 초기화 루틴에서 중지가 호출되었습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

미니포트 드라이버 타이머 큐의 주소(NDIS_MINIPORT_TIMER)

0

0x0F

NDIS_BUGCHECK_RESET_COMPLETE_UNEXPECTED

보류 중인 재설정 요청 없이 NdisMResetComplete 라는 미니포트 드라이버입니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

초기화 상태

AddressingReset(BOOLEAN)

0x10

NDIS_BUGCHECK_PM_INIT_FAILED_NO_INT_DEREGISTER

저전력 상태에서 다시 시작하면 미니포트 드라이버가 인터럽트 등록을 취소하지 않고 초기화에 실패했습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

NDIS_MINIPORT_INTERRUPT 주소

0

0x11

NDIS_BUGCHECK_PM_INIT_FAILED_NO_CANCEL_TIMER

저전력 상태에서 다시 시작하면 미니포트 드라이버가 모든 타이머를 취소하지 않고 초기화에 실패했습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

미니포트 드라이버 타이머 큐의 주소(NDIS_MINIPORT_TIMER)

0

0x12

NDIS_BUGCHECK_NFILTER_RECVD_PACKET_BAD_REF_COUNT

미니포트 드라이버는 프로토콜 스택에서 현재 사용 중인 패킷 설명자를 사용하여 패킷을 수신했음을 나타냅니다.

패킷 참조 수를 확인하여 catch됩니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

드라이버에서 사용하는 패킷 설명자의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.pkt 를 실행합니다.

이 패킷 설명자가 포함된 패킷 배열의 주소

0x13

NDIS_BUGCHECK_TFILTER_RECVD_PACKET_BAD_REF_COUNT

Token-Ring 미니포트 드라이버는 프로토콜 스택에서 현재 사용 중인 패킷 설명자를 사용하여 패킷을 수신했음을 나타냅니다.

패킷 참조 수를 확인하여 catch됩니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

드라이버에서 사용하는 패킷 설명자의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.pkt 를 실행합니다.

이 패킷 설명자가 포함된 패킷 배열의 주소

0x14

NDIS_BUGCHECK_WAIT_EVENT_HIGH_IRQL

불법 IRQL에서 NdisWaitEvent 라는 NDIS 드라이버

실제 IRQL

0

0

0x15

NDIS_BUGCHECK_INVALID_NDIS5_CALL

이전 드라이버용으로 예약된 API라는 미니포트 드라이버입니다. 드라이버는 NDIS 6.x API만 호출해야 합니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

0

0

0x16

NDIS_BUGCHECK_INVALID_OPEN_IN_BIND_CONTEXT

프로토콜 드라이버가 바인딩하는 동안 어댑터를 잘못 열었습니다.

특정 프로토콜의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.protocol 을 실행합니다.

프로토콜 드라이버에서 할당한 컨텍스트 영역의 주소입니다.

신디에 캐스팅! NDIS_BIND_CONTEXT.

열린 핸들의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.mopen 을 실행합니다.

0x17

NDIS_BUGCHECK_IFPROVIDER_DEREGISTER_UNEXPECTED

먼저 모든 인터페이스를 제거하지 않고 NdisIfDeregisterProvider 라는 인터페이스 공급자입니다.

인터페이스 공급자 핸들의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.ifprovider 를 실행합니다.

0

0

0x1B

NDIS_BUGCHECK_IF_STACK_TABLE_LOOP

드라이버가 ifStackTable에 인터페이스를 추가하려고 했지만 이렇게 하면 주기가 발생합니다. ifStackTable에는 주기가 없어야 합니다. !ndiskd.ifstacktable을 실행하여 현재 테이블을 확인합니다(NdisIfAddIfStackEntry를 호출하기 전에).

테이블에 추가되는 HigherLayerIfIndex

테이블에 추가되는 LowerLayerIfIndex

0

0x1C

NDIS_BUGCHECK_MINIPORT_FAILED_OID_WHICH_MUST_SUCCEED

미니포트 드라이버가 실패하지 않아야 하는 OID 요청에 실패했습니다. 이렇게 하면 메모리 또는 기타 리소스가 누출됩니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

실패한 OID입니다. !ndiskd.help를 사용하여 이 OID의 이름을 찾습니다.

OID 요청이 완료된 오류 상태 코드(NDIS_STATUS_XXX)

0x1D

NDIS_BUGCHECK_OID_REQUEST_INVALID_BUFFER

미니포트 드라이버 또는 필터 드라이버가 OID 요청을 불법으로 완료했습니다. BytesWritten가 버퍼의 전체 길이보다 크지 않은지 확인합니다.

특정 미니포트 어댑터 또는 필터 모듈 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 또는 !ndiskd.filter 를 실행합니다.

불법으로 완료된 NDIS_OID_REQUEST 주소입니다. !ndiskd.oid로 검사합니다.

0

0x1E

NDIS_BUGCHECK_REFCOUNT_IMBALANCE

NDIS가 내부 refcount에서 오류를 검색했습니다. 이는 refcount 언더플로(참조보다 더 많은 역참조) 또는 태그 불일치로 인해 발생할 수 있습니다.

0

내부 핸들입니다. !ndiskd.ndisref를 사용하거나 ndis로 캐스팅하세요! NDIS_REFCOUNT_BLOCK.

현재 reftag 값

0x1F

NDIS_BUGCHECK_ILLEGAL_MINIPORT_STATE_TRANSITION

미니포트 드라이버가 상태 전환을 불법으로 완료했습니다.

실패한 내용입니다. 가능한 값은 다음과 같습니다.

  1. NDIS_BUGCHECK_ILLEGAL_MINIPORT_STATE_TRANSITION_PAUSE_COMPLETE

    미니포트는 NdisMPauseComplete 이지만 보류 중인 일시 중지 작업이 없었습니다.

  2. NDIS_BUGCHECK_ILLEGAL_MINIPORT_STATE_TRANSITION_RESTART_COMPLETE

    미니포트는 NdisMRestartComplete 이지만 보류 중인 다시 시작 작업이 없었습니다.

특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !ndiskd.netadapter 를 실행합니다.

0

0x20

NDIS_BUGCHECK_STATUS_INDICATION_INVALID_BUFFER

미니포트 드라이버 또는 필터 드라이버가 잘못된 NDIS_STATUS_INDICATION 표시했습니다.

상태 표시의 형식입니다. 자세한 내용은 이 코드로 !ndiskd.help 를 실행합니다.

이 잘못된 상태 표시를 나타내는 드라이버 instance 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.netadapter 또는 !ndiskd.filter 를 실행합니다.

상태 표시 페이로드의 주소입니다. 해당 해석은 상태 표시의 유형에 따라 달라집니다.

0x21

NDIS_BUGCHECK_INVALID_OBJECT_HEADER

드라이버가 잘못된 NDIS_OBJECT_HEADER 만들었습니다.

잘못된 상태 표시를 나타내는 드라이버의 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.minidriver 또는 !ndiskd.filterdriver 를 실행합니다.

잘못된 형식의 헤더가 있는 개체입니다. 해당 해석은 호출되는 API에 따라 달라집니다. 예를 들어 드라이버가 NdisAllocateCloneOidRequest를 호출한 경우 개체를 ndis! NDIS_OID_REQUEST.

0

0x22

NDIS_BUGCHECK_ILLEGAL_NET_PNP_EVENT

미니포트 드라이버 또는 필터 드라이버가 잘못된 NET_PNP_EVENT_NOTIFICATION 표시했습니다.

잘못된 상태 표시를 나타내는 드라이버의 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.minidriver 또는 !ndiskd.filterdriver 를 실행합니다.

NET_PNP_EVENT_NOTIFICATION 캐스팅

0

0x23

NDIS_BUGCHECK_PD_ERROR

패킷 직접 데이터 경로에서 오류가 검색되었습니다.

버그 검사의 하위 유형입니다. 가능한 값은 다음과 같습니다.

  1. NDIS_BUGCHECK_PD_ERROR_EC_THREAD_MISMATCH

    잘못된 스레드에서 API가 호출되었습니다.

  2. NDIS_BUGCHECK_PD_ERROR_ILLEGAL_ARM_BY_CLIENT

    PD 클라이언트가 잘못된 상태에 있는 동안 공급자를 무장시키려고 했습니다.

  3. NDIS_BUGCHECK_PD_ERROR_ILLEGAL_ARM_NOTIFICATION

    PD 공급자가 무장하지 않은 동안 드레이닝 알림을 불법으로 트리거했습니다.

  4. NDIS_BUGCHECK_PD_ERROR_ILLEGAL_ARM_NOTIFICATION_VIA_ISR

    PD 공급자가 무장하지 않은 동안 ISR 드레이닝 알림을 불법으로 트리거했습니다.

  5. NDIS_BUGCHECK_PD_ERROR_ILLEGAL_THUNK_BY_LWF

    필터 드라이버가 패킷 직접 데이터 경로를 방해하려고 했습니다.

  6. NDIS_BUGCHECK_PD_ERROR_ILLEGAL_BM_GROUP_REQUEST

    PD 공급자가 버퍼 관리자 그룹에서 자신을 제거하려고 잘못 시도했습니다.

  7. NDIS_BUGCHECK_PD_ERROR_ILLEGAL_PD_BUFFER_SETUP

    PD 버퍼 설정 요청의 형식이 잘못되었습니다.

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

  1. NDIS_PD_EC 캐스팅
  2. NDIS_PD_QUEUE_TRACKER 캐스팅
  3. NDIS_PD_QUEUE_TRACKER 캐스팅
  4. NDIS_PD_QUEUE_TRACKER 캐스팅
  5. 특정 필터 모듈의 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.filter 를 실행합니다.
  6. 버퍼 관리자 그룹(알려진 경우)
  7. 원본 PD_MEMORY_HANDLE 또는 PD_BUFFER

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

  1. 예상된 ETHREAD
  2. PD 클라이언트에 대한 핸들
  3. PD 공급자에 대한 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.netadapter 를 실행합니다.
  4. PD 공급자에 대한 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.netadapter 를 실행합니다.
  5. PD 공급자에 대한 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.netadapter 를 실행합니다.
  6. 매개 변수 3이 0이면 공급자 핸들입니다.

    매개 변수 3이 0이 아니면 PD 클라이언트가 아직 모든 할당을 해제하지 않았으며 이는 PD 클라이언트 핸들입니다.

  7. 대상 PD_BUFFER

0x24

NDIS_BUGCHECK_UNEXPECTED_FAILURE

내부 작업이 예기치 않게 실패했습니다. 이는 NDIS.SYS 자체에 버그가 될 수 있습니다.

실패한 작업입니다. 가능한 값은 다음과 같습니다.

0x01 : NDIS_BUGCHECK_UNEXPECTED_FAILURE_KEWAITFORSINGLEOBJECT

KeWaitForSingleObject에 대한 호출이 실패했습니다.

오류 상태 코드

0

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의 동일한 16진수 값에 해당합니다.

  • 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

0x26

NDIS_BUGCHECK_INVALID_OID_COMPLETION

미니포트 드라이버가 해당 미니포트 드라이버에서 현재 보류 중인 OID 요청을 완료하려고 했습니다. 이는 드라이버가 동일한 요청을 두 번 이상 완료하려고 하여 발생할 수 있습니다.

버그 검사를 발생시킨 미니포트 드라이버 핸들입니다. 자세한 내용은 이 핸들을 사용하여 !ndiskd.minidriver 를 실행합니다.

미니포트 드라이버가 완료하려고 시도한 NDIS OID 요청입니다. 이 요청으로 !ndiskd.oid 를 실행하려고 시도할 수 있지만 이 시점에서 메모리가 유효하지 않을 수 있습니다.

0

0x27

NDIS_BUGCHECK_LEAKED_NBL

드라이버가 NET_BUFFER_LIST 구조를 유출했습니다. !ndiskd.pendingnbls를 확인하여 이 드라이버에서 보류 중인 NBL을 확인합니다.

누출이 감지된 위치입니다. 가능한 값은 다음과 같습니다.

  • 0x01: NBL 추적기에서 누출이 감지되었습니다. 현재 등록을 취소하거나 바인딩 해제하는 드라이버가 가장 큰 원인입니다. 버그 검사 스레드의 호출 스택을 확인합니다. 드라이버는 활성 NBL을 보유하는 동안 바인딩을 해제하거나 등록을 취소해서는 안 됩니다.

0

0

원인

매개 변수 1은 BUGCODE_NDIS_DRIVER 버그 검사 특정 원인을 나타냅니다.

설명

BUGCODE_NDIS_DRIVER 버그 검사는 네트워크 드라이버의 문제를 확인합니다. 종종 문제는 NDIS 미니포트 드라이버로 인해 발생합니다. !ndiskd.netadapter를 사용하여 NDIS 미니포트 드라이버의 전체 목록을 가져올 수 있습니다. !ndiskd.netreport를 사용하여 네트워크 스택에 대한 더 큰 그림 개요를 얻을 수 있습니다.

이 버그 검사 코드는 Microsoft Windows Server 2003 이상 버전의 Windows에서만 발생합니다. Windows 2000 및 Windows XP에서 해당 코드는 버그 검사 0xD2(BUGCODE_ID_DRIVER)입니다.