ne_viens
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Диск можно остановить с: Код: #include <windows.h> #include <ntddscsi.h> typedef struct { ATA_PASS_THROUGH_EX ata; char buf[512]; } PACK; int main() { unsigned int tmp; HANDLE h; PACK p = {0}; h = CreateFile("\\\\.\\PhysicalDrive1",GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); if(INVALID_HANDLE_VALUE != h) { p.ata.Length = sizeof(ATA_PASS_THROUGH_EX); p.ata.AtaFlags = ATA_FLAGS_DATA_IN; p.ata.DataTransferLength = 512; p.ata.DataBufferOffset = sizeof(ATA_PASS_THROUGH_EX); p.ata.TimeOutValue = 1; p.ata.CurrentTaskFile[5] = 0xa0; p.ata.CurrentTaskFile[6] = 0xe6; //Identify Device = 0xec, Sleep = 0xe6, Standby = 0xe2 DeviceIoControl(h, IOCTL_ATA_PASS_THROUGH, &p, sizeof(p), &p, sizeof(p), &tmp, 0); CloseHandle(h); } return 0; } | , но на Win это не имеет смысла, так как он непрерывно обращается к дискам и их снова запускает. |