IOCTL_DISK_REASSIGN_BLOCKS IOCTL (winioctl.h)

指示磁盘设备将一个或多个块映射到其备用块池。

若要执行此操作,请使用以下参数调用 DeviceIoControl 函数。

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to device
  IOCTL_DISK_REASSIGN_BLOCKS,   // dwIoControlCode
  (LPVOID) lpInBuffer,          // input buffer 
  (DWORD) nInBufferSize,        // size of input buffer 
  NULL,                         // lpOutBuffer
  0,                            // nOutBufferSize
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

注解

IOCTL_DISK_REASSIGN_BLOCKS控制代码使用的REASSIGN_BLOCKS结构仅支持逻辑块地址 (LBA) 适合 4 字节值的驱动器, (通常高达 2 TB) 。 对于较大的驱动器, IOCTL_DISK_REASSIGN_BLOCKS_EX 控制代码使用的 REASSIGN_BLOCKS_EX 结构支持 8 字节的 LBA。 为了保持兼容性,应尽可能使用 IOCTL_DISK_REASSIGN_BLOCKS 控制代码和 REASSIGN_BLOCKS 结构。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winioctl.h (包括 Windows.h)

另请参阅