Probleme de gravure

Signaler
Messages postés
31
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
26 mars 2009
-
Messages postés
1
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
-
salut tout le monde
on a develloper une application de gravure en utilisant aspi de [www.adaptec.com adaptec]  qui offre la dll WNASPI32.DLL qui permet la communicatio avec les differents l'écteur et graveur cd.
avec un graveur cd-r/rw ça marche trés bien , mais avec certain graveur dvd ça marche pas , la fonction SendASPI32Command  renvoie une erreur
auniveau de la SRB_TargStat qui reçoie la valeur 0x02 qui veut dire que le sens des donnée est orienté vers le buffer SenseArea ,
je comprend pas pourquoi, pourtant tout les parametre sens bien passé à la structure de commande voilà la partie du code qui envoie la commande:

[code]
ResetEvent(hEventSRB);

SRB_ExecSCSICmd exec;
memset(&exec,0,sizeof(SRB_ExecSCSICmd));
exec.SRB_Cmd=SC_EXEC_SCSI_CMD;
exec.SRB_HaId=byId; // ID du periferique = 1
exec.SRB_Target=byTarget; // Target's SCSI ID

exec.SRB_Lun=byLun; // Target's LUN number

exec.SRB_Flags = SRB_DIR_OUT | SRB_EVENT_NOTIFY;
exec.SRB_BufLen =8192;
exec.SRB_BufPointer = LINE_0;
exec.SRB_SenseLen = SENSE_LEN;
exec.SRB_CDBLen =12;
exec.SRB_PostProc = hEventSRB;
exec.CDBByte[0]=0x2a;
exec.CDBByte[5]= LOBYTE(LOWORD(LBA));
exec.CDBByte[4]= HIBYTE(LOWORD(LBA));
exec.CDBByte[3]= LOBYTE(HIWORD(LBA));
exec.CDBByte[2]= HIBYTE(HIWORD(LBA));
exec.CDBByte[8]=4;
pfnSendASPI32Command ((LPSRB)&exec);

[\code]

si vous avez une idée d ou vien le probleme ça sera trés utile pour nous, merci

1 réponse

Messages postés
1
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008

Bonjour,

Premierement, que contient la Sense Area ? tout les codes erreurs sont documentés
Exemple:
srbExec.SenseArea[12] = 4 && srbExec.SenseArea[13] = 8  ===> 'Long Write in Progress'

Deuxiement, vous nous dite que ca fonctionne avec un cd-r/rw et pas sur un graveur DVD. vous avez testé que votre machine ou sur d'autres aussi ? vérifiez si vous ne vous trompez pas dans l'adressage des périphériques
exec.SRB_HaId=byId; // ID du periferique = 1
exec.SRB_Target=byTarget; // Target's SCSI ID

exec.SRB_Lun=byLun; // Target's LUN number

Mais vous comprendrez assez facilement le probleme en analysant la Sense Area