FSCTL_UNLOCK_VOLUME DeviceIoControl操作会解锁一个卷。
dwIoControlCode = FSCTL_UNLOCK_VOLUME; //操作代码
lpInBuffer = NULL; //指向输入缓冲区的指针;不曾用过;必须为NULL
nInBufferSize = 0; //输入缓冲区的大小不曾用过;必须为零
lpOutBuffer ; //指向输出缓冲区的指针;不曾用过;必须为NULL
nOutBufferSize ; //输出缓冲区的大小不曾用过;必须为零
lpBytesReturned ; //指向由DeviceIoControl函数使用的DWORD的指针
参数
【lpInBuffer】
指向输入缓冲区。不用于此操作。设置为NULL。
【nInBufferSize】
指定【lpInBuffer】指向的缓冲区的大小(以字节为单位)。不用于此操作。设置为零。
【lpOutBuffer】
指向输出缓冲区。不用于此操作。设置为NULL。
【nOutBufferSize】
指定【lpOutBuffer】指向的缓冲区的大小(以字节为单位)。不用于此操作。设置为零。
【lpBytesReturned】
指向DWORD.此值不能为NULL。尽管FSCTL_UNLOCK_VOLUME操作不产生输出数据,【lpOutBuffer】应为NULL,但DeviceIoControl函数使用【lpBytesReturned】指向的变量。操作后,该变量的值没有意义。
返回值
如果操作成功,DeviceIoControl返回TRUE。
如果操作失败,DeviceIoControl返回FALSE。要获取扩展错误信息,请调用GetLastError.
备注
应用程序可以调用FSCTL_LOCK_VOLUME DeviceIoControl操作来锁定卷。
传递给DeviceIoControl的【hDevice】句柄必须是一个卷的句柄,为直接访问打开。应用程序可以通过调用CreateFile 【lpFileName】设置为如下所示的字符串来获取这样一个句柄:
\\.\X:
其中X是硬盘驱动器分区字母,软盘驱动器或CD-ROM驱动器。该应用程序还必须在CreateFile的【dwShareMode】参数中指定FILE_SHARE_READ和FILE_SHARE_WRITE标志。
也可以看看