Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Win32 API | Неизвестные функции (http://forum.oszone.net/showthread.php?t=45686)

Savant 20-02-2005 12:09 300136

Win32 API | Неизвестные функции
 
Кто-нибудь может мне поведать о функциях RTLComputeCRC32, RTLUnhandledExceptionFilter, RTLDuplicateUnicodeString и множестве других, начинающихся с RTL* и содержащихся в ntdll.dll ? В частности, интересуют описания (а также чем отличаются от таких функций, но без 'RTL', например UnhandledExceptionFilter, которые кстати имеются не для всех) и то, почему эти функции не описаны в MSDN.

mrcnn 21-02-2005 10:01 300345

В моем ntdll.dll таких функций нет, поэтому я предполагаю, что у тебя Windows XP или Windows 2003

Я уверен, что функции RTL** это функции ядра Windows, то бишь это функции ntoskrnl.exe

Поэтому для их использования и информации о них, тебе понадобится Windows XP DDK, в заголовочных файлах которого определены функции Rtl*** и т.п.
Смотри документацию к Windows XP DDK

RTL - Run Time Library
DDK - Driver Development Kit -- совместо с VS не поставляется, поставляется отдельно.


Savant 21-02-2005 10:10 300348

mrcnn, спасибо...

А Windows XP DDK в свободном доступе существует?

Кстати, у меня Win2000 Sp4 с небольшими влияниями библиотек из WinXP sp2... И иногда (при старте почти любой программы) вылазят сообщения о том, что функция RTL***** не найдена в ntdll.dll . Но при этом все просто чудесно работает, и мой комп даже перестал зависать :)

mrcnn 21-02-2005 10:18 300352

Для информации:
Цитата:

*Ntdll.dll

Реализует некоторые функции Win32 API. Обеспечивает интерфейс между
пользовательским режимом и режимом ядра. Отображается в пользовательском
пространстве. Другими словами, в основном экспортирует заглушки - вызовы
системных функций.
Это значит, что выполнение функций Rtl осуществляет ядро, то есть ntoskrnl.exe.
Там же в ядре находится код этих функций.

Savant 21-02-2005 10:26 300359

видимо придется повториться...
Цитата:

Цитата Savant
А Windows XP DDK в свободном доступе существует?

Я на microsoft'e только Order CD смог найти, download'ов нет ?

Savant 21-02-2005 10:33 300363

Усё, сенкс. Нашел DDK в E2k. Сливаю....

mrcnn 21-02-2005 10:35 300366

Цитата:

А Windows XP DDK в свободном доступе существует?
Windows XP DDK занимает по размеру примерно 200 MB (если я не ошибаюсь)
Существует в свободном доступе, только надо поискать. _Очень хорошо_ поискать.
Для поиска Yandex или Google

У меня есть Windows 2000 DDK, который я скачивал из нета. Однако там нет таких функций, поэтому он не подойдет, потому что, скорее всего, RTLComputeCRC32, RTLUnhandledExceptionFilter, RTLDuplicateUnicodeString это функции ядра Windows XP, и соответственно нужен другой DDK.

Во всех библиотеках и файлах драйверов sys моей системы, существующих в system32, упоминаний этих функций нет.
Windows 2000 SP3

Savant 21-02-2005 18:05 300514

Даже DDK (от Windows XP SP1) не помог... Банальным поиском внутри всех файлов DDK (а это между прочим 400 Мб) выяснилось, что требуемые функции "присутствуют" только в двух файлах и больше нигде (даже не упоминаются):

2600.1106\lib\wxp\i386\ntdll.lib
2600.1106\lib\wxp\ia64\ntdll.lib

К сожалению, оттуда даже прототипы функций не извлечь, так ведь?

mrcnn 21-02-2005 19:01 300520

Возможно, Microsoft решила не включать в DDK прототипы этих функций.

При поиске в Google было обнаружено следующее

http://cvs.cosoft.org.cn/cgi-bin/vie...ncs.h?rev=HEAD
http://cvs.sourceforge.net/viewcvs.p....h?rev=1.1.1.2

DWORD WINAPI RtlComputeCrc32(DWORD,PBYTE,INT);
NTSTATUS WINAPI RtlDuplicateUnicodeString(int,const UNICODE_STRING*,UNICODE_STRING*);




Mike124 02-03-2005 10:18 302813

Если живешь в Москве, то зайди в Библио-Глобус и купи книжки "Программирование драйверов в Windows" и "Системное программирование ..." (название до конца не помню). Они там свободно лежали 24-го. В них все описано по этим функциям.


Время: 08:01.

Время: 08:01.
© OSzone.net 2001-