Сейчас на форуме: laslo, UniSoft, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› ZwQueryDirectoryFile + FileMaximumInformation
Посл.ответ Сообщение

Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 31 октября 2010 18:45
· Личное сообщение · #1

Всем привет,

Не подскажите структуру в FileInformation для FileMaximumInformation? У microsoft эта структура не описана, существует она только в Win7..

Пытался опытным путем разобрать что там к чему, половина параметров впринципе понятно, но хотелось бы полное описание..



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 31 октября 2010 19:21
· Личное сообщение · #2

Ты стебешься или как? Это заглушка конца енума.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 октября 2010 19:22 · Поправил: Coderess
· Личное сообщение · #3

Это заглушка конца енума.

Code:
  1. UCHAR IopQueryOperationLength[] =
  2.           {
  3.             0,
  4.             0,                                         //  1 FileDirectoryInformation
  5.             0,                                         //  2 FileFullDirectoryInformation
  6.             0,                                         //  3 FileBothDirectoryInformation
  7.             sizeof( FILE_BASIC_INFORMATION ),          //  4 FileBasicInformation
  8.             sizeof( FILE_STANDARD_INFORMATION ),       //  5 FileStandardInformation
  9.             sizeof( FILE_INTERNAL_INFORMATION ),       //  6 FileInternalInformation
  10.             sizeof( FILE_EA_INFORMATION ),             //  7 FileEaInformation
  11.             sizeof( FILE_ACCESS_INFORMATION ),         //  8 FileAccessInformation
  12.             sizeof( FILE_NAME_INFORMATION ),           //  9 FileNameInformation
  13.             0,                                         // 10 FileRenameInformation
  14.             0,                                         // 11 FileLinkInformation
  15.             0,                                         // 12 FileNamesInformation
  16.             0,                                         // 13 FileDispositionInformation
  17.             sizeof( FILE_POSITION_INFORMATION ),       // 14 FilePositionInformation
  18.             0,                                         // 15 FileFullEaInformation
  19.             sizeof( FILE_MODE_INFORMATION ),           // 16 FileModeInformation
  20.             sizeof( FILE_ALIGNMENT_INFORMATION ),      // 17 FileAlignmentInformation
  21.             sizeof( FILE_ALL_INFORMATION ),            // 18 FileAllInformation
  22.             0,                                         // 19 FileAllocationInformation
  23.             0,                                         // 20 FileEndOfFileInformation
  24.             sizeof( FILE_NAME_INFORMATION ),           // 21 FileAlternateNameInformation
  25.             sizeof( FILE_STREAM_INFORMATION ),         // 22 FileStreamInformation
  26.             sizeof( FILE_PIPE_INFORMATION ),           // 23 FilePipeInformation
  27.             sizeof( FILE_PIPE_LOCAL_INFORMATION ),     // 24 FilePipeLocalInformation
  28.             sizeof( FILE_PIPE_REMOTE_INFORMATION ),    // 25 FilePipeRemoteInformation
  29.             sizeof( FILE_MAILSLOT_QUERY_INFORMATION ), // 26 FileMailslotQueryInformation
  30.             0,                                         // 27 FileMailslotSetInformation
  31.             sizeof( FILE_COMPRESSION_INFORMATION ),    // 28 FileCompressionInformation
  32.             sizeof( FILE_OBJECTID_INFORMATION ),       // 29 FileObjectIdInformation
  33.             0,                                         // 30 FileCompletionInformation
  34.             0,                                         // 31 FileMoveClusterInformation
  35.             sizeof( FILE_QUOTA_INFORMATION ),          // 32 FileQuotaInformation
  36.             sizeof( FILE_REPARSE_POINT_INFORMATION ),  // 33 FileReparsePointInformation
  37.             sizeof( FILE_NETWORK_OPEN_INFORMATION),    // 34 FileNetworkOpenInformation
  38.             sizeof( FILE_ATTRIBUTE_TAG_INFORMATION),   // 35 FileAttributeTagInformation
  39.             0,                                         // 36 FileTrackingInformation
  40.             0xff                                       //    FileMaximumInformation
  41.           };


-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 31 октября 2010 21:37
· Личное сообщение · #4

Coderess - то что ты привел - все так, все правильно но только для Windows меньше семерки.

В Windows 7 FileMaximumInformation используется для получения информации о каталоге или файле. Причем, как я видел, система вызывает ZwQueryDirectoryFile с FileMaximumInformation и размером буфера не FF а там допустим 0x278.

Windows использует FileMaximumInformation например в Open/Save диалогах. Если попробуешь перехватить вызов ZwQueryDirectoryFile и показать Open диалог, увидишь как активно FileMaximumInformation используется. Но это только в семерке.

Например, заметил, по тому чтоZwQuery вызвращает, начало очень похоже на _FILE_FULL_DIRECTORY_INFORMATION но вот потом херистика какая то начинается.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 октября 2010 23:50
· Личное сообщение · #5

На счет 7ки и висты фиг его знает, у Нир Софера посмотри

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 65.4 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 01 ноября 2010 01:25 · Поправил: V0ldemAr
· Личное сообщение · #6

Enigma пишет:
В Windows 7 FileMaximumInformation используется для получения информации о каталоге или файле.


Ибо в семерке энум больше и твой FileMaximumInformation совпадает с чем-то, это просто константа.

Также учимся использовать WinDbg:

Энум Win7 x64

0:000> dt _FILE_INFORMATION_CLASS
ntdll!_FILE_INFORMATION_CLASS
FileDirectoryInformation = 0n1
FileFullDirectoryInformation = 0n2
FileBothDirectoryInformation = 0n3
FileBasicInformation = 0n4
FileStandardInformation = 0n5
FileInternalInformation = 0n6
FileEaInformation = 0n7
FileAccessInformation = 0n8
FileNameInformation = 0n9
FileRenameInformation = 0n10
FileLinkInformation = 0n11
FileNamesInformation = 0n12
FileDispositionInformation = 0n13
FilePositionInformation = 0n14
FileFullEaInformation = 0n15
FileModeInformation = 0n16
FileAlignmentInformation = 0n17
FileAllInformation = 0n18
FileAllocationInformation = 0n19
FileEndOfFileInformation = 0n20
FileAlternateNameInformation = 0n21
FileStreamInformation = 0n22
FilePipeInformation = 0n23
FilePipeLocalInformation = 0n24
FilePipeRemoteInformation = 0n25
FileMailslotQueryInformation = 0n26
FileMailslotSetInformation = 0n27
FileCompressionInformation = 0n28
FileObjectIdInformation = 0n29
FileCompletionInformation = 0n30
FileMoveClusterInformation = 0n31
FileQuotaInformation = 0n32
FileReparsePointInformation = 0n33
FileNetworkOpenInformation = 0n34
FileAttributeTagInformation = 0n35
FileTrackingInformation = 0n36
FileIdBothDirectoryInformation = 0n37
FileIdFullDirectoryInformation = 0n38
FileValidDataLengthInformation = 0n39
FileShortNameInformation = 0n40
FileIoCompletionNotificationInformation = 0n41
FileIoStatusBlockRangeInformation = 0n42
FileIoPriorityHintInformation = 0n43
FileSfioReserveInformation = 0n44
FileSfioVolumeInformation = 0n45
FileHardLinkInformation = 0n46
FileProcessIdsUsingFileInformation = 0n47
FileNormalizedNameInformation = 0n48
FileNetworkPhysicalNameInformation = 0n49
FileIdGlobalTxDirectoryInformation = 0n50
FileIsRemoteDeviceInformation = 0n51
FileAttributeCacheInformation = 0n52
FileNumaNodeInformation = 0n53
FileStandardLinkInformation = 0n54
FileRemoteProtocolInformation = 0n55
FileMaximumInformation = 0n56


И того:

ВинХр: FileMaximumInformation = 41
Виста: FileMaximumInformation = 50
7: FileMaximumInformation = 56

В итоге непонятно какой ты энум используешь и какая его длинна и то что ты считаешь FileMaximumInformation на Вин7 имеет совсем другое значение.



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 01 ноября 2010 07:29 · Поправил: Alchemistry
· Личное сообщение · #7

http://msdn.microsoft.com/en-us/library/cc232070%28PROT.13%29.aspx ?



Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 01 ноября 2010 12:42
· Личное сообщение · #8

V0ldemAr - да, списибо, значит WinDbg мне в руки

Alchemistry - оно самое, все совпадает, спасибо!


 eXeL@B —› Программирование —› ZwQueryDirectoryFile + FileMaximumInformation
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати