Hace mucho tiempo que no se escribe, pegue el código, celebre el Día de Mayo.
Método del anillo 3:
Los niños deberían haber descubierto que la función GetDriveType solo puede reconocer el disco U y no puede reconocer el disco duro móvil. Los discos duros extraíbles y locales devolverán el mismo tipo DRIVE_FIXED. El consejo en MSDN es identificar el dispositivo USB con una función llamada SetupDiGetDeviceRegistryProperty.
De hecho, hay una manera más conveniente de identificar el dispositivo USB consultando el tipo de bus a través de la función DeviceIoControl. Código postal:
BOOL IsUsbDriver (TCHAR tchDrvName)
/* ++ Descripción de rutina: Determina si una partición es un dispositivo USB. Argumentos: tchDrvName - Parámetros de entrada, letra de unidad. Valor devuelto: devuelve VERDADERO si es un dispositivo USB; de lo contrario, devuelve FALSO,
La consulta también devuelve FALSO. Autor:
Fypher
http://hi.baidu.com/nmn714
05/01/2011 - * /{
TCHAR tcsDrvName [8] = TEXTO ( "\\\\ . \\\\ \\\\ X: ");
tcsDrvName [4] = tchDrvName; HANDLE hDevice = CreateFile (tcsDrvName,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
), si (hDevice == INVALID_HANDLE_VALUE) {
devuelven FALSE;
}
STORAGE_PROPERTY_QUERY StoragePropertyQuery;
StoragePropertyQuery.PropertyId = StorageDeviceProperty;
StoragePropertyQuery.QueryType = PropertyStandardQuery;
BYTE buff [1024] = {0};
PSTORAGE_DEVICE_DESCRIPTOR pDevDesc = (PSTORAGE_DEVICE_DESCRIPTOR) ante;
pDevDesc- > Tamaño = sizeof (piel de ante);
DWord dwOutLen; res
BOOL = DeviceIoControl (hDevice,
IOCTL_STORAGE_QUERY_PROPERTY,
&StoragePropertyQuery,
sizeof (STORAGE_PROPERTY_QUERY),
pDevDesc, España pDevDesc- > Tamaño,
&dwOutLen,
NULL
);
CloseHandle (hDevice), si (res) {
//resultado de retorno vuelven pDevDesc- >
; BusType == BusTypeUsb;
} else {
//Consulta fallida
return F ALSE;
}
}método en el anillo 0:
en el anillo 0, se puede determinar por su nombre DiskDeviceObject sobre una cierta probabilidad si el dispositivo de volumen DiskDeviceObject correspondiente es un dispositivo USB . Es decir, el objeto DiskDeviceObject llamado HardDiskVolumeXXX suele ser un disco duro local. Sin embargo, este método es en realidad muy poco confiable, especialmente en Win7, la inserción de un disco U es HardDiskVolumeXXX.
De hecho, la mejor manera es consultar el tipo de bus. Código de Pasta:
BOOLEANA IsUsbDriver (EN PDEVICE_OBJECT pDeviceObject)
/* ++ rutina Descripción: determinar si un dispositivo de disco es un dispositivo USB. Argumentos: pDeviceObject: parámetro de entrada, DiskDeviceObject correspondiente al dispositivo de volumen. La relación entre el dispositivo y el volumen DiskDeviceObject
puede referirse a:
http://hi.baidu.com/nmn714/blog/item/3d2ccccad529e994c8176842.HtmlReturn Valor: dispositivo USB devuelve TRUE, de lo contrario devuelve FALSE, < BR> La consulta fallida también devuelve FALSE. Autor:
Fypher
http://hi.baidu.com/nmn714
05/01/2011 - * /{
PIRP pNewIrp;
PSTORAGE_DEVICE_DESCRIPTOR pStorageDeviceDescriptor;
STORAGE_PROPERTY_QUERY StoragePropertyQuery;
&Bot. WaitEvent, NotificationEvent, FALSE); pNewIrp = IoBuildDeviceIoControlRequest (IOCTL_STORAGE_QUERY_PROPERTY,
), Francia FALSO,
&WaitEvent,
&IoStatus
);!
si (pNewIrp) {
Crear IRP no
//devolver FALSE;
}
Estado = IoCallDriver (pDeviceObject, pNewIrp);
si (== Estado STATUS_PENDING) {
Estado = KeWaitForSingleObject (&WaitEvent, Execut ive, KernelMode, FALSO, NULL);
Estado = IoStatus.Status; (! NT_SUCCESS (Estado)
} if) {//
consulta falló
volver FALSO;
} = pStorageDeviceDescriptor (PSTORAGE_DEVICE_DESCRIPTOR) ante; //resultado retorno
volver pStorageDeviceDescriptor- > BusType == BusTypeUsb;
}
después de usar la unidad de DVD antigua después de instalar el sistema win7 ¿Cómo usar la unidad d
Windows 7 es lo mismo que WinXP. Después de instalar el software de la aplicación, a menudo hay algu
Ahora no es tan bueno como en la era WIN7, WIN8 se está acercando más y más a nosotros. A menudo car
Cómo eliminar rápidamente archivos rebeldes en Win7 Eliminar archivos residuales tutorial gráfico
¿Cómo reemplazar la interfaz de inicio de sesión de Windows7?
Deje que su sistema de Windows 7 en funcionamiento más rápido Windows7
15 accesos directos de uso común en los clásicos de Windows 7
Un poco de experiencia con las actualizaciones de desinstalación rápida de Win 7 La actualización
Uso del reconocimiento de voz de Windows 7 para controlar la computadora
Recopilación de consejos de optimización del sistema Windows7
Archivo de registro para ayudarle a recuperar la función de bloc de notas de clic derecho
70 Sistema pequeña lista de figuras win7 (3)
Tutorial de aplicación de Windows 7: Mejoras en el menú Inicio
Enseñarle a optimizar los inconvenientes de la compatibilidad con el procesador de doble núcleo
30 consejos básicos para sistemas xp de computadora
El ratón móvil del sistema Win7 aparece pausa, fenómeno de retardo cómo resolver
Transfiera para crear un disco de arranque en U para instalar WIN7
Barra de notificación de Win10 cómo configurar el ícono de pantalla del escritorio de Windows10
Cómo aumentar el espacio en disco c en el sistema win7
Diskgenius cómo copiar el disco duro
Divertida red inalámbrica Comparta la configuración de la red inalámbrica en el sistema Win 7
Win8 Enciclopedia 40: integración de microblogging Sina en una red de