IOCTL_CDROM_READ_TOC_EX IOCTL (ntddcdrm.h)

Queries the target device for the table of contents (TOC), the program memory area (PMA), and the absolute time in pregroove (ATIP). If the media is not a CD-ROM and does not support a TOC, this IOCTL returns information similar to that of a CD-ROM TOC. This is required for compatibility with some legacy initiator environments.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

Irp->AssociatedIrp.SystemBuffer points to a buffer of type CDROM_READ_TOC_EX whose contents indicate what information should be retrieved from the target device.

Parameters.Read.Length in the I/O stack location indicates the size, in bytes, of the information to be retrieved from the target device.

Input buffer length

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

Output buffer

The driver returns the query 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 output buffer, which must be >= MINIMUM_CDROM_READ_TOC_EX_SIZE.

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

Requirements

Requirement Value
Minimum supported client Available in Windows XP and later operating systems.
Header ntddcdrm.h (include Ntddcdrm.h)

See also

CDROM_READ_TOC_EX