ERROR_SHARING_VIOLATION (00000020)

Discussion in 'WASM.BEGINNERS' started by La_plaza, Oct 9, 2008.

  1. La_plaza

    La_plaza New Member

    Blog Posts:
    0
    Joined:
    Aug 20, 2008
    Messages:
    95
    после маппинга файла заюзываю два API:
    1)UnmapViewFile
    2)CloseHandle

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

    Magnum New Member

    Blog Posts:
    0
    Joined:
    Dec 29, 2007
    Messages:
    925
    код в студию
     
  3. La_plaza

    La_plaza New Member

    Blog Posts:
    0
    Joined:
    Aug 20, 2008
    Messages:
    95
    Code (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

    Blog Posts:
    0
    Joined:
    Dec 29, 2007
    Messages:
    925
    гениально

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

    La_plaza New Member

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