IOCTL_CDROM_RAW_READ IOCTL (ntddcdrm.h)
Lit les données du CD-ROM en mode brut.
Code principal
Mémoire tampon d’entrée
Si le IOCTL provient du mode utilisateur, Irp->AssociatedIrp.SystemBuffer contient une structure RAW_READ_INFO qui spécifie le décalage du disque de départ, le nombre de secteurs et le mode de suivi (XA ou CDDA) pour la lecture. Parameters.DeviceIoControl.InputBufferLength spécifie la taille, en octets, de la structure, qui doit être >= sizeof(RAW_READ_INFO). Parameters.DeviceIoControl.OutputBufferLength spécifie la taille de la mémoire tampon à lire, qui doit être >= sizeof(SectorCount * RAW_SECTOR_SIZE).
Si le IOCTL provient du mode noyau, Parameters.DeviceIoControl.Type3InputBuffer contient une structure qui spécifie le décalage du disque de démarrage, le nombre de secteurs et le mode de suivi (XA ou CDDA) pour la lecture. Parameters.DeviceIoControl.OutputBufferLength spécifie la taille de la mémoire tampon, en octets, à lire, qui doit être >= sizeof(SectorCount * RAW_SECTOR_SIZE).
Longueur de la mémoire tampon d’entrée
Voir ci-dessus.
Mémoire tampon de sortie
Le pilote écrit directement les octets demandés (à l’aide de DMA ou PIO) dans la mémoire tampon décrite par mdL à Irp->MdlAddress.
Longueur de la mémoire tampon de sortie
Longueur d’un MDL.
Bloc d’état
Si la lecture réussit, le pilote définit 'état sur STATUS_SUCCESS et Informations sur le nombre d’octets transférés. Si la lecture n’est pas réussie, le pilote définit Informations sur zéro et Status pour STATUS_INVALID_PARAMETER, STATUS_INSUFFICIENT_RESOURCES ou STATUS_INVALID_DEVICE_REQUEST.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ntddcdrm.h (include Ntddcdrm.h) |