IOCTL_STORAGE_GET_DEVICE_NUMBER - NtDoc

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

// CTL_CODE(0x002d, 0x420, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_DEVICE_NUMBER 0x002D1080
View the official Windows Driver Kit DDI reference
// winioctl.h

// CTL_CODE(0x002d, 0x420, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_DEVICE_NUMBER 0x002D1080
View the official Win32 API reference

NtDoc

No description available.

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

IOCTL_STORAGE_GET_DEVICE_NUMBER IOCTL

Description

Returns a STORAGE_DEVICE_NUMBER structure that contains the FILE_DEVICE_XXX type, device number, and, for a partitionable device, the partition number assigned to a device by the driver when the device is started. This request is usually issued by a fault-tolerant disk driver.

Parameters

Major code

Input buffer

None.

Input buffer length

None.

Output buffer

The driver returns the STORAGE_DEVICE_NUMBER data in the buffer at Irp->AssociatedIrp.SystemBuffer.

Output buffer length

Parameters.DeviceIoControl.OutputBufferLength in the I/O stack location indicates the size, in bytes, of the parameter buffer, which must be >= sizeof(STORAGE_DEVICE_NUMBER).

Input/output buffer

n/a

Input/output buffer length

n/a

Status block

The Information field is set to the number of bytes returned. The Status field is set to STATUS_SUCCESS, or possibly to STATUS_INSUFFICIENT_RESOURCES.

See also

IOCTL_STORAGE_GET_DEVICE_NUMBER_EX

STORAGE_DEVICE_NUMBER


Win32 API reference (ni-winioctl-ioctl_storage_get_device_number)

IOCTL_STORAGE_GET_DEVICE_NUMBER IOCTL

Description

Retrieves the device type, device number, and, for a partitionable device, the partition number of a device.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  IOCTL_STORAGE_GET_DEVICE_NUMBER,  // 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.

Remarks

The values in the STORAGE_DEVICE_NUMBER structure are guaranteed to remain unchanged until the device is removed or the system is restarted. It is not guaranteed to be persistent across device restarts or system restarts.

See also