Méthode IDiscRecorder2 ::AcquireExclusiveAccess (imapi2.h)
Obtient un accès exclusif à l’appareil.
Syntaxe
HRESULT AcquireExclusiveAccess(
[in] VARIANT_BOOL force,
[in] BSTR __MIDL__IDiscRecorder20000
);
Paramètres
[in] force
Définissez sur VARIANT_TRUE pour obtenir un accès exclusif au volume, que le volume du système de fichiers puisse ou ne peut pas être démonté. Si VARIANT_FALSE, cette méthode n’obtient un accès exclusif qu’en l’absence de système de fichiers monté sur le volume.
[in] __MIDL__IDiscRecorder20000
Chaîne qui contient le nom convivial de l’application cliente demandant un accès exclusif. Ne peut pas être NULL ou une chaîne de longueur nulle. La chaîne doit être conforme aux restrictions pour le code de contrôle IOCTL_CDROM_EXCLUSIVE_ACCESS trouvé dans le DDK.
Valeur retournée
S_OK est retourné en cas de réussite, mais d’autres codes de réussite peuvent être retournés à la suite de l’implémentation. Les codes d’erreur suivants sont généralement retournés en cas d’échec de l’opération, mais ne représentent pas les seules valeurs d’erreur possibles :
Code de retour | Description |
---|---|
|
Défaillance non spécifiée.
Valeur : 0x80004005 |
|
L’appareil est actuellement utilisé par une autre application.
Valeur : 0x80070005 |
|
Un ou plusieurs arguments ne sont pas valides.
Valeur : 0x80070057 |
|
Échec de l’allocation de la mémoire requise.
Valeur : 0x8007000E |
|
L’appareil n’a pas pu accepter la commande dans le délai imparti. Cela peut être dû au fait que l’appareil est entré dans un état incohérent, ou que la valeur du délai d’expiration de la commande doit être augmentée.
Valeur : 0xC0AA020D |
|
Le handle spécifié n’est pas valide.
Valeur : 6 |
|
La ressource réseau ou le périphérique spécifié n’est plus disponible.
Valeur : 55 |
|
L’appareil associé à cet enregistreur lors de la dernière opération a été verrouillé exclusivement, ce qui a provoqué l’échec de cette opération.
Valeur : 0xC0AA0210 |
Remarques
Vous ne devez pas avoir à appeler cette méthode pour acquérir le verrou vous-même, car les opérations d’écriture, telles que IDiscFormat2Data ::Write, acquièrent le verrou pour vous.
Chaque enregistreur a un nombre de verrous. Le premier appel à un enregistreur verrouille l’appareil pour un accès exclusif. Les applications peuvent utiliser la méthode AcquireExclusiveAccess plusieurs fois pour appliquer plusieurs verrous sur un appareil. Chaque appel incrémente le nombre de verrous d’un.
Lors du déverrouillage d’un enregistreur, le nombre de verrous doit atteindre zéro pour libérer l’appareil pour d’autres clients. L’appel de la méthode IDiscRecorder2 ::ReleaseExclusiveAccess décrémente le nombre de verrous d’un.
Un nombre égal d’appels aux méthodes AcquireExclusiveAccess et ReleaseExclusiveAccess sont nécessaires pour libérer un appareil. Si l’application se ferme de façon inattendue ou se bloque en conservant l’accès exclusif, le pilote CDROM.SYS libère automatiquement ces verrous exclusifs.
Si l’appareil est déjà verrouillé, vous pouvez appeler IDiscRecorder2 ::get_ExclusiveAccessOwner pour récupérer le nom de l’application cliente qui dispose actuellement d’un accès exclusif.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista, Windows XP avec SP2 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | imapi2.h |