Необходимо записать напрямую на физический диск случайные данные. Диск может не иметь файловой системы. Пробую таким образом:
| Код | hDevice := CreateFile(PAnsiChar(device), GENERIC_READ or GENERIC_WRITE, // device = '\\.\PHYSICALDRIVEn' FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if (hDevice = 0) or (GetLastError() <> 0) then begin ShowMessage(SysErrorMessage(GetLastError())); Exit; end;
successfullWrite := True; while successfullWrite do begin Application.ProcessMessages;
SetLength(byteArray, BUF_SIZE); i := 0; while i < BUF_SIZE do begin Randomize; byteArray[i] := Random(255); Inc(i); end;
successfullWrite := WriteFile(hDevice, byteArray[0], BUF_SIZE, writtenBytes, nil); end; end;
CloseHandle(hDevice);
|
Но скорость записи, как бы я не менял размер буфера, не поднимается выше 1Мбайт/сек. Как можно повысить эту скорость? Или же подскажите, как иначе можно программно затереть данные с диска без ФС |