информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Утекший код XP и Windows Server... 
 Дела виртуальные 
 Простое пробивание рабочего/провайдерского... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
10x 16.05.05 13:39  Число просмотров: 1602
Автор: eug Статус: Незарегистрированный пользователь
<"чистая" ссылка>
<programming>
[win32] ;( ioctl_disk_get_drive_layout 16.05.05 12:49  
Автор: eug Статус: Незарегистрированный пользователь
Отредактировано 16.05.05 12:50  Количество правок: 1
<"чистая" ссылка>
есть указанный вызов:
BOOL DeviceIoControl(
  (HANDLE) hDevice,            // handle to device
  IOCTL_DISK_GET_DRIVE_LAYOUT, // dwIoControlCode
  NULL,                        // lpInBuffer
  0,                           // nInBufferSize
  (LPVOID) lpOutBuffer,        // output buffer
  (DWORD) nOutBufferSize,      // size of output buffer
  (LPDWORD) lpBytesReturned,   // number of bytes returned
  (LPOVERLAPPED) lpOverlapped  // OVERLAPPED structure
);
...
lpOutBuffer 
[out] Pointer to a buffer that receives a DRIVE_LAYOUT_INFORMATION structure. 

lpBytesReturned 
[out] Pointer to a variable that receives the size of the data stored in the output buffer, in bytes. 
If the output buffer is too small, the call fails, GetLastError returns ERROR_INSUFFICIENT_BUFFER, and lpBytesReturned is zero.
...

---

методом н.тыка было получено, что вызов возвращает 136 b [lpBytesReturned], в то время как
40 == sizeof(DRIVE_LAYOUT_INFORMATION).

как можно объяснить такой метаморфоз ?
10х.

msdn
[Win32] Внимательнее MSDN читать надо 16.05.05 13:31  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Сразу за DRIVE_LAYOUT_INFORMATION идет "variable sized array" из PARTITION_INFORMATION

Чем больше у тебя разделов, тем больше места тебе понадобится
10x 16.05.05 13:39  
Автор: eug Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2020 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach