Je cherche à lire les secteurs d'un CD : on m'a dit de venir ici car
apparement vous êtes les meilleurs.
J'ai utilisé la fonction createfile puis deviceiocontrol, jusqu'ici aucuns
problèmes, j'ai pu récupérer la géométrie du CD.
C'est après que ça se corse, j'utilise ReadFile, ça ne marche pas, et
j'obtiens en permanence l'erreur 87 avec getlasterror, erreur qui dit qu'un
des paramètres est incorrect.
if(cdrom == INVALID_HANDLE_VALUE) // cannot open the drive
{
MessageBox(NULL, "Le lecteur que vous avez indiqué est impossible à
ouvrir pour une raison absolument inconnue :p\nVous avez sans doute mal tapé
la lettre du lecteur.", "Erreur d'ouverture", MB_ICONEXCLAMATION);
return (FALSE);
}
Maintenant j'en suis rendu à utiliser la méthode : IDiscFormat2RawCD::PrepareMedia pour préparer la gravure.
Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are not valid" pourtant cette méthode ne prend pas d'arguments !
Eric
wrote in message news:
Ok merci.
Maintenant j'en suis rendu à utiliser la méthode : IDiscFormat2RawCD::PrepareMedia pour préparer la gravure. Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are not valid" pourtant cette méthode ne prend pas d'arguments !
Il y a marqué qu'il faut utiliser IDiscFormat2RawCD::put_ClientName avant, mais apparemment IDiscFormat2RawCD n'est pas au point : http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/thread/2f865bf5-b9ab-4aea-a311-cb209e8c28eb/
<toutledos@gmail.com> wrote in message
news:303d9d84-ab2f-4a13-b758-36fa79e4f30d@d42g2000prb.googlegroups.com...
Ok merci.
Maintenant j'en suis rendu à utiliser la méthode :
IDiscFormat2RawCD::PrepareMedia pour préparer la gravure.
Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are
not valid" pourtant cette méthode ne prend pas d'arguments !
Il y a marqué qu'il faut utiliser IDiscFormat2RawCD::put_ClientName avant,
mais apparemment IDiscFormat2RawCD n'est pas au point :
http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/thread/2f865bf5-b9ab-4aea-a311-cb209e8c28eb/
Maintenant j'en suis rendu à utiliser la méthode : IDiscFormat2RawCD::PrepareMedia pour préparer la gravure. Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are not valid" pourtant cette méthode ne prend pas d'arguments !
Il y a marqué qu'il faut utiliser IDiscFormat2RawCD::put_ClientName avant, mais apparemment IDiscFormat2RawCD n'est pas au point : http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/thread/2f865bf5-b9ab-4aea-a311-cb209e8c28eb/
toutledos
On 4 jan, 10:59, "Eric" wrote:
wrote in message
news:
>Ok merci.
>Maintenant j'en suis rendu à utiliser la méthode : >IDiscFormat2RawCD::PrepareMedia pour préparer la gravure. >Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are >not valid" pourtant cette méthode ne prend pas d'arguments !
Il y a marqué qu'il faut utiliser IDiscFormat2RawCD::put_ClientName ava nt, mais apparemment IDiscFormat2RawCD n'est pas au point :http://social.msdn .microsoft.com/Forums/en-US/windowsopticalplatform/...
J'ai utilisé put_ClientName avant.
J'étais tombé sur ce sujet mais bon je me suis dit que s'ils nous vendent un OS, ils seraient surement foutus de donner un SDK valide, apparement je connaissais mal microsoft.
Je vais devoir passer par une autre interface bas-niveau.
On 4 jan, 10:59, "Eric" <e...@riconospam.com> wrote:
>Maintenant j'en suis rendu à utiliser la méthode :
>IDiscFormat2RawCD::PrepareMedia pour préparer la gravure.
>Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are
>not valid" pourtant cette méthode ne prend pas d'arguments !
Il y a marqué qu'il faut utiliser IDiscFormat2RawCD::put_ClientName ava nt,
mais apparemment IDiscFormat2RawCD n'est pas au point :http://social.msdn .microsoft.com/Forums/en-US/windowsopticalplatform/...
J'ai utilisé put_ClientName avant.
J'étais tombé sur ce sujet mais bon je me suis dit que s'ils nous
vendent un OS, ils seraient surement foutus de donner un SDK valide,
apparement je connaissais mal microsoft.
Je vais devoir passer par une autre interface bas-niveau.
>Maintenant j'en suis rendu à utiliser la méthode : >IDiscFormat2RawCD::PrepareMedia pour préparer la gravure. >Il me retourne l'erreur 0x80070057 qui dit "One or more arguments are >not valid" pourtant cette méthode ne prend pas d'arguments !
Il y a marqué qu'il faut utiliser IDiscFormat2RawCD::put_ClientName ava nt, mais apparemment IDiscFormat2RawCD n'est pas au point :http://social.msdn .microsoft.com/Forums/en-US/windowsopticalplatform/...
J'ai utilisé put_ClientName avant.
J'étais tombé sur ce sujet mais bon je me suis dit que s'ils nous vendent un OS, ils seraient surement foutus de donner un SDK valide, apparement je connaissais mal microsoft.
Je vais devoir passer par une autre interface bas-niveau.
toutledos
J'utilise IWriteEngine (pas trop le choix il me reste que ça !)
J'ai paramétré un peu :
result = writeEngine->put_Recorder(discRecorder2Ex); if(result != S_OK) { printf("Impossible de choisir le graveur (WE) : 0x%Xn", result); }
result = writeEngine->put_BytesPerSector( REDBOOK_SECTOR_SIZE ); if(result != S_OK) { printf("Impossible de paramétrer la taille d'un secteur : 0x%Xn", result); }
result = writeEngine->put_StartingSectorsPerSecond(2); if(result != S_OK) { printf("Impossible de régler la vitesse de démarrage : 0x%Xn", result); }
result = writeEngine->put_EndingSectorsPerSecond(2); if(result != S_OK) { printf("Impossible de régler la vitesse de fin : 0x%Xn", result); }
et je mets la fonction d'écriture :
result = writeEngine->WriteSection(iStream, 0, 300); // Ici j'essaie juste de graver les 300 premiers secteurs (les premieres données arrivent au 245 secteur) if(result != S_OK) { printf("Impossible de graver : 0x%Xn", result); }
Avant l'execution j'efface le CD dans le poste de travail. Lorsque je lance le programme, le CD se met à tourner pendant un certain temps (je dirais 3-4 minutes) une fois terminé je regarde le résultat via un éditeur héxa et rien n'a changé !
Ou est mon erreur ?
J'utilise IWriteEngine (pas trop le choix il me reste que ça !)
J'ai paramétré un peu :
result = writeEngine->put_Recorder(discRecorder2Ex);
if(result != S_OK)
{
printf("Impossible de choisir le graveur (WE) : 0x%Xn", result);
}
result = writeEngine->put_BytesPerSector( REDBOOK_SECTOR_SIZE );
if(result != S_OK)
{
printf("Impossible de paramétrer la taille d'un secteur : 0x%Xn",
result);
}
result = writeEngine->put_StartingSectorsPerSecond(2);
if(result != S_OK)
{
printf("Impossible de régler la vitesse de démarrage : 0x%Xn",
result);
}
result = writeEngine->put_EndingSectorsPerSecond(2);
if(result != S_OK)
{
printf("Impossible de régler la vitesse de fin : 0x%Xn", result);
}
et je mets la fonction d'écriture :
result = writeEngine->WriteSection(iStream, 0, 300); // Ici j'essaie
juste de graver les 300 premiers secteurs (les premieres données
arrivent au 245 secteur)
if(result != S_OK)
{
printf("Impossible de graver : 0x%Xn", result);
}
Avant l'execution j'efface le CD dans le poste de travail.
Lorsque je lance le programme, le CD se met à tourner pendant un
certain temps (je dirais 3-4 minutes) une fois terminé je regarde le
résultat via un éditeur héxa et rien n'a changé !
J'utilise IWriteEngine (pas trop le choix il me reste que ça !)
J'ai paramétré un peu :
result = writeEngine->put_Recorder(discRecorder2Ex); if(result != S_OK) { printf("Impossible de choisir le graveur (WE) : 0x%Xn", result); }
result = writeEngine->put_BytesPerSector( REDBOOK_SECTOR_SIZE ); if(result != S_OK) { printf("Impossible de paramétrer la taille d'un secteur : 0x%Xn", result); }
result = writeEngine->put_StartingSectorsPerSecond(2); if(result != S_OK) { printf("Impossible de régler la vitesse de démarrage : 0x%Xn", result); }
result = writeEngine->put_EndingSectorsPerSecond(2); if(result != S_OK) { printf("Impossible de régler la vitesse de fin : 0x%Xn", result); }
et je mets la fonction d'écriture :
result = writeEngine->WriteSection(iStream, 0, 300); // Ici j'essaie juste de graver les 300 premiers secteurs (les premieres données arrivent au 245 secteur) if(result != S_OK) { printf("Impossible de graver : 0x%Xn", result); }
Avant l'execution j'efface le CD dans le poste de travail. Lorsque je lance le programme, le CD se met à tourner pendant un certain temps (je dirais 3-4 minutes) une fois terminé je regarde le résultat via un éditeur héxa et rien n'a changé !