Adlar ve açıklamalar © Microsoft Corporation'a aittir; Windows SDK üst bilgi dosyalarından ve CC BY 4.0 lisansıyla yayımlanan Microsoft Learn belgelerinden alınmıştır. Açıklamalar, Microsoft çevirdiyse kendi dilinizde gösterilir.Microsoft Learn'de sistem hata kodları
Sık görülen hatalar
Windows Update, yüklemeler ve dosyalar
Açılmayan veya kapanan programlar
Mavi ekranlar (bug check)
Nasıl çalışır
Windows hataları dört farklı aileden sayılarla bildirir. 5 veya 1603 gibi Win32 kodlarını GetLastError döndürür. 0x80070005 gibi HRESULT değerleri COM, Windows Update ve yükleyicilere aittir. 0xC0000005 gibi NTSTATUS değerleri çekirdekten gelir ve bir program kapandığında görünür. 0xD1 gibi bug check kodları mavi ekranlara aittir. Araç, Microsoft'un Windows SDK'da yayımladığı ad ve metinlerle dört aileyi aynı anda arar.
Birçok HRESULT içinde bir Win32 kodu veya NTSTATUS taşır. Değerin FACILITY_WIN32 alanı varsa, örneğin 0x80070005, araç içindeki Win32 kodunu ve hatayı asıl açıklayan açıklamasını da gösterir. Ayrıca değerin bitlerini ayırır: önem derecesi, hatayı hangi bileşenin oluşturduğunu gösteren facility ve bu facility içindeki kod.
Örnekler
0x80070005FACILITY_WIN32 (7) · 5 → ERROR_ACCESS_DENIED0x8007 ile başlayan bir HRESULT, son dört hanesinde bir Win32 kodu taşır: 0x0005, yani 5, erişim engellendi demektir.-10737418190xC0000005 · STATUS_ACCESS_VIOLATIONOlay Görüntüleyicisi ve işlem çıkış kodları değeri çoğunlukla işaretli onluk sayı olarak gösterir. Bu, bir erişim ihlalinin aynı NTSTATUS değeridir.16030x80070643 · ERROR_INSTALL_FAILUREWindows Installer bir yükleme başarısız olunca 1603 ile sonlanır; Windows Update aynı hatayı 0x80070643 HRESULT değeri olarak bildirir.Kullanım senaryoları
- Çözüm aramadan önce bir Windows Update, Microsoft Store veya yükleyici hatasını anlamak.
- Bir işlemin çıkış kodunu veya Olay Görüntüleyicisi'nde görünen değeri sabitin adına çevirmek.
- Durdurma kodundan yola çıkarak bir mavi ekranın bug check değerini belirlemek.
- Windows API'sine karşı programlarken ERROR_ACCESS_DENIED veya E_INVALIDARG gibi bir sabitin değerini bulmak.
- Çevrilmiş görünen bir hatanın özgün İngilizce metnini görüp forumlarda ve belgelerde aramak.
Sık sorulan sorular
Aynı sayı neden iki farklı hata olarak görünüyor?
Her aile kodlarını ayrı numaralandırır. 0x7B hem 123 numaralı Win32 hatasıdır (dosya adı yanlış) hem de bir mavi ekranın INACCESSIBLE_BOOT_DEVICE bug check değeridir. Hangisi olduğunu bağlam gösterir: bir mavi ekrandan geldiyse bug check, bir program veya komut döndürdüyse Win32'dir.
Bir Win32 kodu HRESULT'a nasıl dönüştürülür?
HRESULT_FROM_WIN32 makrosuyla: kod onaltılık alınır ve önüne 0x8007 eklenir; bu, hata bitini 1'e, WIN32 facility değerini 7'ye ayarlar. 5, 0x80070005 olur; 0x643 olan 1603 ise 0x80070643 olur. Geri dönmek için son dört hane alınır.
Neden negatif bir sayı görünüyor?
Hata türündeki HRESULT ve NTSTATUS değerlerinde en yüksek bit 1'dir; bu yüzden işaretli tamsayı olarak gösterildiklerinde negatif sayı çıkar. -2147024891 değeri 0x80070005, -1073741819 değeri 0xC0000005'tir. Araç her iki biçimi de kabul eder.
Neden bazı açıklamalar İngilizce?
Çevrilmiş açıklamalar, Microsoft'un Win32 kodları için Microsoft Learn'de yayımladıklarıdır. HRESULT, NTSTATUS ve Learn'ün dilinize çevirmediği Win32 kodlarının metinleri, Windows SDK'da göründüğü gibi İngilizce gösterilir.
Kod görünmüyorsa ne yapmalıyım?
Programlar kendi kodlarını tanımlayabilir; özellikle C biti 1 olanlar veya Windows'a ait olmayan bir facility kullananlar SDK'da yer almaz. Bu durumda hatayı hangi bileşenin oluşturduğunu anlamak için aracın gösterdiği facility değerine bakın ve kodu o ürünün belgelerinde arayın.