Ну прям как будто капитана Гранта нашел
но что-то этот капитан Грант не канает для определения DEVICE_OBJECT флешек
NTSTATUS
AttachToMountedDevice (
__in PDEVICE_OBJECT AttachToDeviceObject,
__in PDEVICE_OBJECT OurDeviceObject
)
{
....
ASSERT(IS_MY_DEVICE_OBJECT( OurDeviceObject));
....
if (FlagOn(AttachToDeviceObject->Characteristics, FILE_REMOVABLE_MEDIA)) {
KdPrint((" **** USB \n"));
} else {
KdPrint((" **** NOT USB \n"));
}
....
когда подключаем флешку - упроно пишет "NOT USB"
пробовал для AttachToDeviceObject вызвать функцию IoGetDiskDeviceObject она возвращает STATUS_INVALID_PARAMETER для только что подмонтированного тома (который был перехвачен в при обработке ирпа IRP_MN_MOUNT_VOLUME посланного файловой системе)
но если вот сначала была вставлена флешка, и только потом запущен драйвер, то все вроде бы работает нормально...