ERROR_SHARING_VIOLATION (00000020)

Тема в разделе "WASM.BEGINNERS", создана пользователем La_plaza, 9 окт 2008.

  1. La_plaza

    La_plaza New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2008
    Сообщения:
    95
    после маппинга файла заюзываю два API:
    1)UnmapViewFile
    2)CloseHandle

    после этого сразу же корректирую base pointer и собственно пытаюсь прочитать файл связкой CreateFile&ReadFile
    после CreateFile выпадает ERROR_SHARING_VIOLATION (00000020)
    но дело в том, что закрытие хэндла(CloseHandle) отрабатывается некорректно т.е в eax ничего не возвращается.Вопрос: почему ? ведь я ему корректно хэндл передал
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    код в студию
     
  3. La_plaza

    La_plaza New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2008
    Сообщения:
    95
    Код (Text):
    1. call [CreateFile]
    2. push eax                            ;EBP-0X4
    3. call [CreateFileMapping]
    4. push eax                            ;ebp-0x8
    5. call [MapViewOfFile]
    6. push eax                            [ebp-0xC] MZ
    7. ...
    8. ...
    9. ...
    10. __unmap:
    11. invoke UnmapViewOfFile,dword [ebp-0xc]
    12. invoke CloseHandle,dword [ebp-0x4]
     
  4. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    гениально

    1. Число параметров у первых 3х апишек значительно больше единицы
    2. тебя не смущает, что ты затираешь стек?
     
  5. La_plaza

    La_plaza New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2008
    Сообщения:
    95
    не, меня смущает, что я хэндл неправильно закрываю. Разобрался.Спасибо всем за моральную поддержку :)