· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HELHEIM —› Файлы

Посл.отвђт Сообщенiе


Дата: Ноя 3, 2004 14:13:28

Как в приложении Win32 осуществлять файловые операции (Открытие, чтение, запись) но не используя вызовы API функций.


Дата: Ноя 3, 2004 15:28:51

если из r-3, и не через порты то ни как.
А с чего вы считаете, что приложение не использует вызава API


Дата: Ноя 3, 2004 16:18:26

Pascal
Это новая форма мазохизма?
Дай свое определение понятиям "Win32 приложение" и "API-функция". Native API использовать можно или нет?


Дата: Ноя 3, 2004 19:44:29

1)А с чего вы считаете, что приложение не использует вызава API
А с того ,что я сам хочю осуществлять файловые операции не пользуясь API функциями.
2)Дай свое определение понятиям "Win32 приложение" и "API-функция". Native API использовать можно или нет?
Начну с API. API --> Интерфейс прикладного программирования (Application Programming Interface - API) я думаю этим все сказано. Ну а если обьеснить так как будто тебе 6 лет то это функции которые находятся в основных DLL системы.
Но да ладно суть не в этом. Просто надо создать приложение GUI или консольное без разници. Но при обращении к файлам не использовать стандартные API (CreateFile, ReadFile и WriteFile).


Дата: Ноя 3, 2004 20:22:31

>>обращении к файлам не использовать стандартные API (CreateFile, ReadFile и WriteFile).
используй нестандартные :) устаревшие или из ядра
а ещё лучьше (для Win2k-xp) используй int 2Eh, только для него я не видел нормального описания.


Дата: Ноя 4, 2004 04:34:15

Pascal
Начну с API ...
Ты мне аббревиатуру не расшифровывай, я сам умный.

функции которые находятся в основных DLL системы
Если бы мне было шесть лет, то я задал бы следующий вопрос: "основные DLL системы - это kernel, user и gdi?"

при обращении к файлам не использовать стандартные API (CreateFile, ReadFile и WriteFile)
С этого и надо было начинать. Только, применительно к NT, это не стандартные функции, а обертки вокруг Native API. Выход один смотреть реализацию соответствующих функций для разных версий win'ды и на ее основе делать свою.


Дата: Ноя 4, 2004 12:01:14

> „при обращении к файлам не использовать стандартные API (CreateFile, ReadFile и WriteFile) “

Юзай fopen / fclose - crt не является подсистемой win32 =)
http://www.wasm.ru/forum/index.php?action=vthread&topic=7592&forum=4


Дата: Ноя 4, 2004 15:06:45

ProgramMan
а ещё лучьше (для Win2k-xp) используй int 2Eh

Идея конечно хорошая и наиболее приемлимая для меня (с учетом некоторых особенностей), но есть маленькая проблема:

Во первых если я неошибаюсь то INT это машинная команда процессора, которая инициирует прерывание, а 2Еh номер прерывания. Так вот я в этой ерунде не Х. не понимаю. Так что я был бы ОООчень признателен если бы вы разабьеснили бы мне что тут к чему(т.е. небольшой help по INT 2Eh).

Во вторых я пробовал вот такой примерно код:

                
                .....
                mov ah, 6Ch
                mov bx, 0002h 
                mov dx, 0001h
                mov si, seg Filename    
                mov ds, si
                mov si, offset Filename
                int 21h
                .....


          


Сразу предупреждаю в асме я профан. Код должен открывать файл Filename с атрибутами Read | Write. Но как вы понимаете у меня хрен что получилось.


В третьих говарят, что все эти INTы работают в реальном режиме процессора, а мол в защищенном режиме придется отдохнуть.

Так что вот такой то ПУМПУ - РУМПУМ.


Дата: Ноя 4, 2004 15:44:36 · Поправил: q_q

Pascal
Идея конечно хорошая и наиболее приемлимая для меня ...
Imho желание выполнять файловые операции в обход CreateFile/ReadFile/WriteFile может появиться у очень продвинутого win-программиста для решения очень специфических задач. Судя по твоим сообщениям тебе пока рано думать об этом.

небольшой help по INT 2Eh
Чтобы поиметь хоть какое-нибудь представление, о том, зачем здесь упоминалось 2Eh посмотри Int 2Eh. Windows NT - NATIVE API

я пробовал вот такой примерно код ...
Этот код dos-приложения.


Дата: Ноя 4, 2004 15:46:58

int 21h это прерывание DOS, вообшето... а ты вроде как под винду пишешь.

Где-то в доках на www.wasm.ru лежали дампы int2E.
А вообше-то SoftICE в руки и вперёд :)
На то они и НЕДОКУМЕНТИРОВАННЫЕ функции, нормальных мануалов к int2E я не встречал. :(


Дата: Ноя 4, 2004 23:04:59

2 S_T_A_S_ :^))))

2 Pascal
Не хош виндовые обёртки, то юзай портами если доку найдешь. Мож болегче будет работать со всякими ntfs.sys,fastfat.sys и т.д. ч/з IRP пакеты или как нить..напрямую.

Чисто по секрету: а зачем это надо?

2 ProgramMan
>>>На то они и НЕДОКУМЕНТИРОВАННЫЕ функции, нормальных мануалов к int2E я не встречал. :(

Ага, и темболее на разных build-ах виндузы номера ф-й разные.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.051