ERROR_NOACCESS (000003E6)

Тема в разделе "WASM.BEGINNERS", создана пользователем sofydone, 22 июн 2005.

Статус темы:
Закрыта.
  1. sofydone

    sofydone New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    31
    Адрес:
    Волгодонск
    Почему происходит подобная ошибка при GetLogicalDrives FindFirstFileA SetFileAttributesA на WinXP.

    Тотже код на 98 работает без проблем. Код запускаю под администратором.
     
  2. bogrus

    bogrus New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Желательно указать конкретно на какой ф-ции происходит ошибка (см. в отладчике) и передаваемые ей параметры
     
  3. sofydone

    sofydone New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    31
    Адрес:
    Волгодонск
    call GetLogicalDrives < -- ERROR_NOACCESS (000003E6)



    Что-то вычитал, что хендл потока не имеет прав...

    Как эти права дать?
     
  4. bogrus

    bogrus New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Странно, есть у кого-то "чистая" XP проверить GetLogicalDrives(VOID) под админом?
     
  5. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    bogrus

    есть

    давай код - проверим
     
  6. bogrus

    bogrus New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Вот, но мне сдается ERROR_NOACCESS появляется в коде sofydone где-то раньше, т.к. на w2k GetLogicalDrives вообще не устанавливает LastError



    [​IMG] _1579486273__gld.exe
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.528
    Адрес:
    Russia
    У меня WINXP SP1 Запускаю , выводится мс-бокс Return: 0004017D

    Запускал под Админом.

    Вроде все пашет .
     
  8. bogrus

    bogrus New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    TermoSINteZ Если у тебя разделы A,C,D,E,F,G,I,S то работает, проблема не в GetLogicalDrives
     
  9. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    return: 02a0e01d

    xp без sp

    админ
     
  10. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.176
    под админом

    0x0000019D

    XP sp1

    диски: a,c,d,e,h,i
     
  11. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    0x0000003D

    админ

    XP без SP

    A,C,D,E,F
     
  12. sofydone

    sofydone New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    31
    Адрес:
    Волгодонск
    Уважаемые!

    XP-SP2 или w2k3. Адреса API хранятся в стеке.

    Вызов:



    call [ebp-x] ; GetLogicalDrives



    Ошибка!



    Тоже самое с FindFirstFileA и SetFileAttributesA.

    На 98 все работает!

    Ниужели никто не сталкивался??!



    Нужны ли какиенить потоки и с какими правами?
     
  13. bogrus

    bogrus New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Нужно сразу говорить XP-SP2 и код в стеке

    http://support.microsoft.com/kb/875352
     
  14. sofydone

    sofydone New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    31
    Адрес:
    Волгодонск
    Фух!! Вроде разобрался...



    .386

    .model flat, stdcall

    option casemap:none

    include \masm32\include\windows.inc

    include \masm32\include\kernel32.inc

    includelib \masm32\lib\kernel32.lib

    .code



    start:

    ;lea esp,[esp-7fh] ; <--- !

    call GetLogicalDrives

    ;lea esp,[esp+7fh] ; <--- !

    push 0

    call ExitProcess

    end start





    Если раскоментить две строчки - работать под XPSP2 не будет!!!

    Это что?? Стека не хватает??

    И как кстати это решить?
     
  15. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.176
    А зачем там эти две строчки ???
     
  16. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    sofydone

    Кто надоумил тебя менять содержимое регистра esp на значение не кратное четырем?
     
  17. sofydone

    sofydone New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    31
    Адрес:
    Волгодонск
    Да... касяк. Как-то не подумал :). Кстати, остальное-то работает :)

    Так что-же, прежде чем структуру в стек пихать надо выравнивать на 4 ??



    ЗЫ: Уважаемые Админы. Вы хоть както обозначайте, что тема перенесена. А то я думал, что меня просто выкинули :)
     
  18. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    sofydone

    надо выравнивать на 4

    Да.
     
  19. sofydone

    sofydone New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    31
    Адрес:
    Волгодонск
    Кстати, получается что 98-я на это плюет...
     
Статус темы:
Закрыта.