Hola.
Es importante saber que es lo que se pretende obtener del teléfono conectado y peligrosa la escritura.
El acceso a los dispositivos físicos, sean discos o USB, Flash... se realiza igual, con la API
CreateFile En caso de desear abrir un dispositivo físico, el nombre debe ser "\\.\PhysicalDriveX" siendo X un número de unidad física que comienza por 0. Si deseamos abrir una unidad lógica, el nombre será "\\.\L:" siendo L la letra de unidad. En cambio \\.\\L:\ abre el directorio raíz.
Cita:
Empezado por ecfisa
...debe pasar por la cadena '\\?\USB#Vid_058b&Pid_0015#5&25ea51ff&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed'... Creo, como AzidRain, que es propia de cada teléfono y realmente no sé como obtenerla.
|
Esa cadena se extrae del Registro de Windows en la clave: "
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum" donde aparecen cada una de las unidades USB conectadas en un momento dado y específica de cada unidad instalada. Y la forma de asociarla con la letra de unidad es compleja y se basa en encontrar el número de serie, también en el registro en
"HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices" en los valores que comienzan por "
\DosDevices\" para compararlo con el que también aparece en las cadenas de dispositivo USB (USB\Vid_XXXXXXX.....)
Cuando abrimos una unidad física lo primero que se lee es el MBR (Master Boot Record). En una unidad lógica obtendremos el BPB (BIOS Parameter Block ó BootSector de una partición). Alterar esos datos puede ser fatal si no sabemos lo que hacemos.
Desde el MBR podemos obtener el BMP y de éste acceder a los archivos manejando el sistema de archivos correspondiente, tal y como lo hace el S.O. pero no es fácil.
Estos enlaces pueden dar algo de luz al tema:
1.
Trabajar con la FAT32 (o como vacunar un disco extraible)
2. Trabajando con FAT16 y FAT32
En el segundo enlace encontrareis una aplicación escrita en C que gestiona los archivos de una unidad FAT16 ó FAT32 leyendo directamente del dispositivo extraíble el MBR el BPB la tabla de la FAT - Directorio raíz - directorios y archivos leidos cluster a cluster en bruto desde la unidad. Dicha aplicación es experimental y entre otras cosas sirva para extraer imágenes en bruto de dispositivos o restaurarlas. No es la última versión y se debe manejar con cuidado.
En definitiva ¿Que es lo que se quiere obtener de la conexión USB?
Espero haber aportado algo de luz al tema.
Saludos.