Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизАналог SysErrorMessage для NTSTATUS. Найти похожие ветки
← →
learner © (2006-10-07 22:15) [0]Сабж. Просто, SysErrorMessage от функций с результатом типа NTSTATUS
иногда возвращает сообщение, что нет описания ошибки.
← →
Игорь Шевченко © (2006-10-07 23:37) [1]Я так делал:
procedure RaiseNtError(Status: NTSTATUS);
begin
raise Exception.CreateFmt("An error occured (NTSTATUS=0x%.8x): "%s"",
[Status, SysErrorMessage(RtlNtStatusToDosError(Status))]);
end;
← →
learner © (2006-10-08 01:46) [2]Спасибо :)
← →
learner © (2006-10-08 16:12) [3]>Игорь Шевченко ©
Пользуясь случаем задам еще пару вопросов по структурам из NtDll.
У меня, вроде, работает корректно со следующими поправками:
TOBJECT_TYPE_INFORMATION
...
PoolType: ULONG; // Исходно: Word
...
Методом научного тыка получила, что при перечислении
всех типов (NtQueryObject с параметром ObjectAllTypesInformation),
если PoolType - Word, то получаем AV
( выравнивание по четырем байтам учитывалось )
SYSTEM_MODULE_INFORMATION
...
ImageName : array[0..255] of char; // Исходно: 256
...
При 256 ImageName - ы возвращаются "со сдвигом"
Или я перемудрила ?
← →
Игорь Шевченко © (2006-10-09 11:22) [4]
{ Информация о загруженных модулях режима ядра }
SYSTEM_MODULE_INFORMATION = packed record
Reserved: array[0..1] of ULONG;
Base: PVOID;
Size: ULONG;
Flags: ULONG;
Index: USHORT;
Unknown: USHORT;
LoadCount: USHORT;
ModuleNameOffset: USHORT;
ImageName: array[0..255] of char; { ANSI }
end;
PSYSTEM_MODULE_INFORMATION = ^SYSTEM_MODULE_INFORMATION;
SYSTEM_MODULE_INFORMATION_ARRAY = array[0..16384] of
SYSTEM_MODULE_INFORMATION;
{ Массив информации для класса SystemModuleInformation }
SYSTEM_MODULES_INFORMATION = packed record
Count: ULONG;
Data: SYSTEM_MODULE_INFORMATION_ARRAY;
end;
PSYSTEM_MODULES_INFORMATION = ^SYSTEM_MODULES_INFORMATION;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.047 c