Metodo IDiscRecorder2::AcquireExclusiveAccess (imapi2.h)
Acquisisce l'accesso esclusivo al dispositivo.
Sintassi
HRESULT AcquireExclusiveAccess(
[in] VARIANT_BOOL force,
[in] BSTR __MIDL__IDiscRecorder20000
);
Parametri
[in] force
Impostare su VARIANT_TRUE per ottenere l'accesso esclusivo al volume se il volume del file system può o non può essere smontato. Se VARIANT_FALSE, questo metodo ottiene l'accesso esclusivo solo quando non è presente alcun file system montato nel volume.
[in] __MIDL__IDiscRecorder20000
Stringa contenente il nome descrittivo dell'applicazione client che richiede l'accesso esclusivo. Non può essere NULL o una stringa di lunghezza zero. La stringa deve essere conforme alle restrizioni per il codice di controllo IOCTL_CDROM_EXCLUSIVE_ACCESS trovato nella DDK.
Valore restituito
S_OK viene restituito in caso di esito positivo, ma altri codici di esito positivo possono essere restituiti in seguito all'implementazione. I codici di errore seguenti vengono comunemente restituiti in caso di errore dell'operazione, ma non rappresentano gli unici valori di errore possibili:
Codice restituito | Descrizione |
---|---|
|
Errore non specificato.
Valore: 0x80004005 |
|
Il dispositivo è attualmente in uso da un'altra applicazione.
Valore: 0x80070005 |
|
Uno o più argomenti non sono validi.
Valore: 0x80070057 |
|
Impossibile allocare la memoria richiesta.
Valore: 0x8007000E |
|
Il dispositivo non è riuscito ad accettare il comando entro il periodo di timeout. Ciò può essere causato dall'immissione di uno stato incoerente del dispositivo oppure potrebbe essere necessario aumentare il valore di timeout per il comando.
Valore: 0xC0AA020D |
|
L'handle specificato non è valido.
Valore: 6 |
|
La risorsa di rete o il dispositivo specificato non sono più disponibili.
Valore: 55 |
|
Il dispositivo associato a questo registratore durante l'ultima operazione è stato bloccato esclusivamente, causando l'esito negativo di questa operazione.
Valore: 0xC0AA0210 |
Commenti
Non è necessario chiamare questo metodo per acquisire manualmente il blocco perché le operazioni di scrittura, ad esempio IDiscFormat2Data::Write, acquisiscono automaticamente il blocco.
Ogni registratore ha un conteggio dei blocchi. La prima chiamata a un registratore blocca il dispositivo per l'accesso esclusivo. Le applicazioni possono usare il metodo AcquireExclusiveAccess più volte per applicare più blocchi in un dispositivo. Ogni chiamata incrementa il conteggio dei blocchi di uno.
Quando si sblocca un registratore, il conteggio dei blocchi deve raggiungere zero per liberare il dispositivo per altri client. La chiamata al metodo IDiscRecorder2::ReleaseExclusiveAccess decrementa il conteggio dei blocchi di uno.
Per liberare un dispositivo sono necessari un numero uguale di chiamate ai metodi AcquireExclusiveAccess e ReleaseExclusiveAccess . Se l'applicazione termina in modo imprevisto o si arresta in modo anomalo mantenendo l'accesso esclusivo, il driver CDROM.SYS rilascia automaticamente questi blocchi esclusivi.
Se il dispositivo è già bloccato, è possibile chiamare IDiscRecorder2::get_ExclusiveAccessOwner per recuperare il nome dell'applicazione client attualmente con accesso esclusivo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista, Windows XP con SP2 [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | imapi2.h |