Share via


IOCTL_DISK_READ (Compact 2013)

3/26/2014

This I/O control message services FAT file system requests to read data from the block device. Send this message with DeviceIoControl.

Syntax

BOOL DeviceIoControl(
    HANDLE hDevice,           // handle to device
    DWORD dwIoControlCode,    // use IOCTL_DISK_READ
    LPVOID lpInBuffer,        // pointer to input buffer
    DWORD nInBufferSize,      // input buffer size
    LPVOID lpOutBuffer,       // pointer to output buffer
    DWORD nOutBufferSize,     // output buffer size
    LPDWORD lpBytesReturned,  // number of bytes returned
    OVERLAPPED lpOverlapped   // pointer to OVERLAPPED structure
);

Parameters

  • hDevice
    [in] Handle to the device.
  • dwIoControlCode
    [in] Control code for the operation. Use IOCTL_DISK_READ for this operation.
  • lpInBuffer
    [in] Pointer to a SG_REQ structure.
  • nInBufferSize
    [in] Specifies the size of the SG_REQ structure in lpInBuffer.
  • lpOutBuffer
    Not used.
  • nOutBufferSize
    Not used.
  • lpBytesReturned
    [out] Pointer to a DWORD to receive total number of bytes returned. If not needed, set to NULL.
  • lpOverlapped
    Not used.

Return Values

When this function returns, the FAT file system expects the sr_status member of SG_REQ to receive ERROR_SUCCESS if the read succeeded; otherwise, it receives a standard error return value. Certain errors retry automatically. For example, ERROR_BAD_UNIT retries automatically if you remove the device, and ERROR_NOT_READY retries automatically if the driver is shutting down or starting up. Block device drivers should return ERROR_GEN_FAILURE for any unknown or unexpected errors.

Remarks

This IOCTL call into the block driver is relative to the object store; the object store is the medium that the block driver exposes. This also implies that this IOCTL call is relative to the master boot record (MBR), but block drivers should not make assumptions on the existence of an MBR.

Requirements

Header

diskio.h

See Also

Reference

Block Driver IOCTLs
DeviceIoControl
SG_REQ