![]() |
Foire aux questions | ||||||||||||||||||||||||||||||
| Résumé : Foire aux questions (FAQ) sur les différents problèmes rencontrés avec la couche logicielle ASPI (Advanced SCSI Programming Interface). | |||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Fonctionnement de la FAQ
Avec la normalisation des méthodes d'accès aux périphériques, on observe un processus de convergence entre tous les types de lecteurs (IDE, ATAPI, SCSI et autres, comme la connexion sur le port parallèle). De ce fait, quand on balaie les bus SCSI, il devient possible (en fonction de la version du gestionnaire ASPI) de voir différents types de lecteurs, comme des Zip ATAPI et même les disques durs IDE sous Windows NT. Cela explique que nos programmes puissent ne pas voir certains lecteurs de CD-ROM ou de cartouches Zip tant que vous n'avez pas installé ou mis à jour la couche ASPI. Lorsque l'installation de la couche ASPI est terminée, vous devez redémarrer l'ordinateur pour que les changements entrent en jeu. Il arrive qu'il soit nécessaire d'éteindre la machine et de redémarrer à froid pour que les changements soient enregistrés correctement.
Au cours de cette phase de montée, la politique de concession de licences de la couche ASPI adoptée par Adaptec a été extrêmement libérale (licence gratuite, SDK détaillé librement disponible, etc.). Cette période culmine avec la sortie de Windows 95 qui, consécration ultime, est livré avec une couche ASPI. Sous Windows 95, les méthodes classiques d'accès aux disques (interruptions) n'étaient plus ouvertes aux applications normales, et Microsoft a trouvé commode d'offrir aux programmeurs cette solution de repli, plus facilement accessible que la création d'une nouvelle interface de programmation (il était difficile de porter les solutions de NT sous 95). Parallèlement s'est développé le marché des graveurs de CD-ROM, où Adaptec ne joue pas seulement le rôle de fournisseur de matériel, mais aussi d'éditeur de logiciel. Une contradiction est ainsi apparue entre la volonté de diffuser le matériel (et la couche Aspi) et celle de se préserver de la concurrence (les conditions de licence sont devenues plus restrictives à cette époque, Adaptec demandant de préciser la nature et même le nom des programmes avec lesquels serait distribuée la couche Aspi). D'un autre côté, Microsoft a toujours vu d'un mauvais oeil l'utilisation de la couche Aspi sous Windows NT, car cette solution d'accès au matériel court-circuite les mesures de sécurité (un utilisateur normal peut accéder au matériel sans que les droits lui aient été attribués par un administrateur). Nous sommes aujourd'hui arrivé au terme de cette évolution. Je doute qu'Adaptec continue de développer la couche Aspi, surtout si l'on considère la situation de concurrence sur le marché de la gravure et l'évolution des systèmes d'exploitation (convergence de NT et de 95/98). Les applications vont donc être obligées d'utiliser d'autres méthodes d'accès aux disques (c'est déjà le cas pour les disques USB et FireWire). Windows NT et ses successeurs offrent des voies qui sont longtemps restées peu explorées (compte tenu de l'excellente qualité du travail de développement de Dan Polfer, principal architecte de la couche Aspi), qui ont nom IOCTL (Input/Output Control) et SPTI (SCSI Pass Through Interface).
Incohérence des versions. Il peut arriver que plusieurs versions cohabitent sur l'ordinateur. Recherchez sur votre ou vos disques durs les fichiers dont se compose la couche ASPI. Ce sont les seuls qui doivent être présents, et ils ne doivent pas se trouver ailleurs que dans les répertoires indiqués. Sous Windows 95/98, le système d'exploitation est livré avec une version de la couche Aspi. Cette couche n'est pas nécessairement la plus récente, si bien qu'il reste souvent nécessaire de faire la mise à jour. Sous Windows NT et Windows 2000, les pilotes ASPI ne font pas partie du système d'exploitation de base. Il faut donc que vous les installiez (programme aspiinst.exe dans le sous-répertoire aspi créé dans le répertoire où vous avez installé nos programmes). Notez bien que l'installation doit se faire depuis un compte d'administrateur (compte ayant les droits nécessaires pour installer un service) et qu'il est ensuite nécessaire de relancer l'ordinateur. Sous Windows 3.1x, cette erreur provient du fait que votre ordinateur ne charge pas les pilotes correctement. Les pilotes sont chargés par des instructions placées dans le fichier config.sys. Voir un exemple de lignes d'instruction chargeant les pilotes.
Il est en fait possible de tout simplement de reculer la date de l'ordinateur pour que l'installation se fasse normalement. Les versions récentes de nos programmes sont distribuée avec l'installateur Adaptec aspiinst.exe. Ce programme d'installation est placé dans un sous-répertoire appelé ASPI, situé dans le répertoire où vous avez installé nos programmes (c:\mac\aspi ou encore c:\program files\ls_duhem\aspi).
Pour y remédier, il est nécessaire d'intervenir dans le registre. Lancez RegEdit pour visualiser le registre et recherchez la chaîne "ExcludeMiniports". Sous Windows NT/2000, cette chaîne se trouve dans la clef : HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Services
Aspi32
Parameters
ExcludeMiniports
Sous Windows 95/98, elle se trouve dans la clef :
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Services
VxD
APIX
ExcludeMiniports
Elle a probablement pour contenu "ATAPI". Faites un clic droit sur la clef et choisissez 'Modifier', puis supprimez le contenu de la chaîne. Redémarrez l'ordinateur. Vous devriez désormais accéder aux lecteurs IDE/ATAPI normalement.Attention, nous avons rencontré au moins un cas où cette exclusion se justifiait, et où l'ordinateur se plantait si l'on n'excluait pas le lecteur de CD-ROM des lecteurs accessibles par la couche ASPI. Dans ce cas, il n'y a pas d'autre solution que de changer de lecteur. Il arrive aussi que l'installateur de la couche ASPI ne crée pas cette clef ExcludeMiniports et ne fasse rien. L'absence de cette clef a aussi pour conséquence que les lecteurs ATAPI sont verrouillés (en d'autres termes, le verrouillage s'opère (1) si la clef n'existe pas et (2) si la clef existe et contient "ATAPI"). Sous Windows NT, il faut donc lancer RegEdit et créer une clef Parameters sous Aspi32, puis laisser la clef Default non définie, créer une clef "ExcludeMiniports", sans contenu (voir ci-dessus). Sous Windows 95/98, de la même manière, nous avons observé une configuration où il n'existait pas de clef APIX. Dans ce cas, il a été nécessaire de créer cette clef, et d'y placer une clef "ExcludeMiniports" vide (cf.ci-dessus). Vous pouvez également pour ce faire télécharger notre utilitaire AspiTest (cliquer sur le bouton "Registre" lorsque le programme affiche les numéros de version des fichiers composant la couche Aspi. Attention, il peut exister d'autres causes à l'absence de certains lecteurs dans le cas de Windows 2000.
Vous devez éventuellement rajouter une ou plusieurs lignes "device=" dans votre fichier config.sys. Ces lignes varient en fonction de votre configuration. Nous donnons ci-dessous un exemple de configuration pour une carte Adaptec AHA-154x.
... Ces deux lignes doivent se trouver dans cet ordre. La première correspond à une couche de type Bios, la seconde à une couche de type DOS. Le premier pilote ne doit jamais être chargé en mémoire haute. Le second peut l'être. Si vous chargez ces deux pilotes, vous n'avez nul besoin de charger les pilotes similaires fournis par les constructeurs (comme SyQuest, IOmega, etc.).
Sous Windows NT/2000, par contre, il n'y a pas de pilote ASPI installé automatiquement par le système. Vous devez donc absolument procéder à l'installation. L'installation doit se faire depuis un compte d'administrateur (disposant des droits voulus pour installer un service) et vous devez ensuite redémarrer la machine. Le programme d'installation de nos programmes installe sur votre disque dur, dans un sous-répertoire appelé ASPI, la dernière version des pilotes ASPI distribuée par Adaptec. Lancez simplement l'utilitaire aspiinst.exe pour ce faire.Le programme d'installation de nos logiciels lance automatiquement cet utilitaire au cours de l'installation du programme, mais cette opération peut échouer pour un certain nombre de raisons, ce qui peut obliger à recommencer.
#define SS_INVALID_CMD 0x80 // Invalid ASPI command
Quelques commentaires :E4 : Observé dans une configuration où la couche Aspi était correctement installée, mais où une ancienne DLL se trouvait dans le répertoire de lancement du programme. Lancez une recherche sur les quatre éléments de la couche Aspi et supprimez ou renommez tous ceux qui sont en dehors des répertoires spécifiés. E8 : Observé sur un ordinateur qui n'avait qu'un lecteur de CD-ROM IDE/ATAPi et un lecteur de Zip, lui aussi ATAPI. Cette machine n'avait donc pas de carte SCSI (voir ci-dessus le commentaire "No host adapters to manage"). Nous avons ensuite constaté que l'installateur de la couche Aspi avait lui-même verrouillé l'accès aux disques ATAPI. Il semble que ce comportement (retour d'une erreur 0xE8) soit une nouveauté de la version 4.60[1021] du gestionnaire Aspi. Voir la solution à propos des lecteurs de CD-ROM invisibles. EB : Ce code d'erreur semble être un code "attrappe-tout". Un utilisateur d'Easy CD Creator l'a signalé sur la liste de diffusion d'Adaptec/Roxio, mais la véritable cause n'a pas été élucidée. Les autres codes ne nécessitent pas de commentaires spécifiques.
Nous avons trouvé une nouvelle source d'information, proposée par Alvise Valsecchi. Ces pages présentent suffisamment d'informations pour vous mettre le pied à l'étrier (après avoir résolu le problème plus général d'installation).
C'est tout le contraire qui se produit : une application, pour accéder au matériel (un lecteur de disque, par exemple), appelle des fonctions de la couche ASPI. Ces fonctions peuvent ensuite accéder au matériel plus ou moins directement, en passant éventuellement par des services offerts par le système d'exploitation. De ce fait, les incompatibilités qui peuvent exister entre une version de Windows et une version de la couche Aspi relèvent en fait de la responsabilité des applications (des programmes). Tout le reste n'est que littérature (ou discours de marketing ;-)).
| ||||||||||||||||||||||||||||||
![]() |
|