[ad_1]
Essayer d’effectuer des E/S asynchrones sur un périphérique. Mon problème est que ReadFile renvoie ERROR_INVALID_HANDLE.
Je crois que Handle et OVERLAPPED hEvent sont initialisés, donc j’apprécierais beaucoup si quelqu’un pouvait me dire ce que je fais de mal.
Ce que j’ai essayé :
Voici le code que j’utilise :
HANDLE Handle = CreateFileA( ndisprot630, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL ); if (Handle == INVALID_HANDLE_VALUE) { DEBUGP("CreateFile failed, error 0x%x\n", GetLastError()); return(INVALID_HANDLE_VALUE); } OVERLAPPED ol = { 0 }; ol.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); char buf[1500]; if (!ReadFile(Handle, buf, sizeof(buf), NULL, &ol)) { if (GetLastError() != ERROR_IO_PENDING) { DEBUGP("Error starting ReadFile 0x%x\n", GetLastError()); } }
Solution 1
Comme pour tout fichier en lecture/écriture ou en création, assurez-vous que le chemin du fichier dispose de vos droits d’accès, c’est-à-dire essayez de créer manuellement un fichier texte du bloc-notes à cet emplacement pour tester l’accès. Si cela échoue, tout le reste échouera avec une approche programmatique.
[ad_2]
コメント