EDIT: xấu của tôi, tôi đã không đọc KB đủ để nhận ra rằng về cơ bản nó vô dụng như một câu trả lời.
Một cách hữu ích hơn để xác định xem bạn có ở chế độ an toàn không là từ : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000của Mark E. Russinovich, David A. Solomon .
Hạt nhân Windows quét các tham số khởi động để tìm kiếm các công tắc chế độ an toàn sớm trong quá trình khởi động và đặt biến bên trong initSafeBootMode thành một giá trị phản ánh các công tắc mà nhân tìm thấy. Hạt nhân ghi giá trị initSafeBootMode vào giá trị đăng ký HKLM \ HỆ THỐNG \ CurrentControlSet \ SafeBoot \ Option \ Option Giá trị để các thành phần chế độ người dùng, như SCM, có thể xác định chế độ khởi động của hệ thống.
Lấy phần trên và ghép với phần bên dưới, và bạn sẽ có một vị trí đăng ký mà bạn có thể kiểm tra với một giá trị số bạn có thể dịch thành thứ gì đó hữu ích.
Từ KB support.microsoft có tiêu đề, "Cách xác định xem hệ thống có chạy ở Chế độ an toàn từ trình điều khiển thiết bị hay không."
Nhân hệ điều hành Windows xuất con trỏ sang biến ULONG có tên là initSafeBootMode. Biến này chứa các cài đặt Chế độ an toàn.
Trình điều khiển thiết bị có thể xác định xem hệ thống có đang chạy ở Chế độ an toàn hay không bằng giá trị của biến initSafeBootMode. Giá trị 0 nghĩa là hệ thống không chạy ở Chế độ an toàn.
Bảng sau liệt kê các chế độ cho các giá trị khác. Chế độ
giá trị 1 SAFEBOOT_MINIMAL 2 SAFEBOOT_NETWORK 3 * SAFEBOOT_DSREPAIR
* Lưu ý Giá trị 3 chỉ áp dụng cho bộ điều khiển miền Windows.