IOCTL_STORAGE_GET_MEDIA_TYPES_EX - NtDoc

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

// CTL_CODE(0x002d, 0x301, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX 0x002D0C04

View the official Windows Driver Kit DDI reference
// winioctl.h

// CTL_CODE(0x002d, 0x301, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX 0x002D0C04

View the official Win32 API reference

NtDoc

No description available.

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

IOCTL_STORAGE_GET_MEDIA_TYPES_EX IOCTL

Description

Returns information about the types of media supported by a device. A storage class driver must handle this IOCTL to control devices to be accessed by the removable storage manager (RSM) either as stand-alone devices or as data transfer elements (drives) in a media library or changer device.

Parameters

Major code

Input buffer

None.

Input buffer length

None.

Output buffer

The driver returns an array of DEVICE_MEDIA_INFO structures, one for each media type supported by the device, embedded in a GET_MEDIA_TYPES structure 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(GET_MEDIA_TYPES) plus additional device-type-specific data, if any.

Input/output buffer

Input/output buffer length

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_INFO_LENGTH_MISMATCH or STATUS_INSUFFICIENT_RESOURCES.

See also

DEVICE_MEDIA_INFO

GET_MEDIA_TYPES


Win32 API reference (ni-winioctl-ioctl_storage_get_media_types_ex)

IOCTL_STORAGE_GET_MEDIA_TYPES_EX IOCTL

Description

Retrieves information about the types of media supported by a device.

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

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