Método IDiscRecorder2::AcquireExclusiveAccess (imapi2.h)
Adquiere acceso exclusivo al dispositivo.
Sintaxis
HRESULT AcquireExclusiveAccess(
[in] VARIANT_BOOL force,
[in] BSTR __MIDL__IDiscRecorder20000
);
Parámetros
[in] force
Establézcalo en VARIANT_TRUE para obtener acceso exclusivo al volumen, tanto si el volumen del sistema de archivos puede desmontar como si no se puede desmontar. Si VARIANT_FALSE, este método obtiene acceso exclusivo solo cuando no hay ningún sistema de archivos montado en el volumen.
[in] __MIDL__IDiscRecorder20000
Cadena que contiene el nombre descriptivo de la aplicación cliente que solicita acceso exclusivo. No puede ser NULL o una cadena de longitud cero. La cadena debe cumplir las restricciones para el código de control de IOCTL_CDROM_EXCLUSIVE_ACCESS que se encuentra en el DDK.
Valor devuelto
S_OK se devuelve correctamente, pero se pueden devolver otros códigos de éxito como resultado de la implementación. Los siguientes códigos de error se devuelven normalmente en caso de error de operación, pero no representan los únicos valores de error posibles:
Código devuelto | Descripción |
---|---|
|
Error no especificado.
Valor: 0x80004005 |
|
El dispositivo está siendo utilizado actualmente por otra aplicación.
Valor: 0x80070005 |
|
Uno o varios argumentos no son válidos.
Valor: 0x80070057 |
|
No se pudo asignar la memoria necesaria.
Valor: 0x8007000E |
|
El dispositivo no pudo aceptar el comando dentro del período de tiempo de espera. Esto puede deberse a que el dispositivo ha entrado en un estado incoherente o es posible que sea necesario aumentar el valor de tiempo de espera del comando.
Valor: 0xC0AA020D |
|
El identificador especificado no es válido.
Valor: 6 |
|
El recurso de red o el dispositivo especificados ya no se encuentran disponibles.
Valor: 55 |
|
El dispositivo asociado a esta grabadora durante la última operación se ha bloqueado exclusivamente, lo que provoca un error en esta operación.
Valor: 0xC0AA0210 |
Comentarios
No debe tener que llamar a este método para adquirir el bloqueo usted mismo porque las operaciones de escritura, como IDiscFormat2Data::Write, adquieren el bloqueo automáticamente.
Cada grabadora tiene un recuento de bloqueos. La primera llamada a una grabadora bloquea el dispositivo para el acceso exclusivo. Las aplicaciones pueden usar el método AcquireExclusiveAccess varias veces para aplicar varios bloqueos en un dispositivo. Cada llamada incrementa el recuento de bloqueos en uno.
Al desbloquear una grabadora, el recuento de bloqueos debe alcanzar cero para liberar el dispositivo para otros clientes. Al llamar al método IDiscRecorder2::ReleaseExclusiveAccess , se disminuye el recuento de bloqueos por uno.
Se necesita un número igual de llamadas a los métodos AcquireExclusiveAccess y ReleaseExclusiveAccess para liberar un dispositivo. Si la aplicación se cierra inesperadamente o se bloquea mientras mantiene el acceso exclusivo, el controlador de CDROM.SYS liberará automáticamente estos bloqueos exclusivos.
Si el dispositivo ya está bloqueado, puede llamar a IDiscRecorder2::get_ExclusiveAccessOwner para recuperar el nombre de la aplicación cliente que actualmente tiene acceso exclusivo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista, Windows XP con SP2 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | imapi2.h |