iled! n"); (FALSE);
} = DeviceIoControl (hDevice,// ​​запитане устройство_DISK_GET_PARTITION_INFO_EX,// ​​виконувана операція
NULL,// ​​покажчик на вхідний буфер
,// ​​розмір вхідного буфера, sizeof (* pex),// ​​вихідний буфер
& junk,// ​​кількість повертаються байтів
(LPOVERLAPPED) NULL);// синхронізація вводу/виводу (I/O)
CloseHandle (hDevice); (bResult);
} main (int argc, char * argv [])
{_INFORMATION_EX pex;// структура пристрою
/* struct {_STYLE PartitionStyle;// формат раздела_INTEGER StartingOffset;// зміщення початку раздела_INTEGER PartitionLength;// розмір разделаPartitionNumber;// номер разделаRewritePartition;// якщо розділ перезаписуваний то TRUE {_INFORMATION_MBR Mbr;//додаткова інформація MBR Style раздела_INFORMATION_GPT Gpt;// додаткова інформація GPT Style розділу
};
} PARTITION_INFORMATION_EX;
*/bResult; = GetPartitionNumber (& pex); (bResult) {printf ("PartitionNumber =% d n", pex.PartitionNumber);
} else {printf ("GetPartitionNumber () failed. Error% d. n", GetLastError ());} ("PAUSE"); ((int) bResult); p>
}
2.4 Крок 4
1) Об'єднати всю функціональність, розроблену на кроках 1-3, в один комплекс програм.
Заключний комплекс повинен виглядати наступним чином:
Наш драйвер вбудовується в систему і завантажується на етапі завантаження Windows.
Додаток запитує у драйвера необхідну (задану на етапі 2) інформацію, драйвер передає цю інформацію, при цьому також включається динамік на деякий час і програється мелодія (задана на етапі 1). Потім у додатку виробляється запит до існуючого в системі драйверу (відповідно з варіантом до етапу 3). p align="justify">) Оформити пояснювальну записку, в якій повинні бути описані всі 4 етапи, а також - теоретичні відомості для кожного етапу.
# include "stdafx.h"
# include "windows.h"
# include "stdlib.h"
# define IOCTL_GET CTL_CODE (FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS + FILE_WRITE_ACCESS) GetPartitionNumber (PARTITION_INFORMATION_EX * pex)
{hDevice;// дескриптор перевіряється устройстваbResult;// прапорець результату
DWORD junk; = CreateFile (TEXT (" . c:"),// ​​що відкривається устройство_READ | GENERIC_WRITE,// ​​доступ до пристрою
FILE_SHARE_READ | FILE_SHARE_WRITE,// ​​режим спільного використання,// ​​атрибути безпеки по умолчанію_EXISTING,// ​​розташування
...