버그 검사 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 미니포트 드라이버가 상태 전환을 불법으로 완료했습니다. |
실패한 내용입니다. 가능한 값은 다음과 같습니다.
|
특정 미니포트 어댑터 블록의 주소입니다. 자세한 내용은 이 주소로 !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 패킷 직접 데이터 경로에서 오류가 검색되었습니다. |
버그 검사의 하위 유형입니다. 가능한 값은 다음과 같습니다.
|
매개 변수 3의 값은 매개 변수 2의 값에 따라 달라집니다. 이 목록의 각 숫자는 매개 변수 2의 동일한 숫자에 해당합니다.
|
매개 변수 4의 값은 매개 변수 2의 값에 따라 달라집니다. 이 목록의 각 숫자는 매개 변수 2의 동일한 숫자에 해당합니다.
|
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를 확인합니다. |
너무 오래 걸린 작업입니다. 가능한 값은 다음과 같습니다.
|
신디에 캐스팅! NDIS_WATCHDOG_TRIAGE_BLOCK. 유용한 필드:
|
매개 변수 4의 값은 매개 변수 2의 값에 따라 달라집니다. 이 목록의 각 숫자는 매개 변수 2의 동일한 16진수 값에 해당합니다.
|
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을 확인합니다. |
누출이 감지된 위치입니다. 가능한 값은 다음과 같습니다.
|
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)입니다.