<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=420045&amp;view=findpost&amp;p=3841050</guid>
        <pubDate>Mon, 26 Oct 2020 14:08:23 +0000</pubDate>
        <title>DeviceIoControl + IOCTL_DISK_SET_CACHE_INFORMATION Ошибка 24</title>
        <link>https://forum.sources.ru/index.php?showtopic=420045&amp;view=findpost&amp;p=3841050</link>
        <description><![CDATA[Rouse_: У тебя:<br>
1. структура не верно объявлена.<br>
изучай: <a class='tag-url' href='https://docs.microsoft.com/en-us/windows/win32/api/winioctl/ns-winioctl-disk_cache_information' target='_blank'>https://docs.microsoft.com/en-us/windows/wi...che_information</a><br>
2. структура не инициализирована<br>
Как результат - падать будет в самых неожиданных местах.]]></description>
        <author>Rouse_</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=420045&amp;view=findpost&amp;p=3840441</guid>
        <pubDate>Fri, 16 Oct 2020 08:45:18 +0000</pubDate>
        <title>DeviceIoControl + IOCTL_DISK_SET_CACHE_INFORMATION Ошибка 24</title>
        <link>https://forum.sources.ru/index.php?showtopic=420045&amp;view=findpost&amp;p=3840441</link>
        <description><![CDATA[navodri: Пытаюсь изменить кэш диска, но получаю ошибку 24.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TScalarPrefetch = record</div><div class="code_line">&nbsp;&nbsp; &nbsp;Minimum: Word;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Maximum: Word;</div><div class="code_line">&nbsp;&nbsp; &nbsp;MaximumBlocks: Word;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TBlockPrefetch = record</div><div class="code_line">&nbsp;&nbsp; &nbsp;Minimum: Word;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Maximum: Word;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;DISK_CACHE_RETENTION_PRIORITY = (EqualPriority, KeepPrefetchedData, KeepReadData);</div><div class="code_line">&nbsp;&nbsp;TDiskCacheRetentionPriority = DISK_CACHE_RETENTION_PRIORITY;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;_DISK_CACHE_INFORMATION = record</div><div class="code_line">&nbsp;&nbsp; &nbsp;ParametersSavable: Boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ReadCacheEnabled: Boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WriteCacheEnabled: Boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ReadRetentionPriority: DISK_CACHE_RETENTION_PRIORITY;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WriteRetentionPriority: DISK_CACHE_RETENTION_PRIORITY;</div><div class="code_line">&nbsp;&nbsp; &nbsp;DisablePrefetchTransferLength: Word;</div><div class="code_line">&nbsp;&nbsp; &nbsp;PrefetchScalar: Bool;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ScalarPrefetch: TScalarPrefetch;</div><div class="code_line">&nbsp;&nbsp; &nbsp;BlockPrefetch: TBlockPrefetch;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;DISK_CACHE_INFORMATION = _DISK_CACHE_INFORMATION;</div><div class="code_line">&nbsp;&nbsp;TDiskCacheInformation = DISK_CACHE_INFORMATION;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;IOCTL_DISK_GET_CACHE_INFORMATION = {text}0740D4;</div><div class="code_line">&nbsp;IOCTL_DISK_SET_CACHE_INFORMATION = {text}07C0D8;</div><div class="code_line">&nbsp;IOCTL_DISK_SET_CACHE_SETTING &nbsp; &nbsp; = {text}07c0e4;</div><div class="code_line">&nbsp;IOCTL_DISK_GET_LENGTH_INFO &nbsp; &nbsp; &nbsp; = {text}07405C;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Button2Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;h: THandle;</div><div class="code_line">&nbsp;&nbsp;info: TDiskCacheInformation;</div><div class="code_line">&nbsp;&nbsp;response: DWord;</div><div class="code_line">&nbsp;&nbsp;E: Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;h := CreateFile(PChar(&#39;\.\D:&#39;), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, 0);</div><div class="code_line">&nbsp;&nbsp;if h = INVALID_HANDLE_VALUE then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;ShowMessage(&#39;Can&#39;&#39;t access disk.&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;info.WriteCacheEnabled := True;</div><div class="code_line">&nbsp;&nbsp;info.ReadCacheEnabled:= false;</div><div class="code_line">&nbsp;&nbsp;info.DisablePrefetchTransferLength := 1;</div><div class="code_line">&nbsp;if not DeviceIoControl(h, IOCTL_DISK_SET_CACHE_INFORMATION, nil, 0, @info, SizeOf(info), response, nil) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;E:=GetLastError;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Showmessage(Format(&#39;Error: %d&#39;, [E])); //ERROR 24</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;CloseHandle(h);</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>navodri</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	