问题标签 [deviceiocontrol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 在 .NET 中,如何在 NTFS 中创建连接,而不是符号链接?
我正在尝试创建一个 NTFS 连接。在 cmd 行中,我可以使用sysinternals 的 junction.exe 工具执行此操作。结点的 DIR cmd 输出如下所示:
我在某处读到交界处是符号链接的子集。
所以我尝试使用CreateSymbolicLink创建一个 Junction。当我这样做时,我实际上得到了一个符号链接,而不是一个联结。
还有CreateHardLink。那里的文档说连接点(又名“重解析点”)是硬链接的一个子集。但我似乎无法让这个电话工作。它完成,但没有创建硬链接或结点。
我正在使用 .NET/C#,导入看起来像这样:
我究竟做错了什么?
如何从 C# 中创建连接?
c# - 使用 usbser.sys 冻结 SerialPort.Open / DeviceIoControl / GetcommState
我有一个 C 程序,它打开一个 COM 端口的句柄,向它写入一些字节,读取一些字节,然后关闭句柄并退出。但是,当我连续运行该程序 10 次时,开始需要很长时间才能完成该GetCommState
功能并卡在该SetCommState
功能中。同样的事情发生在 C# 的一个简单SerialPort
对象中。
我能找到的唯一解决方法是将设备重新连接到端口。有没有更优雅的方法来摆脱这种冻结?可能只是一些PC配置错误?
更新
我已经重写了代码以使其使用DeviceIoControl
而不是SetCommState
. 但是,这里的问题完全相同。
第一个问题:DeviceIoControl
不会立即返回(虽然是异步调用的)并且会挂起大约两分钟。第二个问题:在这两分钟之后,它失败并出现错误代码 121(ERR_SEM_TIMEOUT:“信号量超时期限已过期。”)。
- 使用的驱动是标准的windows驱动
usbser.sys
- 关于为什么函数调用没有立即返回的任何想法?如果没有,如何为函数设置更短的超时时间?
- 关于为什么功能失败的任何想法?
更新 2
也会冻结的示例 C# 代码(如上面的 C 程序):
示例输出如下:
c - FSCTL_LOCK_VOLUME 在装载的 VHD 上失败并显示 ERROR_ACCESS_DENIED
我正在开发一个将 FreeDOS 安装到虚拟硬盘上的程序。它生成并执行 DiskPart 脚本来创建 VHD、对其进行分区、格式化,然后为其分配驱动器号。
这工作正常。我的安装程序将所有内容复制到 VHD,但现在我需要编写一个引导扇区,这需要直接访问该卷。在开始此过程之前,我尝试使用 FSCTL_LOCK_VOLUME 锁定卷。
问题是:DeviceIoControl
返回ERROR_ACCESS_DENIED
,这(根据 MSDN)意味着卷上有打开的文件。但是我的安装程序在完成复制后会关闭每个文件,所以我不确定还有什么可能导致这种情况。它与 DiskPart 如何安装 VHD 有关吗?
DiskPart 脚本示例
注意:文件路径、磁盘大小、文件系统和驱动器盘符值会根据提供给程序的选项而变化。
C代码
winpcap - Winpcap 和 DeviceIoControl - Win7 上的错误代码 1
我正在尝试使用 Winpcap PacketRequest() 函数(位于 packet32.h 中)将 OID 发送到网络适配器。它适用于 XP32,不适用于 Win7 32 和 Win7 64(在 Win7 64 中我得到最后一个错误代码 1,在 32 中我不知道 - 我目前无法访问 32 位)。我查看了 PacketRequest() 函数的来源 - 它调用 DeviceIoControl(),这是失败的函数,因此 PacketRequest() 失败。
我是否使用了错误的 Winpcap 库?(我已经安装了 WinPcap_4_1_2.exe)
为什么win7不能运行?
提前致谢。
windows - 如何在 C/C++ 中以编程方式在外部 USB HD 上启用“更好的性能”
如何在 C/C++ 中以编程方式在外部 USB HD 上启用“更好的性能”。
具体来说,我说的是 Microsoft Windows 控制面板中的设备属性窗格。这启用了一种操作系统级别的写入缓存。
c# - 使磁盘联机/脱机
我有一个程序对 Windows 中的磁盘进行原始 IO。
如果目标磁盘在线,一切正常。但是,某些 Windows 操作系统中的默认行为是让新磁盘最初处于脱机状态。
我很难在 Windows 上找到正确的 API 来执行此操作。命令行等效项类似于:
但是我需要能够在代码中做到这一点。我查看了 DeviceIoControl Win32 API(我认为这是正确的),但无法确定要使用哪个控制代码。我找不到它的事实让我觉得我可能缺少更好的 API 来使用。
c++ - 错误:“IOCTL_STORAGE_QUERY_PROPERTY”未在此范围内声明
我已经包含winioctl.h
,并且该文件中没有#define
for IOCTL_STORAGE_QUERY_PROPERTY
!http://www.osronline.com/ddkx/storage/k307_8z3m.htm说它在但我 在我的 Windows XP 上ntddstor.h
找不到任何东西。ntddstor.h
但是IOCTL_STORAGE_QUERY_PROPERTY
提到它应该与 Windows XP 一起工作(我不需要> Vista 特定查询)并且它提到winioctl.h
只包含!(我没有使用 Visual C++,我使用 Qt 和 MinGW)
c# - 编组时 LARGE_INTEGER 值发生变化:从 LARGE_INTEGER 到 UINT64 (C) 到 C# 的 uint64
我尝试NdisGetCurrentSystemTime
通过 ioctl 将结果编组到 C# 程序。
在C#接收端,时间字段定义为uint64;编组结构中还有几个其他 uint64 字段。然而,当做
我意外地得到与 DBGPRINT 中的数字不同的大数字。
C#:
C:
字节顺序有什么奇怪的吗?
python - Python win32file 模块 DeviceIoControl 参数不正确
我有一台联想 ThinkPad 笔记本电脑,它内置了一个名为 Active Protection System 的加速度计。我的操作系统是 Windows 7,我安装了 python 2.7。我正在尝试编译一个 python 脚本,该脚本假设从加速度计读取数据,但它给出了error: (87, 'DeviceIoControl', 'The parameter is incorrect.')
错误。
我在设备管理器中找不到加速度计,但我知道它已正确安装,因为其他应用程序可以使用它,但我想我无法访问它?
什么可能导致这个问题?我该如何解决?提前致谢。
windows - 将驱动器号转换为分区 ID/磁盘 ID
给定驱动器号,如何在不使用注册表的情况下获取OSImage InstallTo 分区 ID和磁盘 ID ?