錯誤檢查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 名為 NdisMAllocateSharedMemory 的驅動程式,位於引發的 IRQL。 |
特定迷你埠配接器區塊的位址。 使用此位址執行 !ndiskd.netadapter 以取得詳細資訊。 |
要求的共用記憶體長度 |
目前的 IRQL |
0x02 |
NDIS_BUGCHECK_SHARED_MEM_CORRUPTION 在呼叫 NdisMAllocateSharedMemory 期間,NDIS偵測到先前配置的共用記憶體頁面已損毀。 |
特定迷你埠配接器區塊的位址。 使用此位址執行 !ndiskd.netadapter 以取得詳細資訊。 |
已損毀的共用記憶體頁面 |
追蹤驅動程式共用記憶體配置的NDIS_WRAPPER_CONTEXTE位址 |
0x03 |
NDIS_BUGCHECK_FREE_INVALID_SHARED_MEM 名為 NdisMFreeSharedMemory 的迷你埠驅動程式, (Async) 已釋放的共用記憶體位址。 |
特定迷你埠配接器區塊的位址。 使用此位址執行 !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 迷你埠驅動程式指出它已使用通訊協定堆疊目前使用的封包描述元來接收封包。 藉由檢查封包參考計數來攔截。 |
特定迷你埠配接器區塊的位址。 使用此位址執行 !ndiskd.netadapter 以取得詳細資訊。 |
驅動程式所使用的封包描述元位址。 使用此位址執行 !ndiskd.pkt 以取得詳細資訊。 |
包含這個封包描述元的封包陣列位址 |
0x13 |
NDIS_BUGCHECK_TFILTER_RECVD_PACKET_BAD_REF_COUNT Token-Ring 迷你埠驅動程式指出它已使用通訊協定堆疊目前使用的封包描述元收到封包。 藉由檢查封包參考計數來攔截。 |
特定迷你埠配接器區塊的位址。 使用此位址執行 !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!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 。 |
指出此不合法狀態指示之驅動程式實例的控制碼。 使用這個控制碼執行 !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。 這可能是因為遺失 NBL 所造成,在此情況下 !ndiskd.pendingnbls 可能會有説明。 檢查是否使用 !ndiskd.oid卡住的 OID。 |
花費太多時間的作業。 可能的值:
|
轉換成 ndis!NDIS_WATCHDOG_TRIAGE_BLOCK。 有用的欄位:
|
參數 4 的值取決於參數 2 的值。 此清單中的每個數位都會對應至參數 2 中的相同十六進位值。
|
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) 。