Windows operating system messages

«Operating System Not Found» or «Missing operating system» error message when you start your Windows XP-based computer

Summary

When you try to start a Windows XP-Based computer, you may receive an error message that the operating system is not found.

Symptoms

When you start a Windows XP-Based computer, you may receive one of the following error messages.

Error message 1

Operating system not found.

Error message 2

Missing Operating System

When you start your computer to the Recovery Console to recover functionality, you may receive an error message that resembles the following error message:

Setup did not find any hard drives installed on your computer.

Cause

This issue may occur if one or more of the following conditions are true:

The basic input/output system (BIOS) does not detect the hard disk.

The hard disk is damaged.

Sector 0 of the physical hard disk drive has an incorrect or malformed master boot record (MBR).

Note Some third-party programs or disk corruption can damage an MBR.

An incompatible partition is marked as Active.

A partition that contains the MBR is no longer active.

Resolution

To resolve this issue, use one of the following methods, depending on your situation.

Contact your hardware manufacturer

Your best bet may be to contact the manufacturer of your computer or your hard disk. The manufacturer may have a utility that you can use to perform a more detailed scan for damaged areas of the disk and help verify the correct BIOS settings. However, be aware that the damage to your hard disk may be serious. Sometimes this means that your only solution is to replace your hard disk.

If a fix or workaround is not available, you can use the «Advanced Troubleshooting» section to try to resolve this issue.

Advanced troubleshooting

This section is intended for advanced computer users. If you are not comfortable with advanced troubleshooting, you might want to ask someone for help or contact support. For information about how to contact Microsoft support, visit the following Microsoft Web site:

Method 1: Verify the BIOS settings

Verify the computer’s BIOS settings to make sure that BIOS lists and recognizes the hard disk. See the computer documentation or contact the hardware manufacturer for information about how to verify the BIOS settings.

After you verify that the computer’s BIOS detects the hard disk, restart the computer, and then test to determine whether the issue is resolved. If the issue is not resolved, or if the computer’s BIOS cannot detect the hard disk, you may have issues with your hardware. Contact the hardware manufacturer to inquire about how to resolve this issue. You may have to replace the hard disk.

For information about how to contact hardware manufacturers, click the appropriate article number in the following list to view the article in the Microsoft Knowledge Base:

65416 Hardware and software vendor contact information, A-K

60781 Hardware and software vendor contact information, L-P

60782 Hardware and software vendor contact information, Q-Z

Method 2: Use Recovery Console

Use the fixmbr command in the Windows XP Recovery Console to repair the MBR of the startup partition.

Читайте также:  Ошибка c windows system32 dllhost exe

Warning This command can damage your partition table if a virus is present or if a hardware problem exists. If you use this command, you may create inaccessible partitions. We recommend that you run antivirus software before you use this command. We also recommend that you backup your data before you use this command. If the fixmbr command detects an invalid or non-standard partition table signature, the fixmbr command prompts you for permission before rewriting the MBR. The fixmbr command is supported only on x86-based computers.

For more information about Recovery Console, click the following article numbers to view the articles in the Microsoft Knowledge Base:

314058 Description of the Windows XP Recovery Console

307654 How to install and use the Recovery Console in Windows XP

More Information

For more information about how to troubleshoot startup problems in Windows XP, click the following article number to view the article in the Microsoft Knowledge Base:

308041 Resources for troubleshooting startup problems in Windows XP

Window Messages (Get Started with Win32 and C++)

A GUI application must respond to events from the user and from the operating system.

  • Events from the user include all the ways that someone can interact with your program: mouse clicks, key strokes, touch-screen gestures, and so on.
  • Events from the operating system include anything «outside» of the program that can affect how the program behaves. For example, the user might plug in a new hardware device, or Windows might enter a lower-power state (sleep or hibernate).

These events can occur at any time while the program is running, in almost any order. How do you structure a program whose flow of execution cannot be predicted in advance?

To solve this problem, Windows uses a message-passing model. The operating system communicates with your application window by passing messages to it. A message is simply a numeric code that designates a particular event. For example, if the user presses the left mouse button, the window receives a message that has the following message code.

Some messages have data associated with them. For example, the WM_LBUTTONDOWN message includes the x-coordinate and y-coordinate of the mouse cursor.

To pass a message to a window, the operating system calls the window procedure registered for that window. (And now you know what the window procedure is for.)

The Message Loop

An application will receive thousands of messages while it runs. (Consider that every keystroke and mouse-button click generates a message.) Additionally, an application can have several windows, each with its own window procedure. How does the program receive all these messages and deliver them to the correct window procedure? The application needs a loop to retrieve the messages and dispatch them to the correct windows.

For each thread that creates a window, the operating system creates a queue for window messages. This queue holds messages for all the windows that are created on that thread. The queue itself is hidden from your program. You cannot manipulate the queue directly. However, you can pull a message from the queue by calling the GetMessage function.

This function removes the first message from the head of the queue. If the queue is empty, the function blocks until another message is queued. The fact that GetMessage blocks will not make your program unresponsive. If there are no messages, there is nothing for the program to do. If you have to perform background processing, you can create additional threads that continue to run while GetMessage waits for another message. (See Avoiding Bottlenecks in Your Window Procedure.)

The first parameter of GetMessage is the address of a MSG structure. If the function succeeds, it fills in the MSG structure with information about the message. This includes the target window and the message code. The other three parameters let you filter which messages you get from the queue. In almost all cases, you will set these parameters to zero.

Читайте также:  Windows не удалось загрузить локально сохраненный профиль возможные причины этой

Although the MSG structure contains information about the message, you will almost never examine this structure directly. Instead, you will pass it directly to two other functions.

The TranslateMessage function is related to keyboard input. It translates keystrokes (key down, key up) into characters. You do not really have to know how this function works; just remember to call it before DispatchMessage. The link to the MSDN documentation will give you more information, if you are curious.

The DispatchMessage function tells the operating system to call the window procedure of the window that is the target of the message. In other words, the operating system looks up the window handle in its table of windows, finds the function pointer associated with the window, and invokes the function.

For example, suppose that the user presses the left mouse button. This causes a chain of events:

  1. The operating system puts a WM_LBUTTONDOWN message on the message queue.
  2. Your program calls the GetMessage function.
  3. GetMessage pulls the WM_LBUTTONDOWN message from the queue and fills in the MSG structure.
  4. Your program calls the TranslateMessage and DispatchMessage functions.
  5. Inside DispatchMessage, the operating system calls your window procedure.
  6. Your window procedure can either respond to the message or ignore it.

When the window procedure returns, it returns back to DispatchMessage. This returns to the message loop for the next message. As long as your program is running, messages will continue to arrive on the queue. Therefore, you must have a loop that continually pulls messages from the queue and dispatches them. You can think of the loop as doing the following:

As written, of course, this loop would never end. That is where the return value for the GetMessage function comes in. Normally, GetMessage returns a nonzero value. When you want to exit the application and break out of the message loop, call the PostQuitMessage function.

The PostQuitMessage function puts a WM_QUIT message on the message queue. WM_QUIT is a special message: It causes GetMessage to return zero, signaling the end of the message loop. Here is the revised message loop.

As long as GetMessage returns a nonzero value, the expression in the while loop evaluates to true. After you call PostQuitMessage, the expression becomes false and the program breaks out of the loop. (One interesting result of this behavior is that your window procedure never receives a WM_QUIT message. Therefore, you do not have to have a case statement for this message in your window procedure.)

The next obvious question is when to call PostQuitMessage. We’ll return to this question in the topic Closing the Window, but first we have to write our window procedure.

Posted Messages versus Sent Messages

The previous section talked about messages going onto a queue. Sometimes, the operating system will call a window procedure directly, bypassing the queue.

The terminology for this distinction can be confusing:

  • Posting a message means the message goes on the message queue, and is dispatched through the message loop (GetMessage and DispatchMessage).
  • Sending a message means the message skips the queue, and the operating system calls the window procedure directly.

For now, the difference is not very important. The window procedure handles all messages. However, some messages bypass the queue and go directly to your window procedure. However, it can make a difference if your application communicates between windows. You can find a more thorough discussion of this issue in the topic About Messages and Message Queues.

Читайте также:  Выберите раскладку клавиатуры windows 10 не работает

Missing operating system — что делать в Windows 7/10

При установке или загрузке операционной системы пользователь может внезапно столкнуться с сообщением «Missing operating system». Обычно появление данного сообщения связано с отсутствием на жёстком диске (флешке, оптическом диске) загрузочных файлов операционной системы, о чём и было сообщено пользователю. В данной статье я подробно расскажу, что это за ошибка, каковы её причины, и как её исправить в ОС Виндовс 7 и 10 на ваших ПК.

Что значит текст ошибки

В переводе с английского языка текст данной ошибки выглядит как «Отсутствует операционная система», и обычно обозначает ситуацию, когда система обратилась к загрузочному диску для считывания загрузочных файлов, но не обнаружила их.

Данная ошибка «Missing operation system» обычно сходна с другой аналогичной ошибкой, которая сигнализирует о себе сообщением «Operating System Not Found» (операционная система не найдена)

Причины ошибки на компьютере Виндовс

Причины данной дисфункции обычно могут быть следующими:

  • Пользователь забыл изъять флешь-накопитель с разъёма ПК после установки ОС;
  • От одного из соответствующих разъёмов отошёл шлейф, связывающий винчестер и материнскую плату;
  • Повреждён загрузчик BCD (Boot configuration data);
  • БИОС некорректно настроен;
  • Повреждены другие файлы загрузочной системы;
  • Имеются аппаратные проблемы с работой некоторых компонентов ПК (в частности, с жёстким диском, который физически повреждён, осыпается и так далее).

Как исправить ошибку «Missing operating system»

Для решения проблемы рекомендую сделать следующее:

  1. Перезагрузите вашу систему. Если проблема имеет случайную природу, то при перезагрузке она исчезнет;
  2. Отсоедините от ПК флеш-накопители, изымите из проигрывателя СД и ДВД диски;
  3. Проверьте плотность подключения шлейфа винчестера к материнке (особенно это касается стационарных ПК);

Проверьте плотность подключения шлейфов жесткого диска

  • Установите корректные настройки БИОС. Сбросьте ваш БИОС на настройки по умолчанию, для чего перейдите в БИОС, и выберите опцию настроек по умолчанию. Установите корректную последовательность загрузки устройств в БИОС. Убедитесь, что в БИОС виден жёсткий диск, и установите его первым в очереди на загрузку (при условии, что система грузится с него);
  • Восстановите корректную работу BCD. Для осуществления данной операции нам понадобится загрузочная флешка (диск) с инсталляционной версией операционной системы, релевантной к имеющейся на ПК. Загрузитесь с данной флешки (диска), на экране выбора языка и региона нажмите на комбинацию клавиш «Shift» + «F10» для доступа к функционалу командной строки.
  • В командной строке наберите: bootrec /rebuildbcd и нажмите ввод. Закройте командную строку, и перезагрузите ваш компьютер.

    Наберите команду bootrec /rebuildbcd для восстановления работы BCD

    • Установите раздел жёсткого диска с ОС активным. Для этого загрузитесь с установочного диска как описано выше, запустите командную строку, а затем наберите следующие команды, не забывая нажимать на ввод после каждой из них:

    Откроется список дисков, запомните номер диска, на котором установлена ваша ОС. Наберите:

    select disk X — (вместо X поставьте число диска, на котором имеется операционная система)

    Отобразится список разделов. Запомните номер системного раздела, где находится загрузчик (в большинстве случаев это меньший по объёму раздел). Наберите:

    select partition X — (вместо X укажите нужный номер системного раздела, который вы запомнили).

    Перезагрузите ваш ПК;

    • Используйте функционал команды bootsect. Если предыдущий способ не помог, вновь загрузитесь с установочного диска (флешки), перейдите в командную строку, и там наберите:

    bootsect /nt60 sys — и нажмите ввод. Перезагрузите вашу систему.

    • Проверьте корректную работу аппаратных компонентов вашего ПК. В частности, рекомендую проверить работу жёсткого диска с помощью программ «HDD Scan», «Victoria HDD» и других аналогов.

    Заключение

    При возникновении данной ошибки первым делом рекомендую проверить отсутствие подключённых к ПК флеш-накопителей, а также плотность подключения шлейфов, соединяющих жёсткий диск и компьютер. Если же ошибок в этом поле не выявлено, рекомендую использовать весь комплекс перечисленных мной советов, они позволят избавиться от ошибки «Missing operating system» на вашем ПК.

    Оцените статью