Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2015, 18:55   #1
JPCool
Пользователь
 
Регистрация: 06.09.2015
Сообщений: 31
Подмигивание Правильный размер структур.

Доброго дня, подскажите где взять 64 битный структуры на любом языке.

Менялись ли они вообще в 64 битной винде может быть что то новое в win 8 -10 кто то сталкивался?



THREAD_BASIC_INFORMATION
SYSTEM_PROCESSES

FILE_DIRECTORY_INFORMATION
FILE_FULL_DIRECTORY_INFORMATION
FILE_ID_BOTH_DIR_INFORMATION
FILE_BOTH_DIRECTORY_INFORMATION
FILE_NAMES_INFORMATION

TImageThunkData32
IMAGE_NT_HEADERS
IMAGE_OPTIONAL_HEADER


Код:
type
PClientID = ^TClientID;
TClientID = packed record
 UniqueProcess:cardinal;
 UniqueThread:cardinal;
end;


type
 PTHREAD_BASIC_INFORMATION = ^THREAD_BASIC_INFORMATION;
  THREAD_BASIC_INFORMATION = packed record
  ExitStatus: BOOL;
  TebBaseAddress: pointer;
  ClientId: TClientID;
  AffinityMask: DWORD;
  Priority: dword;
  BasePriority: dword;
 end;



PSYSTEM_PROCESSES = ^SYSTEM_PROCESSES;
SYSTEM_PROCESSES = packed record
   NextEntryDelta,
   ThreadCount: dword;
   Reserved1 : array [0..5] of dword;
   CreateTime,
   UserTime,
   KernelTime: LARGE_INTEGER;
   ProcessName: TUnicodeString;
   BasePriority: dword;
   ProcessId,
   InheritedFromProcessId,
   HandleCount: dword;
   Reserved2: array [0..1] of dword;
   VmCounters: VM_COUNTERS;
   IoCounters: IO_COUNTERS; // Windows 2000 only
   Threads: array [0..0] of SYSTEM_THREADS;
  end;


type
 FILE_DIRECTORY_INFORMATION = packed record
  NextEntryOffset: ULONG;
  Unknown: ULONG;
  CreationTime,
  LastAccessTime,
  LastWriteTime,
  ChangeTime,
  EndOfFile,
  AllocationSize: int64;
  FileAttributes: ULONG;
  FileNameLength: ULONG;
  FileName: PWideChar;
 end;
 PFILE_DIRECTORY_INFORMATION=^FILE_DIRECTORY_INFORMATION;


type
 FILE_FULL_DIRECTORY_INFORMATION = packed record
   NextEntryOffset: ULONG;
   Unknown: ULONG;
   CreationTime,
   LastAccessTime,
   LastWriteTime,
   ChangeTime,
   EndOfFile,
   AllocationSize: int64;
   FileAttributes: ULONG;
   FileNameLength: ULONG;
   EaInformationLength: ULONG;
   FileName: PWideChar;
 end;


type
 FILE_ID_BOTH_DIR_INFORMATION = packed record
  NextEntryOffset: ULONG;
  FileIndex: ULONG;
  CreationTime:int64;
  LastAccessTime:int64;
  LastWriteTime:int64;
  ChangeTime:int64;
  EndOfFile:int64;
  AllocationSize:int64;
  FileAttributes: ULONG;
  FileNameLength: ULONG;
  EaSize: ULONG;
  ShortNameLength:Integer;
  ShortName: array [0..11] of WideChar;
  FileId:int64;
  FileName:WideChar;
  end;
  PFILE_ID_BOTH_DIR_INFORMATION =^FILE_ID_BOTH_DIR_INFORMATION;



type
 FILE_BOTH_DIRECTORY_INFORMATION = packed record
   NextEntryOffset: ULONG;
   Unknown: ULONG;
   CreationTime,
   LastAccessTime,
   LastWriteTime,
   ChangeTime,
   EndOfFile,
   AllocationSize: int64;
   FileAttributes: ULONG;
   FileNameLength: ULONG;
   EaInformationLength: ULONG;
   AlternateNameLength: ULONG;
   AlternateName: array [0..10] of WideChar;
   FileName:WideChar;
 end;
 PFILE_BOTH_DIRECTORY_INFORMATION=^FILE_BOTH_DIRECTORY_INFORMATION;


type
 FILE_NAMES_INFORMATION = packed record
   NextEntryOffset: ULONG;
   Unknown: ULONG;
   FileNameLength: ULONG;
   FileName: PWideChar;
 end;

Type
 PImageThunkData = ^TImageThunkData32;
  TImageThunkData32 = packed record
    _function : PDWORD;
  end;


PImageExportDirectory = ^TImageExportDirectory;
  _IMAGE_EXPORT_DIRECTORY = packed record
      Characteristics: DWord;
      TimeDateStamp: DWord;
      MajorVersion: Word;
      MinorVersion: Word;
      Name: DWord;
      Base: DWord;
      NumberOfFunctions: DWord;
      NumberOfNames: DWord;
      AddressOfFunctions: ^PDWORD;
      AddressOfNames: ^PDWORD;
      AddressOfNameOrdinals: ^PWord;
  end;
JPCool вне форума Ответить с цитированием
Старый 09.12.2015, 01:13   #2
JPCool
Пользователь
 
Регистрация: 06.09.2015
Сообщений: 31
По умолчанию

JwaWinNT,JwaWinType,JwaNtStatus

http://sourceforge.net/projects/jedi-apilib/

Тему можно закрыть...
JPCool вне форума Ответить с цитированием
Старый 09.12.2015, 01:40   #3
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
Менялись ли они вообще в 64 битной винде может быть что то новое в win 8 -10 кто то сталкивался?
По сравнению с х86? Менялись конечно.
Самое надежное, имхо, поставить WinDbg, подгрузить символы и посмотреть структуру. Например:
Код:
dt ntdll!_IMAGE_NT_HEADERS64
   +0x000 Signature        : Uint4B
   +0x004 FileHeader       : _IMAGE_FILE_HEADER
   +0x018 OptionalHeader   : _IMAGE_OPTIONAL_HEADER64
Единственный способ стать умнее - играть с более умным противником.

Последний раз редактировалось Sam Gold; 09.12.2015 в 01:44.
Sam Gold вне форума Ответить с цитированием
Старый 09.12.2015, 09:46   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Самое надежное - это скачать Platform SDK да посмотреть в нем.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер символьной переменной и размер указателя на символьную переменную MrQuestion Помощь студентам 1 29.08.2015 20:52
QFrame c QLabel минимальный размер + размер по содержимому Krasiosoft Qt и кроссплатформенное программирование С/С++ 1 29.06.2015 04:44
Подогнать размер flash картинки под размер компонента shockwave flash kestugar Мультимедиа в Delphi 3 15.08.2014 11:03
Удаление структур из массива структур Infini Помощь студентам 2 02.03.2013 22:31
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54