Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.27;
Скачать: CL | DM;

Вниз

Строение "подструктуры" HANDLE_TABLE   Найти похожие ветки 

 
Riply ©   (2008-11-09 11:00) [0]

Здравствуйте !
Есть такая структура:
typedef struct _HANDLE_TABLE
{
  ULONG TableCode;
  .....

Как я понимаю, в поле TableCode (если отбросить последние два бита)
содержится указатель на первый элемент некого "массива".
Подскажите, пожалуйста, что является элементами этого массива:
сами структуры HANDLE_TABLE_ENTRY (8 байт) или указатели на них (PHANDLE_TABLE_ENTRY) ?
А может что-то вообще другое ? :)


 
Riply ©   (2008-11-09 20:10) [1]

> [0] Riply ©   (09.11.08 11:00)
> Подскажите, пожалуйста, что является элементами этого массива ?

Если кому интересно...
Вроде, там живут сами структуры.
Вердикт не окончательный и подлежит обжалованию :)
Во всяком случае, если устроить пробежку таким образом:
pEntry := PHANDLE_TABLE_ENTRY(pHandleTable.TableCode and (not TABLE_CODE_MASK));
for i := 0 to Pred(MaxHandleCount) do
begin
 if pEntry <> nil then
  if pEntry.pObject <> nil then inc(EntriesCount);
 pEntry := PHANDLE_TABLE_ENTRY(ULONG_PTR(pEntry) + SizeOf(HANDLE_TABLE_ENTRY));
end;

то количество вождений (EntriesCount) совпадет (т.е. у меня совпало :))
с количеством вызовов EnumHandles_CallBack при таком запросе:
ExEnumHandleTable(..., EnumHandles_CallBack, ...)
Так же, каждый pEntry будет совпадать с соответсвующим параметром, передаваемым в нашу CallBack.
Но на этом наша малина кончается.
При попытке получить из pEntry.pObject его OBJECT_HEADER, мы получаем все что угодно,
кроме ожидаемых значений :)


 
Eraser ©   (2008-11-10 03:48) [2]

> А может что-то вообще другое ? :)

дык отладчик то что говорит? )


 
Riply ©   (2008-11-10 09:23) [3]

> [2] Eraser ©   (10.11.08 03:48)
> дык отладчик то что говорит? )

Говорят, что существует неплохой способ отладки,
при помощи двух компьютеров (одни ведущий, другой - ведомый).
Но я не занаю даже с какой стороны к нему (способу) подходить.
Или я чего-то не понимаю ?
P.S.
Конечно, очень бы хотелось посмотреть, как работает ExEnumHandleTable.
Допустим, со структурами еще можно разобраться, но она еще должна
и лочить либо весь HANDLE_TABLE, либо (что врядли) поэлементно.
А вот с этим проблеммы.



Страницы: 1 вся ветка

Текущий архив: 2009.12.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
15-1256486186
berlios
2009-10-25 18:56
2009.12.27
Задачка


2-1257824241
Андрей Смирнов
2009-11-10 06:37
2009.12.27
Как подсчитать кол-во вхождений в RichEdit?


1-1231775144
Игорь_Залозных
2009-01-12 18:45
2009.12.27
Вывод очень длинной строки


15-1256592610
Юрий
2009-10-27 00:30
2009.12.27
С днем рождения ! 27 октября 2009 вторник


15-1256236718
Kolan
2009-10-22 22:38
2009.12.27
Статья на хабаре про Делфи «создание и уничтожение объектов...»