Prev Next

IOCTL_DISK_REASSIGN_BLOCKS info  Overview  Group

The IOCTL_DISK_REASSIGN_BLOCKS DeviceIoControl operation directs the disk device to map one or more blocks to its spare-block pool.

dwIoControlCode = IOCTL_DISK_REASSIGN_BLOCKS;   // operation code 

lpInBuffer;          // address of input buffer 

nInBufferSize;       // size of input buffer 

lpOutBuffer = NULL;  // address of output buffer; not used; must be NULL 

nOutBufferSize = 0;  // size of output buffer; not used; must be zero 

lpBytesReturned;     // address of actual bytes of output 

 

Parameters

lpInBuffer
Points to a buffer that contains a REASSIGN_BLOCKS data structure specifying the blocks to reassign to its spare block pool.
nInBufferSize
Specifies the size, in bytes, of the buffer pointed to by lpInBuffer, which must be large enough to contain the REASSIGN_BLOCKS data structure. Note that this structure is really a header followed by an array of block specifiers; thus, it varies in size according to the number of blocks to be reassigned; each block after the first adds the size of a DWORD to the overall size.
lpOutBuffer
Points to an output buffer. Not used with this operation. Set to NULL.
nOutBufferSize
Specifies the size, in bytes, of the buffer pointed to by lpOutBuffer. Not used with this operation. Set to zero.
lpBytesReturned
Points to a DWORD that receives the actual size, in bytes, of the data stored into lpOutBuffer.

Return Values

If the operation succeeds, DeviceIoControl returns a nonzero value.

If the operation fails, DeviceIoControl returns zero. To get extended error information, call GetLastError.

Remarks

This device I/O control operation is for disk devices.

See Also

DeviceIoControl, REASSIGN_BLOCKS