Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.21.86] |
|
Сообщ.
#1
,
|
|
|
Пытаюсь изменить кэш диска, но получаю ошибку 24.
type TScalarPrefetch = record Minimum: Word; Maximum: Word; MaximumBlocks: Word; end; TBlockPrefetch = record Minimum: Word; Maximum: Word; end; DISK_CACHE_RETENTION_PRIORITY = (EqualPriority, KeepPrefetchedData, KeepReadData); TDiskCacheRetentionPriority = DISK_CACHE_RETENTION_PRIORITY; _DISK_CACHE_INFORMATION = record ParametersSavable: Boolean; ReadCacheEnabled: Boolean; WriteCacheEnabled: Boolean; ReadRetentionPriority: DISK_CACHE_RETENTION_PRIORITY; WriteRetentionPriority: DISK_CACHE_RETENTION_PRIORITY; DisablePrefetchTransferLength: Word; PrefetchScalar: Bool; ScalarPrefetch: TScalarPrefetch; BlockPrefetch: TBlockPrefetch; end; DISK_CACHE_INFORMATION = _DISK_CACHE_INFORMATION; TDiskCacheInformation = DISK_CACHE_INFORMATION; const IOCTL_DISK_GET_CACHE_INFORMATION = $000740D4; IOCTL_DISK_SET_CACHE_INFORMATION = $0007C0D8; IOCTL_DISK_SET_CACHE_SETTING = $0007c0e4; IOCTL_DISK_GET_LENGTH_INFO = $0007405C; procedure TForm1.Button2Click(Sender: TObject); var h: THandle; info: TDiskCacheInformation; response: DWord; E: Integer; begin h := CreateFile(PChar('\\.\D:'), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, 0); if h = INVALID_HANDLE_VALUE then begin ShowMessage('Can''t access disk.'); Exit; end; info.WriteCacheEnabled := True; info.ReadCacheEnabled:= false; info.DisablePrefetchTransferLength := 1; if not DeviceIoControl(h, IOCTL_DISK_SET_CACHE_INFORMATION, nil, 0, @info, SizeOf(info), response, nil) then begin E:=GetLastError; Showmessage(Format('Error: %d', [E])); //ERROR 24 Exit; end; CloseHandle(h); end; |
Сообщ.
#2
,
|
|
|
У тебя:
1. структура не верно объявлена. изучай: https://docs.microsoft.com/en-us/windows/wi...che_information 2. структура не инициализирована Как результат - падать будет в самых неожиданных местах. |