如何检测媒体是否已插入可移动驱动器/读卡器

2024-05-03

我有一个读卡器(未插入记忆棒)。

当我插入计算机时,它在“我的电脑”中显示一个空驱动器...

是否有可能知道驱动器是否有媒体(抱歉我不知道如何称呼它)或没有......


我找到的建议MSalters to use IOCTL_STORAGE_CHECK_VERIFY非常好。使用上有一个小技巧IOCTL_STORAGE_CHECK_VERIFY。在函数中使用 IOCTL 代码之前DeviceIoControl需要打开相应的设备CreateFile功能:

HANDLE hDevice = CreateFile (szDeviceName,  // like "\\.\E:"
                             0,             // no access to the drive
                             FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode
                             NULL, OPEN_EXISTING, 0, NULL);

对于使用DeviceIoControl可以使用 0 作为第二个参数CreateFile,因为我们不会使用ReadFile, WriteFile等功能来访问设备。实施IOCTL_STORAGE_CHECK_VERIFY请遵循一些数据请求的读取。所以能够使用IOCTL_STORAGE_CHECK_VERIFY没有ERROR_ACCESS_DENIED(5) 错误我们必须按如下方式打开设备

HANDLE hDevice = CreateFile (szDeviceName,  // like "\\.\E:"
                             FILE_READ_DATA, // read access to the data
                             FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode
                             NULL, OPEN_EXISTING, 0, NULL);

存在另一个版本IOCTL_STORAGE_CHECK_VERIFY - IOCTL_STORAGE_CHECK_VERIFY2其工作原理与IOCTL_STORAGE_CHECK_VERIFY但速度更快(参见http://msdn.microsoft.com/en-us/library/ff560538.aspx http://msdn.microsoft.com/en-us/library/ff560538.aspx)。使用IOCTL_STORAGE_CHECK_VERIFY2一个人只需打开设备FILE_READ_ATTRIBUTES access:

HANDLE hDevice = CreateFile (szDeviceName,         // like "\\.\E:"
                             FILE_READ_ATTRIBUTES, // read access to the attributes
                             FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode
                             NULL, OPEN_EXISTING, 0, NULL);

测试驱动器中媒体是否存在的代码如下所示

DWORD cbBytesReturned;
bSuccess = DeviceIoControl (hDevice,                     // device to be queried
                            IOCTL_STORAGE_CHECK_VERIFY2,
                            NULL, 0,                     // no input buffer
                            NULL, 0,                     // no output buffer
                            &cbBytesReturned,            // # bytes returned
                            (LPOVERLAPPED) NULL);        // synchronous I/O
if (bSuccess)
    _tprintf (TEXT("the device media are accessible\n"));
else if (GetLastError() == ERROR_NOT_READY)
    _tprintf (TEXT("the device media are not accessible\n"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测媒体是否已插入可移动驱动器/读卡器 的相关文章

  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • RabbitMq 和“致命错误:握手失败 -handshake_decode_error”

    我正在使用 Windows Server 2012 Erlang 19 2 和 RabbitMq 3 6 6 我在使用 TLS 配置端点之间的连接时遇到问题 我已经尝试了所有关于 SO 的答案 以及所有 RabbitMq 文档here ht
  • NtDll 真的导出 C 运行时函数吗?我可以在我的应用程序中使用这些函数吗?

    我在查看 Windows 10 计算机上的 NtDll 导出表 发现它导出标准 C 运行时函数 例如memcpy sprintf strlen etc 这是否意味着我可以在运行时动态调用它们LoadLibrary and GetProcAd
  • 如何让脚本执行结束后自动删除?

    是否可以制作一个Python脚本 在Windows中执行结束时删除 py文件 自删除 这种方式使您的程序不依赖于操作系统 from os import remove from sys import argv remove argv 0 奖励
  • 支持 ARM 上的 Windows 10 桌面应用程序 - MFC 和 COM 以及 OPOS 可以工作吗?

    我试图了解将在 x86 Windows 10 上运行的 C MFC 应用程序移植到具有 Qualcomm Snapdragon 处理器的 ARM Windows 10 设备的障碍 32位应用程序具有以下特点 MFC 与 C 用于用户界面 C
  • Python 无法在 git bash 命令行中工作

    Python 不会在 git bash Windows 中运行 当我在命令行中输入 python 时 它会将我带到一个空行 而不会像在 Powershell 中一样显示它已输入 python 2 7 10 它没有给我错误消息 但 pytho
  • Windows 上的 Openssl 错误 0x02001005 和 0x2006D002?

    我正在尝试使用 openssl 将 cer 证书转换为 p12 证书 这是我正在使用的命令 C OpenSSL Win32 bin gt openssl x509 inform der in developer identity cer o
  • MoveWindow死锁?

    我在线程 A 上有一个窗口 它在某个时刻 由于在其 wndproc 上收到消息 触发线程 B 上的操作 然后等待该操作完成 使用某种同步机制 然后线程B调用MoveWindow 在线程 A 的窗口 例如标准文本框 内移动子窗口 此时程序由于
  • 以编程方式从 java 代码中查找 java.exe 的绝对路径

    如果我有一个由用户启动的 java jar 或类文件 假设在环境变量中设置了 java 路径 那么我如何从代码中找出 java exe javaw exe 的绝对路径文件正在启动 就像在 ubuntu 上一样 我们可以运行 which ja
  • 如何在Windows上分离“Git bash”中启动的“git gui”?

    例如 我开始 git bash 我导航到某个目录 I start git gui 我关闭控制台窗口或按 Ctrl C Git gui 的窗口消失了 即使我用过git gui disown 即使当我按 Ctrl C 时它不在前台 如何正确分离
  • 取消后调用 boost::asio 异步处理程序没有错误

    我的代码在单个线程中使用 boost asio 和 io service 来执行各种套接字操作 所有操作都是异步的 每个处理程序都依赖于boost system error code 特别boost asio error operation
  • C# - 方法必须有返回类型

    我在调用 C 中的方法时遇到问题 不断收到消息 方法 计算 必须有返回类型 using System Diagnostics namespace WindowsFormsApplication1 public partial class F
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 自定义波特率,redux

    我遇到的问题详述如下自定义波特率 https stackoverflow com questions 7714060 custom baud rate SetCommState 波特率 921600 失败 但波特率 115200 成功 尽管
  • Windows 窗口对接

    我想知道如何在 Windows 中将窗口停靠 捕捉到屏幕的一侧 最好使用直接的 Win32 API 我正在寻找的效果就像任务栏 一个在屏幕上有保留空间的窗口 因此最大化另一个窗口会使该窗口占据屏幕的其余部分 但使我的窗口保持在适当的位置并可
  • 使用 CreateProcessAsUser 和 CreateEnvironmentBlock 创建进程后未设置 Clientname

    我编写了一个在本地系统帐户下运行的 C 服务 当用户登录终端服务器时 我用它来生成一个进程 该服务实现了OnSessionChange方法并接收SessionChangeDescription具有相应SessionID的消息 我使用此 Se
  • 将 CrashDumps 转储到应用程序运行所在的同一文件夹中

    我编写了一个应用程序 我希望对其进行一定程度的自动调试 我想使用 Windows 错误报告将故障转储输出到应用程序运行所在的同一文件夹中 我的想法是 我可以让我的应用程序在它自己的文件夹中查找任何 dmp 文件 然后根据需要上传它们进行分析
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用

随机推荐

  • 幻灯片引导轮播之间的空白

    我正在网站主页上使用引导轮播作为滑块 当轮播自动滑动时没有问题 但一旦我单击下一个和上一个箭头 幻灯片之间就会出现 140px 宽的空白 我已经检查了 css 并删除了 HTML 中的所有空白 但我一点运气都没有 轮播 HTML div c
  • 使用 contains 或循环列表之间有什么大的区别吗?

    性能方面 使用之间真的有很大区别吗 ArrayList contains o 与 foreach iterator LinkedList contains o 与 foreach iterator 当然 对于 foreach iterato
  • Hibernate 中的 JPA 2.1 NamedSubgraph 忽略嵌套子图

    我正在使用 Hibernate 4 3 8 FINAL 并具有以下模型 其中一个部门有许多员工 并且员工可以是经理 Manager 有一组 Foo 可以是 Foo 也可以是 Bar 员工实体 Entity Table name employ
  • 为什么Java不支持结构体? (只是出于好奇)

    我知道您可以使用公共字段或其他一些解决方法 或者也许你根本不需要它们 但只是出于好奇为什么 Sun 没有考虑结构 这是一个link http www oracle com technetwork java simple 142616 htm
  • 发现多个文件具有与操作系统无关的路径“protobuf.meta”

    我发现一些兼容性问题com google android gms play services auth 11 6 0 and com android support test espresso espresso core 3 0 1当用作
  • PyParsing:是否可以全局抑制所有文字?

    我有一个简单的数据集 可以使用如下行进行解析 R1 a 30 to R2 b 30 metric 30 我需要的唯一数据如下 R1 a 30 R2 192 168 0 2 30 30 我可以使用 pyparsing 轻松解析所有这些内容 但
  • pg_resetxlog 是做什么的?它是如何运作的?

    我查看了 postgres 文档 并给出了以下概要 pg resetxlog f n ooid x xid e xid epoch m mxid O mxoff l timelineid fileid seg datadir 但文档中没有任
  • 如何在Python中从JSON中删除括号?

    我在用json dumps将字典列表加载到 JSON 对象中 我的输出类似于 MetaData SRData ListOfLa311DeadAnimalRemoval DeadAnimalRemoval DACItemCount 0 DAC
  • 如何在 File 类中提供相对路径来上传任何文件? [复制]

    这个问题在这里已经有答案了 我正在上传一个文件 我想为其提供相对路径 因为该程序应该在 Linux 和 Windows 环境中运行 这就是我用来上传的 realPath getServletContext getRealPath files
  • 首次执行后 CPU 霍夫曼压缩速度更快?

    我最近用 C 构建了 Huffman 编码的 CPU 实现 我还在 CUDA 中构建了一个 GPU 版本来比较时间 但在测试 CPU 时间时遇到了一个问题 当通过压缩大文件 例如几乎包含字母表中的每个字母和各种其他 ascii 字符的 97
  • 如何链接到以数组作为参数的操作(RedirectToAction 和/或 ActionLink)?

    我有一个如下定义的操作 public ActionResult Foo int bar 像这样的 URL 将按预期工作 Controller Foo bar 1 bar 3 bar 5 我有另一个操作可以完成一些工作 然后重定向到Foo上面
  • 如何在 python f 字符串中动态填充数字?

    我有一个像这样的 f 字符串 f foo i 03d 这会为我读入的文件生成一个文件名 问题是有时有数百个文件 因此文件的名称类似于 foo 001 foo 002 等 但其他时候有数千个 因此文件的名称为 foo 001 foo 002
  • 如何减少顶点图中折线图的线条粗细

    我在角度项目中使用 Apex 图表 我在那里实现了时间序列图表 但无法减少折线图中的 线条粗细 这是我的配置 public initChartData void this series this response data data thi
  • 进程终止时释放资源

    当进程被任务管理器等进程终止时 如何释放资源 有没有办法在进程关闭之前调用函数 如果您的进程被终止 您实际上无能为力 根据定义 杀死一个进程就是杀死它 该进程没有机会运行任何代码 这很大程度上是 设计使然 想象一下 您可以注册一个例程 当您
  • Python 函数前的星号[重复]

    这个问题在这里已经有答案了 我正在关注这个教程 http www pyimagesearch com 2015 04 20 sorting contours using python and opencv comment 405768 ht
  • 检测 iPhone 上的长按

    我正在开发一个 iPhone 应用程序 它要求我检查是否已点击按钮并按住 6 秒 然后触发一个播放某种声音的动作 我应该如何检测这个 6 秒的点击 另一方面 用户还可以持续点击按钮 6 秒 然后会触发相同的操作 我应该如何处理多次点击 我怎
  • 如何按层次结构对文件路径名进行排序?

    我想按层次结构对文件名进行排序 假设我有以下文件夹列表 D Movies Hollywood Comedy adultcomedy D Movies Hollywood Comedy horrorcomedy D Movies Hollyw
  • 将图像从 Android 上传到 GCS

    我正在尝试将图像从 Android 直接上传到 Google 云存储 但API似乎不起作用 他们有一些与 App 引擎相关的 Java 示例 我没有看到任何被证明可以在 Android 上运行的示例 在 Android 上 我尝试使用 js
  • 从 SpringBoot 项目中的属性文件获取 Maven basedir

    我继承的Maven项目有一些JUnits中使用的资源文件 这些文件在属性文件中被称为绝对路径 我们假设 Maven 项目位于myproject 其中主要pom xml居住 A config properties文件有 keystore fi
  • 如何检测媒体是否已插入可移动驱动器/读卡器

    我有一个读卡器 未插入记忆棒 当我插入计算机时 它在 我的电脑 中显示一个空驱动器 是否有可能知道驱动器是否有媒体 抱歉我不知道如何称呼它 或没有 我找到的建议MSalters to use IOCTL STORAGE CHECK VERI