На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Calling DeviceIoControl on Windows NT



On Windows NT, an application can use the DeviceIoControl function to perform direct input and output operations on, or retrieve information about, a floppy disk drive, hard disk drive, tape drive, or CD-ROM drive. The following example demonstrates how to retrieve information about the first physical drive in the system. It uses the CreateFile function to obtain the device handle of the first physical drive, and then uses the DeviceIoControl function with the IOCTL_DISK_GET_DRIVE_GEOMETRY control code to fill a DISK_GEOMETRY structure with information about the drive.

BOOL GetDriveGeometry(DISK_GEOMETRY *pdg)
{
HANDLE hDevice;
BOOL fResult;
DWORD cb;

hDevice = CreateFile("\\\\.\\PhysicalDrive0",
0, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL);

if (hDevice == NULL)
return FALSE;

fResult = DeviceIoControl(hDevice,
IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0,
pdg, sizeof(*pdg), &cb, (LPOVERLAPPED) NULL);

if (!fResult)

return FALSE;


CloseHandle(hDevice);
}


This example succeeds only when it runs on Windows NT, for two reasons:

· The standard device input/output control codes are available only on Windows NT, and
· On Windows 95, an application must specify a virtual device driver in the CreateFile function ѕ not a specific device.




Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Вызов DeviceIoControl на Windows NT



На Windows NT, приложение может использовать функцию DeviceIoControl, чтобы выполнять прямой ввод и выходные операции на, или извлеките информацию о, флоппи-дисковод, жесткий дисковод, накопитель ленты, или накопитель CD-ROM. Следующий пример демонстрирует как, чтобы извлекать информацию о первом физическом накопителе в систему. Это использует функцию CreateFile, чтобы получать ручку устройства сначала физический накопитель, затем использует функцию DeviceIoControl с управляющим кодом IOCTL_DISK_GET_DRIVE_GEOMETRY, чтобы заполнять структуру DISK_GEOMETRY информацией о накопителе.

BOOL GetDriveGeometry(DISK_GEOMETRY *pdg)
{
ПРООПЕРИРУЙТЕ hDevice;
BOOL fResult;
cb DWORD;

hDevice = CreateFile("\\\\.\\PhysicalDrive0", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, НЕДЕЙСТВИТЕЛЬНЫЙ, OPEN_EXISTING, 0, НЕДЕЙСТВИТЕЛЬНЫЙ);

если (hDevice == НЕДЕЙСТВИТЕЛЬНЫЙ) обратная ЛОЖЬ;

fResult = DeviceIoControl(hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, НЕДЕЙСТВИТЕЛЬНЫЙ, 0, pdg, sizeof(*pdg), &cb, (LPOVERLAPPED) НЕДЕЙСТВИТЕЛЬНЫЙ);

если (!fResult)

обратная ЛОЖЬ;


CloseHandle(hDevice);
}


Этот пример добивается успеха только когда он работает на Windows NT, для двух причин:

Стандартный ввод/выходные управляющие коды устройства доступен только на Windows NT, и На Windows 95, приложение должно определить виртуальный драйвер устройства в функции CreateFile U не специфическое устройство.




Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz