La apertura de un mango de una unidad flash me da un “acceso denegado” código de error

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

Pregunta

Me gustaría saber por qué cuando intento crear un identificador en una unidad flash USB, recibo un error de ruta no encontrado.

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());
    }

A partir de ahí quiero leer una corriente de 512 bytes (el sector de arranque) a un archivo .bin, pero me parece que no puede conseguir más allá de la creación mango primero. Ocurre con las ventanas evitar que las aplicaciones abrir un identificador para unidades extraíbles?

¿Fue útil?

Solución

Este código tiene dos problemas. En primer lugar, la ruta de acceso. En realidad se está especificando la carpeta raíz de la unidad; lo que realmente necesita es el volumen. Retire la barra invertida al final de la trayectoria; es decir _T ( "\\\\ \\ F:"). En segundo lugar, es necesario especificar FILE_SHARE_READ | FILE_SHARE_WRITE; usted está tratando de abrirlo en modo exclusivo, y esto va a fracasar. Consulte la documentación de MSDN para CreateFile para obtener más información.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top