IOCTL_CDROM_RAW_READ IOCTL (ntddcdrm.h)

Lê dados do CD-ROM no modo bruto.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Se o IOCTL for do modo de usuário, Irp-AssociatedIrp.SystemBuffer> conterá uma estrutura RAW_READ_INFO que especifica o deslocamento de disco inicial, a contagem de setores e o modo de acompanhamento (XA ou CDDA) para a leitura. Parameters.DeviceIoControl.InputBufferLength especifica o tamanho, em bytes, da estrutura, que deve ser >= sizeof(RAW_READ_INFO). Parameters.DeviceIoControl.OutputBufferLength especifica o tamanho do buffer a ser lido, que deve ser >= sizeof(SectorCount * RAW_SECTOR_SIZE).

Se o IOCTL for do modo kernel, Parameters.DeviceIoControl.Type3InputBuffer conterá uma estrutura que especifica o deslocamento de disco inicial, a contagem de setores e o modo de acompanhamento (XA ou CDDA) para a leitura. Parameters.DeviceIoControl.OutputBufferLength especifica o tamanho do buffer, em bytes, a ser lido, que deve ser >= sizeof(SectorCount * RAW_SECTOR_SIZE).

Comprimento do buffer de entrada

Veja acima.

Buffer de saída

O driver grava os bytes solicitados diretamente (usando DMA ou PIO) no buffer descrito pelo MDL em Irp-MdlAddress>.

Comprimento do buffer de saída

Comprimento de um MDL.

Bloco de status

Se a leitura for bem-sucedida, o driver definirá Status como STATUS_SUCCESS e Informações como o número de bytes transferidos. Se a leitura não for bem-sucedida, o driver definirá Informações como zero e Status como possivelmente STATUS_INVALID_PARAMETER, STATUS_INSUFFICIENT_RESOURCES ou STATUS_INVALID_DEVICE_REQUEST.

Requisitos

Requisito Valor
Cabeçalho ntddcdrm.h (inclua Ntddcdrm.h)

Confira também

RAW_READ_INFO