typedef struct _EXIT_PROCESS_DEBUG_INFO { DWORD dwExitCode; }

Тема в разделе "WASM.WIN32", создана пользователем Asterix, 3 ноя 2004.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Код (Text):
    1. typedef struct _EXIT_PROCESS_DEBUG_INFO {
    2.     DWORD dwExitCode;
    3. } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;






    Где можно взять инфу по значениям dwExitCode ??
     
  2. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    ProgramMan

    Ну и что? Естественно я смотрел msdn..



    Например dwExitCode = 103 что это означает? или dwExitCode = 0 ....
     
  4. LocTb

    LocTb New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2004
    Сообщения:
    54
    0 - всё OK
     
  5. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Asterix



    Есть такая тулза от MS - называется Error Lookup. Так вот, твой 103 - это "The semaphore cannot be set again.".

    Где-то это есть и в MS-доках, просто рыться надо...
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Тулзу посмотрел.

    Скорее всего это не то что нужно, например для функции
    Код (Text):
    1. VOID ExitProcess(
    2.     UINT uExitCode  // exit code for all threads  
    3.    );




    Что будет означать uExitCode?

    Я кстати не правильно указал мне нужно значение 0x103

    что скорее всего означает STILL_ACTIVE
     
  7. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    0x00000103 - No more data is available.
     
  8. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Не поленился я порыться в MSDN. А ты - лентяй. Итак, топик называется "System Error Codes".



    The following table provides a list of system error codes. The values are defined in the WinError.h header file. They are returned by the GetLastError function when many functions fail. To retrieve the description text for the error in your application, use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag.





    А дальше - офигительных размеров таблица, где есть твой 0x103 = 259 = No more data is available. = ERROR_NO_MORE_ITEMS
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Нет, volodya, в моём случае это не коды ошибок, это "коды завершений", посмотри хотя бы в msdn про ExitProcess, там как раз написано про STILL_ACTIVE
     
  10. Foamplast

    Foamplast New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2003
    Сообщения:
    80
    Адрес:
    Russia
    Я чё-то не пойму, что ваще надо-то. Читаем MSDN:



    Примечания



    Если указанный процесс не завершился, то возвращается статус STILL_ACTIVE. Если же процесс завершился, то возвращаемый статус является одним из следующего:



    Код выхода, указанный в качестве параметра функции ExitProcess или TerminateProcess.

    Значение, возвращённое функцией процесса main или WinMain.

    Значение необрабатываемого исключения, которое вызвало завершение процесса.



    Внимание: Если указанный процесс может вернуть STILL_ACTIVE (259) в качестве кода ошибки, то приложение, ориентируещееся на это значение, может войти в бесконечный цикл.





    То есть я это понимаю так: приложение может вернуть ЛЮБОЙ код выхода, они не стандартизованы. В ОС "Виндовс" многие приложения де-факто используют нуль как обозначение удачи и любое, отличное от нуля, значение как обозначение ошибки. При этом существует такая проблема, что значение STILL_ACTIVE, использующееся в качестве обозначения того факта, что процесс работает, может быть возвращено самим ничего не подозревающим процессом в качестве кода выхода (например, как ERROR_NO_MORE_ITEMS). В этом случае, программа, проверяющая факт завершения процесса при помощи вызова функции GetExitCodeProcess(), войдёт в вечный цикл. Отсюда следует, что необходимо проверять факт завершения процесса каким-либо другим способом, а при наличии такого факта вызывать функцию GetExitCodeProcess() для получения кода выхода. В последнем случае код выхода 259, вероятно, означает "No more data is available".
     
  11. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Наверное эти:


    Код (Text):
    1.  
    2. #define WAIT_TIMEOUT                        STATUS_TIMEOUT
    3. #define WAIT_IO_COMPLETION                  STATUS_USER_APC
    4. #define STILL_ACTIVE                        STATUS_PENDING
    5. #define EXCEPTION_ACCESS_VIOLATION          STATUS_ACCESS_VIOLATION
    6. #define EXCEPTION_DATATYPE_MISALIGNMENT     STATUS_DATATYPE_MISALIGNMENT
    7. #define EXCEPTION_BREAKPOINT                STATUS_BREAKPOINT
    8. #define EXCEPTION_SINGLE_STEP               STATUS_SINGLE_STEP
    9. #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED     STATUS_ARRAY_BOUNDS_EXCEEDED
    10. #define EXCEPTION_FLT_DENORMAL_OPERAND      STATUS_FLOAT_DENORMAL_OPERAND
    11. #define EXCEPTION_FLT_DIVIDE_BY_ZERO        STATUS_FLOAT_DIVIDE_BY_ZERO
    12. #define EXCEPTION_FLT_INEXACT_RESULT        STATUS_FLOAT_INEXACT_RESULT
    13. #define EXCEPTION_FLT_INVALID_OPERATION     STATUS_FLOAT_INVALID_OPERATION
    14. #define EXCEPTION_FLT_OVERFLOW              STATUS_FLOAT_OVERFLOW
    15. #define EXCEPTION_FLT_STACK_CHECK           STATUS_FLOAT_STACK_CHECK
    16. #define EXCEPTION_FLT_UNDERFLOW             STATUS_FLOAT_UNDERFLOW
    17. #define EXCEPTION_INT_DIVIDE_BY_ZERO        STATUS_INTEGER_DIVIDE_BY_ZERO
    18. #define EXCEPTION_INT_OVERFLOW              STATUS_INTEGER_OVERFLOW
    19. #define EXCEPTION_PRIV_INSTRUCTION          STATUS_PRIVILEGED_INSTRUCTION
    20. #define EXCEPTION_IN_PAGE_ERROR             STATUS_IN_PAGE_ERROR
    21. #define EXCEPTION_ILLEGAL_INSTRUCTION       STATUS_ILLEGAL_INSTRUCTION
    22. #define EXCEPTION_NONCONTINUABLE_EXCEPTION  STATUS_NONCONTINUABLE_EXCEPTION
    23. #define EXCEPTION_STACK_OVERFLOW            STATUS_STACK_OVERFLOW
    24. #define EXCEPTION_INVALID_DISPOSITION       STATUS_INVALID_DISPOSITION
    25. #define EXCEPTION_GUARD_PAGE                STATUS_GUARD_PAGE_VIOLATION
    26. #define EXCEPTION_INVALID_HANDLE            STATUS_INVALID_HANDLE
    27. #define CONTROL_C_EXIT                      STATUS_CONTROL_C_EXIT
    28.  






    STATUS_XXX в ntstatus.h или у меня в ntstatus.inc можно посмотреть.