Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перечисление системных объектных типов [Win2k]


Страницы:   1 2 3

BiN ©   (2006-10-18 16:20:00) 

Как по вашему, возможна ли ситуация, когда NtQueryObject(0, ObjectAllTypesInformation... возвращает не полный список типов

Собственно, кусок действующего кода

procedure TSystemTypeList.Refresh;
var
 Data: POBJECT_ALL_TYPES_INFO;
 TypeInfo: POBJECT_TYPE_INFO;
 dwToRead: DWORD;
 dwRead: DWORD;
 ntRes: NTSTATUS;
 i: Integer;
begin
 Clear;
 Data:=nil;
 try
   dwToRead:=0;
   ntRes:=NtQueryObject(0, ObjectAllTypesInformation, Data, dwToRead, @dwRead);

   while ntRes=STATUS_INFO_LENGTH_MISMATCH do
   begin
     dwToRead:=dwRead;
     ReallocMem(Data, dwToRead);
     ntRes:=NtQueryObject(0, ObjectAllTypesInformation, Data, dwToRead, @dwRead);
   end;
   if not NT_SUCCESS(ntRes) then
     RaiseNtStatusError(ntRes);
   ReallocMem(Data, dwRead);
   TypeInfo:=@(Data^.ObjectsTypeInfo);
   for i:=0 to Data^.NumberOfObjectTypes-1 do
   begin
     Add(TypeInfo);
     TypeInfo:=POBJECT_TYPE_INFO((DWORD(TypeInfo.Name.Buffer)+TypeInfo.Name.Length) and not 3+4);
   end;
 finally
   ReallocMem(Data, 0);
 end;
end;


В результате, в список по пока невыясненным причинам не попадает, например, тип "File". Но при этом вызов NtQueryObject(hTempHandle, ObjectTypeInformation... с хэндлом файла в качестве параметра отрабатывает вполне корректно.


Ketmar   (2006-10-18 16:47:00) [41]

файл чужой просто? (это так, бредовое предположение)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо