|
|
分享源码
| 界面截图: |
|
| 是否带模块: |
纯源码 |
| 备注说明: |
- |
和前两次不同,这次就是用纯易语言编写的。我来大致讲解一下这个代码:这个代码使用了DeviceIoControl发送IOCTL_STORAGE_READ_CAPACITY(文档链接:https://learn.microsoft.com/zh-cn/windows/win32/api/winioctl/ni-winioctl-ioctl_storage_read_capacity)和IOCTL_STORAGE_QUERY_PROPERTY(文档链接:https://learn.microsoft.com/zh-cn/windows/win32/api/winioctl/ni-winioctl-ioctl_storage_query_property)实现的。
其中,IOCTL_STORAGE_READ_CAPACITY需GENERIC_READ权限,且输出缓冲区需传入STORAGE_READ_CAPACITY结构体(无需输入缓冲区,文档链接:https://learn.microsoft.com/zh-cn/windows/win32/devio/storage-read-capacity),而IOCTL_STORAGE_QUERY_PROPERTY就比较简单了,输入缓冲区要传入STORAGE_PROPERTY_QUERY结构体(文档链接:https://learn.microsoft.com/zh-cn/windows/win32/api/winioctl/ns-winioctl-storage_property_query,这里6表示StorageAccessAlignmentProperty),由于PropertyId=StorageAccessAlignmentProperty,因此输出缓冲区就是STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR结构体(文档链接:https://learn.microsoft.com/zh-cn/windows/win32/api/winioctl/ns-winioctl-storage_access_alignment_descriptor)
结构体的成员我就不细讲了,自己看文档吧。
|
评分
-
查看全部评分
|