2009-07-29 3 views

ответ

9

На самом деле, как и Андерс предложил в основном, нет такого метода в функции управления памятью, доступных в Windows 7 и более ранних.

2 различных способов существует для того чтобы сделать что-то подобное:

  • читать данные асинхронно с ReadFileEx. Затем данные могут по-прежнему находиться в кеше файлов, когда это необходимо позже.
  • Открыть файл с потоковым подсказкой с атрибутом FILE_FLAG_SEQUENTIAL_SCANCreateFile. Readahead затем, возможно, будет автоматически выполнен.
4

Вы можете передать FILE_FLAG_RANDOM_ACCESS или FILE_FLAG_SEQUENTIAL_SCAN к CreateFile()

+0

Это единственные возможности поиска в Windows? –

+0

Что касается подсказок, я так думаю. Вы можете отключить кеширование и тому подобное, но некоторые из этих других флагов имеют требования к выравниванию, поэтому его более чем простая подсказка – Anders

+1

FILE_ATTRIBUTE_TEMPORARY тоже выглядит полезной - согласно http://msdn.microsoft.com/en-us/library/aa363858 % 28v = vs.85% 29.aspx # caching_behavior, он сообщает системе, чтобы избежать записи данных на диск, если доступно достаточное количество кэш-памяти. – BCran