Доступ до пристроїв

У більшості випадків програми не працюють безпосередньо з пристроями. Замість цього для виконання необхідних операцій використовуються API-функції більш високого рівня, а звернення до пристроїв виконуються системою в міру потреби. Наприклад, файлові функції звертаються в кінцевому рахунку до дисковим пристроїв, а функції GDI працюють з монітором або з принтером, залежно від зазначеного контексту пристрою.

У ряді випадків програміст все ж може віддати перевагу безпосередню роботу з пристроєм. Щоб отримати доступ до пристрою, програма повинна відкрити цей пристрій викликом тій же API-функції CreateFile, яка використовується і для відкриття файлів. В даному випадку замість імені файлу слід вказати ім'я драйвера відкривається пристрої. Для дискових пристроїв можна замість імені драйвера вказати ім'я самого пристрою. Наприклад, ім'я « . C:» означає логічний диск C, а ім'я « . PHYSICALDRIVE0» - перший фізичний диск комп'ютера.

Відкривши пристрій, програма може або читати або записувати дані, використовуючи функції файлового введення / виводу, або видавати команди управління пристроєм за допомогою функції DeviceIoControl. За допомогою цих команд можна, наприклад, відформатувати диск і розбити його на розділи, завантажити або витягти CD-ROM диск, змінити деякі параметри роботи модему і т.п..