Что означает ошибка Windows 0 "ERROR_SUCCESS"? - PullRequest
0 голосов
/ 23 сентября 2011

Я написал программу на Python, которая читает поток данных другого процесса перенаправлением канала. Тем не менее, программа отстой в этой строке:

print "[Input Thread] ", self.inputPipe.readline(ii)

Ошибка IOError: [Errno 0] Ошибка

Я нашел объяснение windows errno 0. Это сбивает с толку, потому что он определен как:

Операция успешно завершена.

Почему успешно завершенная операция приводит к ошибке?

Ответы [ 2 ]

1 голос
/ 13 августа 2015

Я знаю, что это довольно старо, но потратил немало времени, пытаясь найти полный ответ без успеха.Поэтому я решил поделиться тем, что выяснил.

Полный ответ о том, как это происходит, - это когда метод pInvoke, который вы вызвали, «завершился неудачей», но не из-за ошибки.

да, вы думаете

Например, допустим, вам нужно отцепить оконный хук, но он вызывается дважды из-за спагетти или параноидального уровня защитыпрограммирование в вашей объектной архитектуре.

// hook assigned earlier

// now we call our clean up code
if (NativeMethods.UnhookWindowsHookEx(HookHandle) == 0)
{
    // method succeeds normally so we do not get here
    Log.ReportWin32Error("Error removing hook", Marshal.GetLastWin32Error());
}

// other code runs, but the hook is never reattached, 
// due to paranoid defensive program you call your clean up code twice
if (NativeMethods.UnhookWindowsHookEx(HookHandle) == 0)
{
    // pInvoke method failed (return zero) because there was no hook to remove
    // however there was no error, the hook was already gone thus ERROR_SUCCESS (0)
    // is our last error
    Log.ReportWin32Error("Error removing hook", Marshal.GetLastWin32Error());
}
0 голосов
/ 14 января 2018

Имя может вас обмануть, но ERROR_SUCCESS фактически означает, что ошибки не было.
С https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382.aspx:

ERROR_SUCCESS

0 (0x0)
Операция успешно завершена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...