程式呼叫 Windows API 失敗時,會透過 GetLastError() 取得系統錯誤代碼 (Win32 Error Codes)。本表整理 0-200 常見代碼的十進位/十六進位、中文說明與可能成因,供開發者與系統管理員快速查核。
| 十進位 | 十六進位 | 符號常數 (參考) | 中文說明 | 常見成因/處置 |
|---|---|---|---|---|
| 0 | 0x0000 | ERROR_SUCCESS | 作業成功完成 | 無錯誤 |
| 1 | 0x0001 | ERROR_INVALID_FUNCTION | 不正確的函數 | 驅動/裝置不支援該功能 |
| 2 | 0x0002 | ERROR_FILE_NOT_FOUND | 系統找不到指定的檔案 | 路徑錯誤、檔案被刪除/移動 |
| 3 | 0x0003 | ERROR_PATH_NOT_FOUND | 系統找不到指定的路徑 | 目錄不存在、網路路徑離線 |
| 5 | 0x0005 | ERROR_ACCESS_DENIED | 拒絕存取 | 權限不足、檔案被鎖定、防毒軟體攔截 |
| 6 | 0x0006 | ERROR_INVALID_HANDLE | 無效的代碼/控制代碼 | 傳遞給 API 的 Handle 錯誤/已關閉 |
| 8 | 0x0008 | ERROR_NOT_ENOUGH_MEMORY | 記憶體不足,無法處理指令 | 程式記憶體洩漏、系統可用記憶體耗盡 |
| 13 | 0x000D | ERROR_INVALID_DATA | 資料錯誤 | CRC 校驗失敗、磁碟壞軌、檔案損毀 |
| 14 | 0x000E | ERROR_OUTOFMEMORY | 儲存體空間不夠 | 虛擬記憶體不足、32-bit 程式觸及 2GB/3GB 限制 |
| 15 | 0x000F | ERROR_INVALID_DRIVE | 系統找不到指定的磁碟機 | 磁碟機代號錯誤、網路磁碟未連線 |
| 16 | 0x0010 | ERROR_CURRENT_DIRECTORY | 無法移除目錄 | 目錄非空、為目前工作目錄、被程式鎖定 |
| 17 | 0x0011 | ERROR_NOT_SAME_DEVICE | 無法將檔案移到其他的磁碟機 | 跨磁碟機 MoveFile 需 Copy+Delete |
| 18 | 0x0012 | ERROR_NO_MORE_FILES | 沒有任何檔案 | FindNextFile 遍歷結束 |
| 19 | 0x0013 | ERROR_WRITE_PROTECT | 媒體為寫保護 | 磁片/USB 實體寫保護開關、SD 卡鎖定 |
| 20 | 0x0014 | ERROR_NOT_READY | 裝置尚未就緒 | 光碟機無片、磁碟機未就緒、網路離線 |
| 21 | 0x0015 | ERROR_BAD_COMMAND | 裝置無法識別指令 | 驅動程式錯誤、硬體故障 |
| 22 | 0x0016 | ERROR_CRC | 資料錯誤 (CRC) | 磁碟讀取錯誤、網路封包損毀 |
| 23 | 0x0017 | ERROR_BAD_LENGTH | 指令長度錯誤 | IOCTL 輸入緩衝區大小不符 |
| 24 | 0x0018 | ERROR_SEEK | 磁碟機找不到指定磁區/磁軌 | 硬碟壞軌、磁頭定位失敗 |
| 25 | 0x0019 | ERROR_NOT_DOS_DISK | 指定磁碟/磁片無法存取 | 檔案系統損毀、非 Windows 格式 |
| 26 | 0x001A | ERROR_SECTOR_NOT_FOUND | 磁碟機找不到要求的磁區 | 硬碟實體損壞 |
| 27 | 0x001B | ERROR_OUT_OF_PAPER | 印表機沒有紙 | 列印佇列卡住 |
| 28 | 0x001C | ERROR_WRITE_FAULT | 無法將資料寫入指定磁碟機 | 磁碟滿、壞軌、權限、網路中斷 |
| 29 | 0x001D | ERROR_READ_FAULT | 無法讀取指定的裝置 | 同寫入故障 |
| 30 | 0x001E | ERROR_GEN_FAILURE | 連接裝置無法運作 | USB 裝置掉線、驅動崩潰 |
| 32 | 0x0020 | ERROR_SHARING_VIOLATION | 程序無法存取檔案,因被另一程序使用 | 檔案被獨佔開啟、防毒掃描中、系統檔案鎖定 |
| 33 | 0x0021 | ERROR_LOCK_VIOLATION | 檔案部分被鎖定,無法存取 | 區域鎖定 (LockFile/Exclusive) |
| 34 | 0x0022 | ERROR_WRONG_DISK | 磁片不正確,請插入正確磁片 | 多卷軟體安裝提示換片 |
| 36 | 0x0024 | ERROR_TOO_MANY_OPEN_FILES | 開啟的共用檔案數量太多 | 超過系統/每程序開啟檔案上限 |
| 38 | 0x0026 | ERROR_HANDLE_EOF | 到達檔案結尾 | 讀取超過檔案大小 |
| 39 | 0x0027 | ERROR_DISK_FULL | 磁碟已滿 | 清理空間、擴充磁碟 |
| 50 | 0x0032 | ERROR_NOT_SUPPORTED | 不支援這種網路要求 | 舊版協定、防火牆封鎖 |
| 51 | 0x0033 | ERROR_REM_NOT_LIST | 遠端電腦無法使用 | 目標離線、NetBIOS 名稱解析失敗 |
| 52 | 0x0034 | ERROR_DUP_NAME | 網路名稱重複 | 同網段有相同電腦名稱 |
| 53 | 0x0035 | ERROR_BAD_NETPATH | 網路路徑找不到 | 伺服器關機、共用名稱錯誤、防火牆 |
| 54 | 0x0036 | ERROR_NETWORK_BUSY | 網路忙碌中 | 頻寬飽和、伺服器連線數上限 |
| 55 | 0x0037 | ERROR_DEV_NOT_EXIST | 指定網路資源/裝置不再可用 | 連線中斷、共用被移除 |
| 57 | 0x0039 | ERROR_BAD_NET_RESP | 網路介面卡發生問題 | 網卡驅動、纜線、交換器故障 |
| 58 | 0x003A | ERROR_UNEXP_NET_ERR | 網路發生意外錯誤 | 協定錯誤、封包截斷 |
| 59 | 0x003B | ERROR_BAD_REM_ADAP | 遠端介面卡不相容 | 協定版本不符 |
| 61 | 0x003D | ERROR_PRINTQ_FULL | 印表機佇列已滿 | 清除列印工作 |
| 62 | 0x003E | ERROR_NO_SPOOL_SPACE | 伺服器空間不足無法儲存列印檔 | 磁碟滿、Spooler 服務異常 |
| 63 | 0x003F | ERROR_PRINT_CANCELLED | 列印工作已刪除 | 使用者取消 |
| 64 | 0x0040 | ERROR_NETNAME_DELETED | 指定網路名稱無法使用 | 共用被刪除、連線逾時 |
| 65 | 0x0041 | ERROR_NETWORK_ACCESS_DENIED | 拒絕網路存取 | 權限不足、防火牆、IPsec 封鎖 |
| 67 | 0x0043 | ERROR_BAD_NET_NAME | 網路名稱找不到 | DNS/NetBIOS 解析失敗 |
| 70 | 0x0046 | ERROR_REMOTE_SESSION_LIMIT_EXCEEDED | 連線數達上限無法再連線 | Windows 非伺服器版限制 10 連線 |
| 71 | 0x0047 | ERROR_ALREADY_ASSIGNED | 裝置已指派/暫停 | 磁碟機代號衝突 |
| 80 | 0x0050 | ERROR_FILE_EXISTS | 檔案已經存在 | CreateFile 不含 OVERWRITE、CopyFile 未覆寫 |
| 82 | 0x0052 | ERROR_CANNOT_MAKE | 無法建立目錄或檔案 | 路徑過長、權限、磁碟滿 |
| 83 | 0x0053 | ERROR_FAIL_I24 | INT 24 失敗 (舊式裝置錯誤) | 磁碟機硬體錯誤 |
| 84 | 0x0054 | ERROR_OUT_OF_STRUCTURES | 處理要求的儲存體無法使用 | 核心資源耗盡 (Paged/Non-paged Pool) |
| 85 | 0x0055 | ERROR_ALREADY_ASSIGNED | 本地裝置名稱已在使用中 | net use 磁碟機代號衝突 |
| 86 | 0x0056 | ERROR_INVALID_PASSWORD | 指定的網路密碼錯誤 | 認證失敗 |
| 87 | 0x0057 | ERROR_INVALID_PARAMETER | 參數錯誤 | API 參數無效、緩衝區太小、指標為 NULL |
| 88 | 0x0058 | ERROR_NET_WRITE_FAULT | 網路資料寫入錯誤 | 連線中斷、封包遺失 |
| 89 | 0x0059 | ERROR_NO_PROC_SLOTS | 系統無法執行其他程序 | 進程槽位耗盡 (舊版限制) |
| 100 | 0x0064 | ERROR_TOO_MANY_SEMAPHORES | 無法建立其他系統 Semaphore | 同步物件耗盡 |
| 106 | 0x006A | ERROR_DISK_CHANGE | 請插入磁片 | 可移動媒體已更換 |
| 108 | 0x006C | ERROR_DRIVE_LOCKED | 磁碟正在使用中或被鎖定 | CHKDSK/Format/Defrag 執行中 |
| 109 | 0x006D | ERROR_BROKEN_PIPE | Pipe 已中止 | 無名管道讀寫端其中一方關閉 |
| 110 | 0x006E | ERROR_OPEN_FAILED | 系統無法開啟指定裝置或檔案 | 路徑/權限/共用衝突 |
| 111 | 0x006F | ERROR_BUFFER_OVERFLOW | 檔名太長 | 超過 MAX_PATH (260) 或緩衝區不足 |
| 112 | 0x0070 | ERROR_DISK_FULL | 磁碟空間不足 | 同 39 |
| 113 | 0x0071 | ERROR_NO_MORE_SEARCH_HANDLES | 沒有可用的內部檔案識別字 | 搜尋控制代碼耗盡 |
| 117 | 0x0075 | ERROR_INVALID_IOCTL | IOCTL 呼叫不正確 | 控制碼/緩衝區/大小不符 |
| 118 | 0x0076 | ERROR_INVALID_VERIFY_SWITCH | 寫入驗證參數值不正確 | IOCTL_DISK_VERIFY 參數錯誤 |
| 119 | 0x0077 | ERROR_BAD_DRIVER_LEVEL | 系統不支援所要求的指令 | 驅動版本過舊/過新 |
| 120 | 0x0078 | ERROR_CALL_NOT_IMPLEMENTED | 此功能僅在 Win32 模式有效 | 16-bit 程式呼叫 32-bit API |
| 121 | 0x0079 | ERROR_SEM_TIMEOUT | Semaphore 逾時 | 等待同步物件超時 |
| 122 | 0x007A | ERROR_INSUFFICIENT_BUFFER | 傳遞給系統呼叫的資料區域太小 | 緩衝區小於所需大小,API 會回傳所需大小 |
| 123 | 0x007B | ERROR_INVALID_NAME | 檔名/目錄名/磁碟標籤語法錯誤 | 含非法字元 (:,*,?,",<,>,|)、路徑格式錯誤 |
| 124 | 0x007C | ERROR_INVALID_LEVEL | 系統呼叫層次不正確 | 資訊層級參數錯誤 |
| 125 | 0x007D | ERROR_NO_VOLUME_LABEL | 磁碟沒有設定標籤 | GetVolumeInformation 取得空標籤 |
| 126 | 0x007E | ERROR_MOD_NOT_FOUND | 找不到指定的模組 (DLL/EXE) | 相依 DLL 遺失、路徑不在 PATH、架構不符 (x86/x64) |
| 127 | 0x007F | ERROR_PROC_NOT_FOUND | 找不到指定的程序 (函數) | DLL 版本不符、匯出函數名稱錯誤 |
| 128 | 0x0080 | ERROR_WAIT_NO_CHILDREN | 沒有子程序可供等待 | WaitForSingleObject 無子程序 |
| 129 | 0x0081 | ERROR_CHILD_NOT_COMPLETE | 應用程式無法在 Win32 模式執行 | 16-bit 程式、DOS 程式、映像損毀 |
| 130 | 0x0082 | ERROR_DIRECT_ACCESS_HANDLE | 嘗試使用原始磁碟分割區控制代碼進行非原始 I/O | DeviceIoControl 用法錯誤 |
| 131 | 0x0083 | ERROR_NEGATIVE_SEEK | 嘗試將檔案指標移至檔案開頭之前 | SetFilePointer 負位移錯誤 |
| 132 | 0x0084 | ERROR_SEEK_DEVICE | 無法在指定裝置設定檔案指標 | 裝置不支援定位 (如序列埠、管道) |
| 133 | 0x0085 | ERROR_IS_JOIN_TARGET | JOIN/SUBST 無法用於已結合的磁碟機 | JOIN/SUBST 指令衝突 |
| 134 | 0x0086 | ERROR_IS_JOINED | 嘗試在已結合的磁碟機使用 JOIN/SUBST | 同上 |
| 135 | 0x0087 | ERROR_IS_SUBSTED | 嘗試在已替換的磁碟機使用 JOIN/SUBST | 同上 |
| 136 | 0x0088 | ERROR_NOT_JOINED | 嘗試刪除未連結磁碟機的連結關係 | 同上 |
| 137 | 0x0089 | ERROR_NOT_SUBSTED | 嘗試刪除未替換磁碟機的替換關係 | 同上 |
| 138 | 0x008A | ERROR_JOIN_TO_JOIN | 嘗試將磁碟機結合到已結合磁碟機的目錄 | 巢狀 JOIN |
| 139 | 0x008B | ERROR_JOIN_TO_SUBST | 嘗試將磁碟機替換成已替換磁碟機的目錄 | JOIN/SUBST 混用 |
| 140 | 0x008C | ERROR_SUBST_TO_SUBST | 嘗試將磁碟機 SUBST 成已結合磁碟機目錄 | 同上 |
| 141 | 0x008D | ERROR_SUBST_TO_JOIN | 系統無法執行 JOIN 或 SUBST | 資源不足 |
| 142 | 0x008E | ERROR_DIR_NOT_ROOT | 目錄不是根目錄的子目錄 | 路徑邏輯錯誤 |
| 143 | 0x008F | ERROR_DIR_NOT_EMPTY | 目錄仍有資料 | RemoveDirectory 非空目錄 |
| 144 | 0x0090 | ERROR_IS_SUBST_PATH | 指定路徑已被替換過 | SUBST 路徑重複 |
| 145 | 0x0091 | ERROR_IS_JOIN_PATH | 資源不足,無法處理指令 | 核心記憶體/控制代碼耗盡 |
| 146 | 0x0092 | ERROR_PATH_BUSY | 指定路徑目前無法使用 | 被其他程序鎖定/掃描中 |
| 147 | 0x0093 | ERROR_IS_SUBST_TARGET | 嘗試結合/替換的目錄是已替換的目標 | SUBST 循環參考 |
| 148 | 0x0094 | ERROR_SYSTEM_TRACE | CONFIG.SYS 未指定系統追蹤或追蹤被取消 | 舊版 DOS 追蹤功能 |
| 149 | 0x0095 | ERROR_INVALID_EVENT_COUNT | DosMuxSemWait 訊號數目不正確 | OS/2 相容子系統 |
| 150 | 0x0096 | ERROR_TOO_MANY_MUXWAITERS | DosMuxSemWait 設定太多 Semaphore | 同上 |
| 151 | 0x0097 | ERROR_INVALID_LIST_FORMAT | DosMuxSemWait 清單不正確 | 同上 |
| 152 | 0x0098 | ERROR_LABEL_TOO_LONG | 磁碟標籤長度超過限制 | 標籤超過 11/32 字元 |
| 153 | 0x0099 | ERROR_TOO_MANY_THREADS | 無法建立其他執行緒 | 進程/系統執行緒上限、記憶體不足 |
| 154 | 0x009A | ERROR_RECEIVER_EXPIRED | 接收程序拒絕接受信號 | 郵槽/管道對端已關閉 |
| 155 | 0x009B | ERROR_SECTION_NOT_DISCARDABLE | 區段已捨棄,無法鎖定 | 記憶體映射檔區段屬性 |
| 156 | 0x009C | ERROR_SECTION_ALREADY_UNLOCKED | 區段已解除鎖定 | 重複 Unlock |
| 157 | 0x009D | ERROR_INVALID_THREAD_ID | 執行緒識別碼位址不正確 | 無效 Thread ID |
| 158 | 0x009E | ERROR_INVALID_ARGUMENT | DosExecPgm 參數字串不正確 | 啟動程式參數格式錯誤 |
| 159 | 0x009F | ERROR_INVALID_PATH | 指定路徑不正確 | 路徑格式/字元錯誤 |
| 160 | 0x00A0 | ERROR_SIGNAL_PENDING | 訊號等候處理 | OS/2 信號 |
| 162 | 0x00A2 | ERROR_CANNOT_CREATE_THREAD | 系統無法建立執行緒 | 記憶體/桌面堆疊耗盡 |
| 163 | 0x00A3 | ERROR_CANNOT_LOCK_FILE | 無法鎖定檔案部分範圍 | LockFileEx 失敗、強制鎖定衝突 |
| 164 | 0x00A4 | ERROR_RESOURCE_IN_USE | 所要求的資源正在使用中 | 裝置/檔案/登錄鍵被佔用 |
| 165 | 0x00A5 | ERROR_CANCEL_VIOLATION | 取消範圍鎖定要求不明顯 | UnlockFileEx 參數錯誤 |
| 166 | 0x00A6 | ERROR_FILE_SYSTEM_LIMITATION | 檔案系統不支援自動變更鎖定類型 | FAT/FAT32 不支援區域鎖定升級 |
| 167 | 0x00A7 | ERROR_INVALID_SEGMENT_NUMBER | 系統發現不正確的區段號碼 | 記憶體區段錯誤 (舊架構) |
| 168 | 0x00A8 | ERROR_INVALID_ORDINAL | 作業系統無法執行 %1 | 匯入序數不存在 |
| 169 | 0x00A9 | ERROR_ALREADY_EXISTS | 檔案已存在,無法建立同一檔案 | CreateFile CREATE_NEW 衝突 |
| 170 | 0x00AA | ERROR_INVALID_FLAG_NUMBER | 傳送的旗標錯誤 | 旗標值超出範圍 |
| 171 | 0x00AB | ERROR_SEM_NOT_FOUND | 指定的系統旗標找不到 | Semaphore/Event 名稱錯誤 |
| 172 | 0x00AC | ERROR_INVALID_STARTING_CODESEG | 作業系統無法執行 %1 | 映像啟動區段損毀 |
| 173 | 0x00AD | ERROR_INVALID_STACKSEG | 作業系統無法執行 %1 | 堆疊區段損毀 |
| 174 | 0x00AE | ERROR_INVALID_MODULETYPE | 作業系統無法執行 %1 | EXE/DLL 格式錯誤 (非 PE、子系統不符) |
| 175 | 0x00AF | ERROR_INVALID_EXE_SIGNATURE | 無法在 Win32 模式下執行 %1 | 非 Win32 PE 映像 (DOS、16-bit、損毀) |
| 176 | 0x00B0 | ERROR_EXE_MARKED_INVALID | 作業系統無法執行 %1 | 映像標記無效 |
| 177 | 0x00B1 | ERROR_BAD_EXE_FORMAT | %1 不是正確的 Win32 應用程式 | 架構不符 (x64 執行 x86 需 WoW64、ARM64 模擬)、映像截斷 |
| 178 | 0x00B2 | ERROR_ITERATED_DATA_EXCEEDS_64K | 作業系統無法執行 %1 | 資料區段超過 64KB (舊限制) |
| 179 | 0x00B3 | ERROR_INVALID_MINALLOCSIZE | 作業系統無法執行 %1 | 最小配置大小無效 |
| 180 | 0x00B4 | ERROR_DYNLINK_FROM_INVALID_RING | 作業系統目前無法執行 %1 | 環保護違規 |
| 181 | 0x00B5 | ERROR_IOPL_NOT_ENABLED | 作業系統無法執行 %1 | I/O 特權級未啟用 |
| 182 | 0x00B6 | ERROR_INVALID_SEGDPL | 作業系統無法執行 %1 | 區段描述子特權級無效 |
| 183 | 0x00B7 | ERROR_AUTODATASEG_EXCEEDS_64K | 作業系統無法執行 %1 | 自動資料區段超過 64KB |
| 184 | 0x00B8 | ERROR_RING2SEG_MUST_BE_MOVABLE | 程式碼區段不可以大於或等於 64KB | 16-bit 區段限制 |
| 185 | 0x00B9 | ERROR_RELOC_CHAIN_XEEDS_SEGLIM | 重新定位鏈超過區段限制 | 16-bit 重定位溢位 |
| 186 | 0x00BA | ERROR_INFLOOP_IN_RELOC_CHAIN | 重新定位鏈無限迴圈 | 映像重定位表損毀 |
| 187 | 0x00BB | ERROR_ENVVAR_NOT_FOUND | 環境變數未找到 | GetEnvironmentVariable 失敗 |
| 188 | 0x00BC | ERROR_NO_SIGNAL_SENT | 未傳送訊號 | OS/2 相容 |
| 189 | 0x00BD | ERROR_FILENAME_EXCED_RANGE | 檔名超過範圍 | 路徑過長 |
| 190 | 0x00BE | ERROR_RING2_STACK_NOT_MOVABLE | Ring 2 堆疊不可移動 | 16-bit 限制 |
| 191 | 0x00BF | ERROR_META_EXPANSION_TOO_LONG | 中繼字元展開過長 | 萬用字元展開超過緩衝區 |
| 192 | 0x00C0 | ERROR_INVALID_SIGNAL_NUMBER | 無效的訊號號碼 | OS/2 信號 |
| 193 | 0x00C1 | ERROR_THREAD_1_INACTIVE | 執行緒 1 非作用中 | 進程主執行緒異常終止 |
| 194 | 0x00C2 | ERROR_LOCKED | 已鎖定 | 檔案/記錄被鎖定 |
| 195 | 0x00C3 | ERROR_TOO_MANY_MODULES | 載入模組過多 | 進程載入 DLL 數量超限 |
| 196 | 0x00C4 | ERROR_NESTING_NOT_ALLOWED | 不允許巢狀 | 關鍵區段/鎖巢狀超過限制 |
| 197 | 0x00C5 | ERROR_EXE_MACHINE_TYPE_MISMATCH | %1 不是有效的 Win32 應用程式 | 機器類型不符 (x86 vs x64 vs ARM64) |
| 198 | 0x00C6 | ERROR_EXE_CANNOT_MODIFY_STRONG | 作業系統無法執行 %1 | 強式簽名映像禁止修改 |
| 199 | 0x00C7 | ERROR_EXE_CANNOT_MODIFY_SIGNED | 作業系統無法執行 %1 | 簽名映像禁止修改 |
| 200 | 0x00C8 | ERROR_EXE_CANNOT_MODIFY_DEBUG | 程式碼區段不可以大於或等於 64KB | 調試映像限制 |
net helpmsg <錯誤碼> (如 net helpmsg 5 → "拒絕存取")。[System.ComponentModel.Win32Exception]::new(5).Message。C:\Program Files (x86)\Windows Kits\10\Include\\shared\winerror.h (Windows SDK)。提示:錯誤代碼 0-15999 為系統標準錯誤;20000+ 為應用程式自定義 (如 SQL Server, IIS, Exchange)。遇到未知代碼優先用 net helpmsg 或 FormatMessage API 解析。
找回 Windows XP 被隱藏的元件:工作列分組、系統匣圖示、輸入法、開始選單與安全性分頁
Windows XP 登錄檔匯入/匯出完整教學:備份、編輯、還原一條龍操作
Windows XP SP2 下載慢、網頁打不開?手動修改 Tcpip.sys 連線上限至 100/5000 徹底解決
Windows 修補程式自動化安裝:批次檔識別兩類安裝程式並套用正確參數
Windows XP 搜尋功能故障點點通:四大常見錯誤與修復方案
解決 Windows XP SP2 安裝後常見 10 大網路故障:OE 圖片、共用印表機、防火牆警示、ActiveX、遠端桌面、彈出視窗、Cookie、外掛、P2P