IOCTL_CHANGER_EXCHANGE_MEDIUM - NtDoc

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

// CTL_CODE(0x0030, 0x008, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_EXCHANGE_MEDIUM 0x00304020
View the official Windows Driver Kit DDI reference
// winioctl.h

// CTL_CODE(0x0030, 0x008, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_EXCHANGE_MEDIUM 0x00304020
View the official Win32 API reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-ntddchgr-ioctl_changer_exchange_medium)

IOCTL_CHANGER_EXCHANGE_MEDIUM IOCTL

Description

Moves a piece of media from a source element to one destination and the piece of media originally in the first destination to a second destination. The source and second destination are often the same, which essentially swaps the two pieces of media.

Parameters

Major code

Input buffer

The buffer at Irp->AssociatedIrp.SystemBuffer contains the CHANGER_EXCHANGE_MEDIUM data, which indicates the source, both destinations, and whether either or both media should be flipped, assuming the device supports two-sided media.

Input buffer length

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

Output buffer

None.

Output buffer length

None.

Input/output buffer

Input/output buffer length

Status block

The Information field is set to zero. The Status field is set to STATUS_SUCCESS, or possibly to STATUS_DESTINATION_ELEMENT_FULL, STATUS_INFO_LENGTH_MISMATCH, STATUS_INSUFFICIENT_RESOURCES, STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_ELEMENT_ADDRESS, STATUS_INVALID_PARAMETER, or STATUS_SOURCE_ELEMENT_EMPTY.

See also

CHANGER_EXCHANGE_MEDIUM

ChangerExchangeMedium


Win32 API reference (ni-winioctl-ioctl_changer_exchange_medium)

IOCTL_CHANGER_EXCHANGE_MEDIUM IOCTL

Description

Moves a piece of media from a source element to one destination, and the piece of media originally in the first destination to a second destination.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  IOCTL_CHANGER_EXCHANGE_MEDIUM,    // dwIoControlCode
  (LPVOID) lpInBuffer,              // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (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

To swap two pieces of media, specify the source as the value for the second destination.

See also