问题标签 [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.
c# - IOControlCode 要求 UShort,但我们的是 DWORD
我正在为 Windows 10 中的通用应用程序创建自定义设备。我们以前的应用程序(在没有 Universal 的情况下为 XP、7 和 8 运行)一直使用驱动程序控制代码作为DWORD
,但Windows.Devices.Custom
命名空间使用的函数IOControlCode()
使用 ushort。
我们以前使用的函数是:
在此处查看新文档
有没有其他选择或解决方法?
deviceiocontrol - 使用带有 ATA_PASS_THROUGH_EX 的 DeviceIoControl() 的 SECURITY_SET_PASSWORD 失败
我已经使用 ATA 命令 SECURITY_SET_PASSWORD 在 DeviceIoControl() 函数中尝试了 ATA_PASS_THROUGH_EX 或 ATA_PASS_THROUGH_DIRECT,但它总是因 GetLastError()=87(无效参数)而失败。但是 ATA 命令 IDENTIFY 总是成功的。
操作系统环境:Windows 8.1 64bit,Visual Studio 2010,我的应用程序有管理员权限。
我的目标是在 64 位 Windows 8.1 中发布 SECURITY ERASE UNIt 就像这个页面:https ://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
就像上面的网页一样,当我尝试在 ubuntu live CD 中使用“hdparm”来发布安全擦除时,相同的硬件和相同的 SSD 没有问题。
请您指导我的代码有什么问题?
windows - Windows IOCTL:如何写入 SD 卡外部 CSD 寄存器?
谁能指导我如何通过 IOCTL 在 Windows 上写入 SD 卡的外部 CSD 寄存器。
我正在使用 IOCTL_SFFDISK_DEVICE_COMMAND 发送 CMD6(SWITCH) 并修改 eMMC 外部 CSD 寄存器的一些字段。但是 DeviceIoControl 引发错误(ERROR_ACCESS_DENIED),我无法写入寄存器。例如,我试图将 Value=0x00 写入 POWER_OFF_NOTIFICATION 字段,即 ExCSD[34]。按照 linux 中 mmc_ioc_cmd 结构的填充方式
UINT32 value = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | (index << 16) | (val << 8) | EXT_CSD_CMD_SET_NORMAL;
我将命令数据填写为:
我的描述符数据为:
现在,我已经厌倦了两种填充和发送数据的方法:
方法1:将数据字段复制到信息字段中,即:
Method2 : 将 Data 字段复制到 DataBuffer 区域。我的缓冲区被声明为:
因此,
PS:我已经在运行 IOCTL 以成功读取 CID 和 CSD 寄存器的值。此外,外部 CSD 寄存器的内容通过 IOCTL_SFFDISK_MMC_QUERY_EXT_CSD。
任何帮助都感激不尽。
问候
win-universal-app - 用于从 UWP 应用程序访问设备驱动程序的 UWP API
用于从 UWP 应用程序访问设备驱动程序的 UWP API 是什么?我需要从 UWP 应用程序向驱动程序发送一些 IOCTL 命令。
不使用 Win32 API 是否可行?
c# - 使用 C# 在 USB 上创建多个分区
我正在尝试使用 DeviceIOControl 在 USB 中创建多个分区。它总是只创建一个分区。
这是我的源代码
它只创建一个偏移量为零且分区长度为 USB 完整大小的分区。
我从过去两天开始尝试这个,但仍然没有解决方案。
c++ - 错误 6:无效的句柄 DeviceIoControl()
我正在尝试创建一个简单的显示器亮度调整。SetMonitorBrightness() 无法在所需的监视器上以某种方式工作(ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA
)所以我正在尝试IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS.
为了获得句柄,我使用了 CreateFile:
现在,当我尝试访问 DeviceIoControl() 中的句柄时
我明白了Error 6: Invalid Handle
我究竟做错了什么?
c# - 在 VC 中使用 DevicIOControl#
我创建了两个使用 DeviceIOControl 调用的不同 Visual C# dll,我将它们定义如下:
在第一个 dll 中:
在第二个 dll 中:
但现在我必须将它们作为同一个类中的单个 dll。所以我尝试使用下面的。
作为通用定义并通过将结构转换为字符数组来传递变量。但是驱动程序没有按预期工作
请指导我遵循正确的程序
c++ - 如何在 C++ 中将驱动器号转换为物理驱动器名称?
我的问题是:给定一个连接到我的 Windows 机器的脱机磁盘,我怎样才能得到它的卷号?
场景:我需要为共享存储创建一个处理程序(使用 CreateFile 函数),以便在 DeviceIoControl 函数中使用它(需要执行 SCSI 保留)。
“CreateFile”函数获取物理驱动器名称(即\.\PhysicalDisk1)或磁盘的卷号(即\.\E:)。
我的问题是,我不想使用物理驱动器名称,只使用磁盘盘符。这在磁盘在线时工作正常,但当磁盘离线时我也必须支持。
有没有办法在设备/磁盘离线时确定字母?我认为有,因为当我让磁盘联机时,Windows 会自动给它正确的字母。因此,如果操作系统知道字母是什么,那么我也必须有一个 API 或工具可以使用。
谢谢,丹尼尔。
c# - Marshal.GetLastWin32Error() 在 UWP C# 中引发访问被拒绝
我的 UWP 应用程序中有以下代码
但是,当我尝试从 MainPage.xaml.cs 访问它时,我得到了“拒绝访问”的异常。将 Visual Studio 2015 社区切换到管理员模式也没有帮助
我在 Visual Studio 2015 社区中使用 UWP 和 C#