Método IDiscRecorder2::AcquireExclusiveAccess (imapi2.h)
Adquire acesso exclusivo ao dispositivo.
Sintaxe
HRESULT AcquireExclusiveAccess(
[in] VARIANT_BOOL force,
[in] BSTR __MIDL__IDiscRecorder20000
);
Parâmetros
[in] force
Defina como VARIANT_TRUE para obter acesso exclusivo ao volume se o volume do sistema de arquivos pode ou não ser desmontado. Se VARIANT_FALSE, esse método obterá acesso exclusivo somente quando não houver nenhum sistema de arquivos montado no volume.
[in] __MIDL__IDiscRecorder20000
Cadeia de caracteres que contém o nome amigável do aplicativo cliente que solicita acesso exclusivo. Não pode ser NULL ou uma cadeia de caracteres de comprimento zero. A cadeia de caracteres deve estar em conformidade com as restrições para o código de controle IOCTL_CDROM_EXCLUSIVE_ACCESS encontrado no DDK.
Retornar valor
S_OK é retornado com êxito, mas outros códigos de êxito podem ser retornados como resultado da implementação. Os seguintes códigos de erro geralmente são retornados em caso de falha na operação, mas não representam os únicos valores de erro possíveis:
Código de retorno | Descrição |
---|---|
|
Falha não especificada.
Valor: 0x80004005 |
|
No momento, o dispositivo está sendo usado por outro aplicativo.
Valor: 0x80070005 |
|
Um ou mais argumentos não são válidos.
Valor: 0x80070057 |
|
Falha ao alocar a memória necessária.
Valor: 0x8007000E |
|
O dispositivo não aceitou o comando dentro do período de tempo limite. Isso pode ser causado pelo dispositivo ter inserido um estado inconsistente ou o valor de tempo limite para o comando pode precisar ser aumentado.
Valor: 0xC0AA020D |
|
O identificador especificado é inválido.
Valor: 6 |
|
O recurso de rede ou dispositivo especificado não está mais disponível.
Valor: 55 |
|
O dispositivo associado a esse gravador durante a última operação foi bloqueado exclusivamente, fazendo com que essa operação falhasse.
Valor: 0xC0AA0210 |
Comentários
Você não deve chamar esse método para adquirir o bloqueio por conta própria porque as operações de gravação, como IDiscFormat2Data::Write, adquirem o bloqueio para você.
Cada gravador tem uma contagem de bloqueios. A primeira chamada para um gravador bloqueia o dispositivo para acesso exclusivo. Os aplicativos podem usar o método AcquireExclusiveAccess várias vezes para aplicar vários bloqueios em um dispositivo. Cada chamada incrementa a contagem de bloqueios em um.
Ao desbloquear um gravador, a contagem de bloqueios deve atingir zero para liberar o dispositivo para outros clientes. Chamar o método IDiscRecorder2::ReleaseExclusiveAccess diminui a contagem de bloqueios por um.
Um número igual de chamadas para os métodos AcquireExclusiveAccess e ReleaseExclusiveAccess são necessárias para liberar um dispositivo. Se o aplicativo sair inesperadamente ou falhar ao manter o acesso exclusivo, o driver CDROM.SYS liberará automaticamente esses bloqueios exclusivos.
Se o dispositivo já estiver bloqueado, você poderá chamar IDiscRecorder2::get_ExclusiveAccessOwner para recuperar o nome do aplicativo cliente que atualmente tem acesso exclusivo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista, Windows XP com SP2 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | imapi2.h |