IOCTL_STORAGE_READ_CAPACITY - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntddstor.h

// CTL_CODE(0x002d, 0x450, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_READ_CAPACITY 0x002D5140
View the official Windows Driver Kit DDI reference
// winioctl.h

// CTL_CODE(0x002d, 0x450, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_READ_CAPACITY 0x002D5140
View the official Win32 API reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-ntddstor-ioctl_storage_read_capacity)

IOCTL_STORAGE_READ_CAPACITY IOCTL

Description

The IOCTL_STORAGE_READ_CAPACITY request returns the read capacity information for the target storage device.

Parameters

Major code

Input buffer

None.

Input buffer length

None.

Output buffer

The buffer at Irp->AssociatedIrp.SystemBuffer contains a STORAGE_READ_CAPACITY structure.

Output buffer length

Parameters.DeviceIoControl.OutputBufferLength in the I/O stack location of the IRP indicates the size, in bytes, of the buffer, which must be at least sizeof(STORAGE_READ_CAPACITY).

Input/output buffer

Input/output buffer length

Status block

The Status field can be set to STATUS_SUCCESS, or possibly to STATUS_INVALID_DEVICE_REQUEST, STATUS_BUFFER_TOO_SMALL, STATUS_BUFFER_OVERFLOW, or some other error status.

Remarks

A IOCTL_STORAGE_READ_CAPACITY request returns the disk capacity information retrieved during disk initialization. The capacity information is obtained by the system with the SCSI READ CAPACITY command.

See also

STORAGE_READ_CAPACITY


Win32 API reference (ni-winioctl-ioctl_storage_read_capacity)

IOCTL_STORAGE_READ_CAPACITY IOCTL

Description

Retrieves the geometry information for the device.

To perform this operation, call the DeviceIoControl function with the following parameters.

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

Parameters

Input buffer

Input buffer length

Output buffer

Output buffer length

Input/output buffer

Input/output buffer length

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful.

Otherwise, Status to the appropriate error condition as a NTSTATUS code.

For more information, see NTSTATUS Values.

See also