ReadFile, regler timeout sur retry

ReadFile, regler timeout sur retry - API Win32 - Programmation

Marsh Posté le 25-06-2009 à 22:52:52    

Bonjour,
 
Je suis en train d'écrire actuellement une application de transfert de fichiers d'un DVD vers un lieu de stockage sur réseau, et je rencontre un petit souci : lorsqu'il y a des secteurs défectueux sur le DVD, le ReadFile prend énormément de temps avant  de retourner une erreur, surement parcequ'il essaie un certain nombre de fois avant échec de lecture.  
 
J'aimerais pouvoir paramétrer le nombre de retry ainsi que le timeout de déclenchement, mais je n'ai pas trouvé de documentation à ce sujet. Quelqu'un aurait il des infos ?
 
Merci :)

Reply

Marsh Posté le 25-06-2009 à 22:52:52   

Reply

Marsh Posté le 29-06-2009 à 16:05:29    

Personne n'a d'idée ou ma question est si tordue  :??:

Reply

Marsh Posté le 29-06-2009 à 17:54:41    

Il y a quelques explications dans la documentation du ReadFile(), http://msdn.microsoft.com/en-us/li [...] S.85).aspx
 
Il y aurait deux solutions : 1. soit en mode synchrone, 2. soit en mode asynchrone (ouverture du fichier avec FILE_FLAG_OVERLAPPED).
 
Dans les deux cas, pour chaque ReadFile(), il faudrait se créer son propre timer, avec SetTimer() ou avec time_before_read = GetTickCount();... while (time_before_read + quelques_diziemes < GetTickCount())
 
Si le temps est dépassé et que la lecture n'a pas renvoyé quelque chose de satisfaisant, il faudrait faire CancelSynchronousIo() si on est en mode synchrone, ou faire CancelIo() en mode asynchrone.
 
La solution en mode synchrone nécessiterait l'utilisation d'une thread, et donc j'opterais plutôt pour le mode asynchrone.

Reply

Marsh Posté le 30-06-2009 à 16:41:35    

Bonjour :)
 
Merci de ces infos, je testerai dès que j'aurai une disponibilité. En attendant, je vais lire la documentation de plus près
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed