Ouverture d'une poignée pour un lecteur flash me donne un code d'erreur « Accès refusé »

StackOverflow https://stackoverflow.com/questions/3672086

Question

Je voudrais savoir pourquoi lorsque je tente de créer une poignée sur un lecteur flash USB, je reçois un chemin non trouvé erreur.

HANDLE aFile = CreateFile(_T("\\\\.\\F:\\"), GENERIC_READ, 0, NULL,
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    if (aFile == INVALID_HANDLE_VALUE)
    {
        printf("\n");
        printf("Bad handle value. Error %d \n", GetLastError());
    }

De là, je veux lire un flux de 512 octets (le secteur d'amorçage) dans un fichier .bin, mais je ne peux pas sembler aller au-delà de la création de la poignée d'abord. Est-ce que les fenêtres empêchent les applications d'ouvrir une poignée de disques amovibles?

Était-ce utile?

La solution

Ce code a deux problèmes. Tout d'abord, le chemin. Vous indiquez en fait le dossier racine du lecteur; ce que vous avez vraiment besoin est le volume. Retirez le backslash du chemin; c.-à-_T ( "\\\\ \\ F:"). En second lieu, vous devez spécifier FILE_SHARE_READ | FILE_SHARE_WRITE; vous essayez de l'ouvrir en mode exclusif, et cela échouera. Voir la documentation MSDN pour CreateFile pour plus d'informations.

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