Question

Sous UNIX, je peux par exemple dire au système d'exploitation que le mappage sera nécessaire à l'avenir avec posix_fadvise (POSIX_FADV_WILLNEED) . Il lira ensuite les données à l’avance s’il le sent.

Comment indiquer le but de l'accès à Windows?

Était-ce utile?

La solution

En fait, comme Anders l’a principalement suggéré, il n’existe pas de méthode de ce type dans les fonctions de gestion de la mémoire disponibles dans Windows 7 et les versions antérieures .

Il existe 2 manières différentes de faire quelque chose de similaire:

  • Lisez les données de manière asynchrone avec ReadFileEx . Il se peut que les données se trouvent encore dans le cache de fichiers si nécessaire ultérieurement.
  • Ouvrez le fichier avec un indice de transmission en continu avec l'attribut FILE_FLAG_SEQUENTIAL_SCAN de CreateFile . Une relecture serait alors peut-être effectuée automatiquement.

Autres conseils

À partir de Windows 8, il existe le PrefetchVirtualMemory à cette fin.

Vous pouvez transmettre FILE_FLAG_RANDOM_ACCESS ou FILE_FLAG_SEQUENTIAL_SCAN à CreateFile ()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top