,// ​​атрибути файлу);// не копіювати атрибути файлу
if (hDevice == INVALID_HANDLE_VALUE) {//неможливо відкрити пристрій ("CreateFile () failed! n"); (FALSE);
} = DeviceIoControl (hDevice,// ​​запитане устройство_DISK_GET_PARTITION_INFO_EX,// ​​виконувана операція
NULL,// ​​покажчик на вхідний буфер
,// ​​розмір вхідного буфера, sizeof (* pex),// ​​вихідний буфер
& junk,// ​​кількість повертаються байтів
(LPOVERLAPPED) NULL);// синхронізація вводу/виводу (I/O)
CloseHandle (hDevice); (bResult);
} _tmain (int argc, _TCHAR * argv []) {_HANDLE hSCManager; _HANDLE hService; acDriverPath [256]; hDevice; DevControl; dwBytesReturned; adwInBuffer, adwOutBuffer; stroka [7]; _INFORMATION_EX pex; // структура устройстваbResult; = CreateFile (" . sldevGet", GENERIC_READ + GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); (hDevice! = 0) {= DeviceIoControl (hDevice, IOCTL_GET, & adwInBuffer, sizeof (adwInBuffer), & adwOutBuffer, sizeof (adwOutBuffer), & dwBytesReturned, NULL); ((DevControl! = 0) && (dwBytesReturned! = 0)) {((LPSTR) stroka, "% X" ;, adwOutBuffer) ;//запис рядка в буфер (adwOutBuffer -> stroka) (stroka == "00000100") MessageBox (NULL, "Found 1.44 Mb", "Yermakov FDD scaner", MB_OK); MessageBox (NULL, "Not found", "Yermakov FDD scaner", MB_OK); = OpenSCManager (NULL, NULL, SC_MANAGER_CREATE_SERVICE); (hSCManager! = 0) {("beeper.sys", sizeof acDriverPath, acDriverPath, NULL );
// Реєстрація музиканта в таблицях SCM = CreateService (hSCManager, "beeper11", "Nice Melody 0, NULL); (hService); (hService);
} else MessageBox (NULL, "Can't register driver", NULL, MB_ICONSTOP); (hSCManager);
} else MessageBox (NULL, "Can't connect to SCManager", NULL, MB_ICONSTOP);
} else MessageBox (NULL, "Can't send control code", NULL, MB_OK); (hDevice);
} else MessageBox (NULL, "Dev is not present", NULL, MB_ICONSTOP); = GetPartitionNumber (& pex); (bResult) {printf ("PartitionNumber =% d n" , pex.PartitionNumber);
} else {printf ("GetPartitionNumber () failed. Error% d. n", GetLastError ());} ("PAUSE"); ((int) bResult); p>
}
3. Робота програми
В
Малюнок 3.1. Драйвер з кроку 2
В
Малюнок 3.2. Драйвер з кроку 3