IOCTL_STORAGE_PROPERTY_QUERY

2023-11-12

Thanks.
I also find some thing :
1)use drive letter, use createfile
2)use IOCTL_STORAGE_PROPERTY_QUERY, query some property of the
storage device
3)if device's Bustype is BusTypeUsb, it's based on usb device
4)vid & pid is obvious in out data

 

 

IOCTL_STORAGE_QUERY_PROPERTY Control Code

已有 78 次阅读  2011-04-26 16:30
  1. Returns the properties of a storage device or adapter. The request indicates the kind of information to retrieve, such as the inquiry data for a device or the capabilities and limitations of an adapter. IOCTL_STORAGE_QUERY_PROPERTY can also be used to determine whether the port driver supports a particular property or which fields in the property descriptor can be modified with a subsequent change-property request.
  2. BOOL WINAPI DeviceIoControl(
  3. __in (HANDLE) hDevice, // handle to a partition
  4. __in (DWORD) IOCTL_STORAGE_QUERY_PROPERTY, // dwIoControlCode
  5. __in (LPVOID) lpInBuffer, // input buffer - STORAGE_PROPERTY_QUERY structure
  6. __in (DWORD) nInBufferSize, // size of input buffer
  7. __out_opt (LPVOID) lpOutBuffer, // output buffer - see Remarks
  8. __in (DWORD) nOutBufferSize, // size of output buffer
  9. __out_opt (LPDWORD) lpBytesReturned, // number of bytes returned
  10. __inout_opt (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure
  11. Parameters
  12. hDevice
  13. A handle to the disk device from which partition information is retrieved. To retrieve a device handle, call the CreateFile function.
  14. dwIoControlCode
  15. The control code for the operation. Use IOCTL_STORAGE_QUERY_PROPERTY for this operation.
  16. lpInBuffer
  17. A pointer to a buffer that contains a STORAGE_PROPERTY_QUERY data structure that specifies the details about the query. Device properties must be retrieved only from a device; attempting to retrieve device properties from an adapter will cause an error.
  18. nInBufferSize
  19. The size of the input buffer, in bytes. It must be large enough to contain a STORAGE_PROPERTY_QUERY data structure.
  20. lpOutBuffer
  21. An optional pointer to a buffer that receives a structure that starts with the same fields as a STORAGE_DESCRIPTOR_HEADER data structure. For more information on the specific structures returned see the Remarks section.
  22. nOutBufferSize
  23. The size of the output buffer, in bytes. It can be zero to determine whether a property exists without retrieving its data. To do that, set this parameter to zero (0) and the QueryType member of the STORAGE_PROPERTY_QUERY input structure to PropertyExistsQuery (1). If the call to DeviceIoControl returns a nonzero value then the property exists.
  24. lpBytesReturned
  25. A pointer to a variable that receives the size of the data stored in the output buffer, in bytes.
  26. If the output buffer is too small, the call fails, GetLastError returns ERROR_INSUFFICIENT_BUFFER, and lpBytesReturned is zero.
  27. If lpOverlapped is NULL, lpBytesReturned cannot be NULL. Even when an operation returns no output data and lpOutBuffer is NULL, DeviceIoControl makes use of lpBytesReturned. After s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IOCTL_STORAGE_PROPERTY_QUERY 的相关文章

  • 我可以使用什么 C++ 库在 Windows 上将 PDF 转换为图像?

    我正在开展一个需要分析图像的项目 这些图像的主要来源是网络摄像头 但最近我们被要求添加对上传文件和扫描仪的支持 这在大多数情况下都很好 只是他们希望我们能够使用 PDF 格式的文档 我需要一个原始像素位图进行处理 在 Mac 上 我可以使用
  • chcp 65001 代码页导致程序终止且没有任何错误

    Problem 当我想要的时候问题就出现了inputPython 解释器中的 Unicode 字符 为简单起见 我在示例中使用了变音符号 但我第一次遇到波斯语字符 每当我使用 Python 时CHCP 65001 https ss64 co
  • 在 Windows 上使用 PHP 进行分叉/线程的最佳方法是什么?

    我有一个 php 脚本 用于检查许多 数千个 网站上的更新 有时 随着站点数量的增加 情况会更频繁 我在更新其中一个站点时会遇到执行超时 整个脚本都会付诸东流 我能想到的最好的想法是分叉每个更新 所以如果它死了 整体更新就会继续 从我收集到
  • Windows Unicode C++ 流输出失败

    我目前正在编写一个应用程序 它要求我在任意窗口上调用 GetWindowText 并将该数据存储到文件中以供以后处理 长话短说 我注意到我的工具在 战地 3 上失败了 我将问题范围缩小到窗口标题中的以下字符 http www filefor
  • 批处理文件中的 %* 是什么意思?

    我见过的用法 在批处理文件和命令行中 有人可以解释一下的典型用法吗 有一个例子吗 它的意思是 命令行中的所有参数 例如 当您想要将命令行从批处理文件转发到另一个程序时 它非常有用 REM mybatchfile cmd echo You c
  • 自动化 Windows UI 测试方法

    我们正在寻求设置自动化 UI 测试 并想知道最好的方法是什么 潜在的陷阱是什么 设置费用是否昂贵 提前致谢 B 自动化测试最大的消耗可能是时间 有很多非常昂贵的工具 但也有免费的工具 即使是昂贵的工具的成本也不太可能与正确设置自动化测试所需
  • 在 Windows 上使用 Python 打开设备句柄

    我正在尝试使用 Giveio sys 驱动程序 该驱动程序需要先打开一个 文件 然后才能访问受保护的内存 我正在查看 WinAVR AVRdude 中的 C 示例 它使用以下语法 define DRIVERNAME giveio HANDL
  • 以系统帐户运行exe

    我正在尝试将我的 c exe 作为系统帐户运行 我怎样才能做到这一点 我试过了
  • 轻量级 Windows 应用程序的最佳开源示例是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法加载 php_curl

    我已经在WindowsXp上安装了php5 2 13 apache2 2 15 将C php添加到PATH ssystem变量中 我无法启用卷曲扩展 我配置了extension dir并删除了 在 php ini 中形成 php curl
  • 如何在 Windows 中使用 cmake 更轻松地链接 gtk 库?

    我现在通过手动包含所有必需的路径 gtk包位于D Tools gtk bundle 2 20 0 20100406 win32 include directories D Tools gtk bundle 2 20 0 20100406 w
  • 如何在 Windows 上的 PostgreSQL 中创建具有 UTF-8 排序规则的数据库?

    我正在为 Windows 上的 Bitbucket 服务器配置 PostgreSQL 数据库 在官方guide https confluence atlassian com bitbucketserver connecting bitbuc
  • IIS 或任何文件夹服务器 2012 R2 中不存在 adfs 目录的虚拟或物理位置

    我有一个完全可操作的联合身份验证服务器 Azure 同步 Office 365 同步和本地 配置的每个部分都完美运行 我遇到的问题是 没有任何 Web 目录文件的痕迹 我查看了每个位置 并且我的联合代理或联合服务器上不存在虚拟目录 我正在尝
  • 使用命令提示符查找 CPU 数量和每个 CPU 的核心数

    我正在尝试使用命令提示符检索 CPU 数量和每个 CPU 的核心数 我已经执行了以下命令 wmic cpu get NumberOfCores NumberOfLogicalProcessors Format List 我收到此错误 wmi
  • Powershell脚本运行带有参数的exe文件

    我需要脚本来运行带参数的 exe 文件 我就是这么写的 请问有更好的方法吗 Command Networkpath Restart exe Parms t 21600 m 360 r f Prms Parms Split Command P
  • 如何在Python中打印颜色/颜色?

    我对 Python 和 StackOverflow 都是新手 需要一点帮助 我想用 Python 打印颜色 并在 Google 上搜索过 但运气不佳 每次我都很困惑 但都没有成功 这是我输入的代码 answer input Wanna go
  • 如何使用 Windows forfiles 命令的完整路径运行命令?

    我正在尝试运行以下命令 forfiles p Schemas m xsd c cmd c C Program Files x86 Microsoft SDKs Windows v10 0A bin NETFX 4 6 1 Tools xsd
  • 从 Get-ChildItem -Path 返回对象数组

    从 powershell 开始 ls R txt将按目录递归列出文件 或者更好 PS gt Get ChildItem Path C Test Name logs anotherfile txt Command txt CreateTest
  • 链接到大地址感知 DLL

    假设我有一个使用 LARGEADDRESSAWARE 链接器标志集构建的 DLL 现在我有一个动态链接到该 DLL 的应用程序 这是否会使我的应用程序具有大型地址意识 如果不是 那么为任何 DLL 设置此标志是否有意义 讨论here htt
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm

随机推荐

  • 原型链解释

    一 什么是原型链 原型链是javascript中用来实现类似类继承的一套机制 像链条一样把javascript中的对象连接起来 实现类似子联系父的现象 二 原型链的实现 总的来说 就是 对象的 proto 指向其构造器的prototype对
  • ahx文件转mav文件 工具分享及说明

    前言 今天用ndstool 拆了个nds的游戏 提取音频资源时发现格式为ahx 查了查网上都没有转换资料 格式工厂也不支持此格式 于是在github上找到了个好工具 分享一下 根据 文件格式查询信息库 数据统计 AHX 文件扩展名相关的格式
  • Docker8_2:Docker volume容器数据卷挂载:具名挂载和匿名挂载

    Docker8 2 Docker volume容器数据卷挂载 具名挂载和匿名挂载 docker volume 匿名挂载 不常用 具名挂载 常用 三种挂载方式 docker volume docker volume相关命令 docker 卷操
  • Qt Installer Framework的学习

    Qt Installer Framework的学习 Qt Installer Framework是Qt默认包的发布框架 它很方便 使用静态编译Qt制作而成 并且使用了压缩率很高的7z对组件进行压缩 之所以有这些好处 我才觉得值得花一点儿精力
  • 包装类之Integer案例学习

    引入 首先标题我写了学习Integer作为案例 是因为了解了一个包装类 其他便能深入浅出的学习到了 1 什么是包装类 以前定义变量 经常使用基本数据类型 对于基本数据类型来说 它就是一个数 加点属性 加点方法 加点构造器 将基本数据类型对应
  • 「Python 机器学习」Pandas 数据分析

    Pandas 是一个开源的 Python 库 专为数据处理和分析任务而设计 它提供了高性能 易用的数据结构和数据分析工具 使得在 Python 中进行数据科学变得简单高效 Pandas 基于 NumPy 因此可以与许多其他基于 NumPy
  • 蓝桥杯VIP试题 基础练习 龟兔赛跑预测C语言,C++

    试题 基础练习 龟兔赛跑预测 资源限制 时间限制 1 0s 内存限制 512 0MB 问题描述 话说这个世界上有各种各样的兔子和乌龟 但是研究发现 所有的兔子和乌龟都有一个共同的特点 喜欢赛跑 于是世界上各个角落都不断在发生着乌龟和兔子的比
  • 推荐系统综述:初识推荐系统

    目录 1 引言 2 发展历史 3 研究现状 4 推荐方式和效果评估 4 1 评分预测 4 2 TopN推荐 5 推荐算法 5 1 基于用户行为推荐 5 1 1 基于用户的协同过滤 User Based CF 5 1 2 基于物品的协同过滤
  • c++11新特性-可变参数模板

    在c 11中声明可变函数模板需要typename或者class后面跟上 省略号有两个作用 1 声明一个参数包 这个参数包可以有0到任意个参数 2 在模板定义的右边 可以将参数包展开成一个一个独立的参数 可变函数模板的定义 template
  • JAVA安装详细教程

    JAVA安装详细教程 如果下面的博客没有能解决你的问题或者你还有其他关于计算机方面的问题需要咨询可以加博主QQ 1732501467 JAVA安装总共分为三部分 一 下载JAVA安装包并安装JAVA 二 电脑环境设置 三 验证Java是否安
  • spring核心框架体系结构(jar包依赖)

    很多人都在用spring开发java项目 但是配置maven依赖的时候并不能明确要配置哪些spring的jar 经常是胡乱添加一堆 编译或运行报错就继续配置jar依赖 导致spring依赖混乱 甚至下一次创建相同类型的工程时也不知道要配置哪
  • stm32c8t6-PWM控制SG90舵机及用串口下载程序

    舵机是用PWM波控制的 学完PWM就可以简单的控制舵机啦 我用的是stm32c8t6单片机 高级定时器TIM1 CH1 使用通用定时器也行 大同小异 结果都一样 定时器部分的知识 代码网上都有 我这里不再赘述 开始之前我们先了解一下舵机的特
  • 树莓派3B安装64位操作系统

    树莓派3B 安装Ubuntu MATE 树莓派3b 安装ubuntu 雨田大大的博客 CSDN博客https blog csdn net lsjackson13 article details 92423694 utm medium dis
  • python3.8 Crypto.Cipher报错快速解决办法

    python3 8 Crypto Cipher报错快速解决办法 使用大佬编译好的whl安装包 把python3安装目录Lib和Lib site packges下的crypto改成Crypto 再安装crypto pip3 install c
  • OpenMV与STM32之间的通信

    OpenMV与STM32之间使用串口进行通信 OpenMV 详细解释可以看代码里面的注释 注意 转换成字节型传输时 负数会以补码形式传输 比如 1在单片机接受时变成255 import sensor image time math 调用声明
  • Apache Commons Daemon简介说明

    转自 Apache Commons Daemon简介说明 下文笔者讲述Apache Commons Daemon的功能简介说明 如下所示 Apache Commons Daemon的功能 用于将一个普通的java应用程序编程系统的后台服务
  • Qt信号和槽函数连接不成功原因

    Qt信号和槽连接失败原因主要有以下几点 1 槽函数并没有声明在类的public slots 或private slots或protected slots 里 因此 所想要成为槽函数的那个函数只是普普通通成员函数 2 信号和槽之间存在参数传递
  • Ajax获取图片的两种方式

    在Web项目中 我们可能遇到需要利用Ajax来获取图片的情况 因为客户端处理的是图片文件的二进制流 所以可利用Blob和File API来将图片转为URL 赋值给img的src属性来解决这个问题 本文总结Ajax获取图片的两种方式 即针对X
  • Java 调用Matlab画图实用教程

    本文主要讲述使用Java程序调用Matlab画图的步骤 1 编写Matlab绘图程序 function drawzhexiantu x y 绘图 plot x real y real b 线性 颜色 标记 设置标题 title ceshil
  • IOCTL_STORAGE_PROPERTY_QUERY

    Thanks I also find some thing 1 use drive letter use createfile2 use IOCTL STORAGE PROPERTY QUERY query some property of