社区
硬件/系统
帖子详情
deviceiocontrol 如何获取光盘信息?
loda1316
2012-04-18 03:50:49
deviceiocontrol 如何获取光盘信息
...全文
174
2
打赏
收藏
deviceiocontrol 如何获取光盘信息?
deviceiocontrol 如何获取光盘信息
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loda1316
2012-04-18
打赏
举报
回复
好的 谢谢!
xiaxueying
2012-04-18
打赏
举报
回复
//指向光盘
HANDLE OpenDisk()
{
HANDLE hDisk;
// 打开设备
hDisk = ::CreateFile("\\\\.\\CDROM0", // 文件名
GENERIC_READ | GENERIC_WRITE, // 读写方式
FILE_SHARE_READ | FILE_SHARE_WRITE, // 共享方式
NULL, // 默认的安全描述符
OPEN_EXISTING, // 创建方式
0, // 不需设置文件属性
NULL); // 不需参照模板文件
return hDisk;
}
//光盘分区信息
BOOL GetDiskPassion(HANDLE hDisk, PARTITION_INFORMATION &partitionInfo)
{
DWORD dwOutBytes;
BOOL bResult;
bResult = ::DeviceIoControl(hDisk,
IOCTL_DISK_GET_PARTITION_INFO,
NULL,
0,
&partitionInfo,
sizeof(PARTITION_INFORMATION),
&dwOutBytes,
NULL);
return bResult;
}
//获取光盘柱数,扇区、轨道
BOOL GetDiskGeometry(HANDLE hDisk, DISK_GEOMETRY *lpGeometry)
{
DWORD dwOutBytes;
BOOL bResult;
// 用IOCTL_DISK_GET_DRIVE_GEOMETRY取磁盘参数
bResult = ::DeviceIoControl(hDisk, // 设备句柄
IOCTL_DISK_GET_DRIVE_GEOMETRY, // 取磁盘参数
NULL, 0, // 不需要输入数据
lpGeometry, sizeof(*lpGeometry), // 输出数据缓冲区
&dwOutBytes, // 输出数据长度
(LPOVERLAPPED)NULL); // 用同步I/O
return bResult;
}
DISK_GEOMETRY PARTITION_INFORMATION这两个结构体可以到msdn中查找
获得“光驱和刻录机中
光盘
”的
信息
主要通过
Device
Ioc
ontrol
和一些系统API
获取
刻录机和刻录机中
光盘
的
信息
,其中包含头文件和源文件,加入工程后即可使用,
获取
光盘
信息
的函数在刻录
光盘
时因为系统资源被占用有一个函数失败,因仓促写成,这个函数中流程有点问题,其他的函数还是成功的,各位稍稍修理下即可使用。
设备驱动函数
device
ioc
ontrol
实战实例
可以
获取
硬盘、
光盘
、软盘等设备的具体
信息
c#
光盘
刻录源码 调用系统api
光盘
刻录
c#
光盘
刻录源码 调用系统api
光盘
刻录
C# 读写分区(按扇区)
C# 读写分区(按扇区)
实时监视光驱中有无
光盘
一个可以实时 监视光驱中有无
光盘
的程序
硬件/系统
2,643
社区成员
17,234
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章