Compartilhar via


Função InjectNtmsMedia (ntmsapi.h)

[O Gerenciador de Armazenamento Removível não está mais disponível a partir do Windows 7 e do Windows Server 2008 R2.]

A função InjectNtmsMedia permite que a mídia seja inserida na porta da biblioteca especificada. Se a biblioteca estiver ocupada, o RSM enfileira o InjectNtmsMedia e retornará êxito.

Sintaxe

DWORD InjectNtmsMedia(
  [in]  HANDLE      hSession,
  [in]  LPNTMS_GUID lpLibraryId,
  [out] LPNTMS_GUID lpInjectOperation,
  [in]  DWORD       dwAction
);

Parâmetros

[in] hSession

Manipule para a sessão retornada pela função OpenNtmsSession .

[in] lpLibraryId

Identificador exclusivo de um objeto de biblioteca.

[out] lpInjectOperation

GUID da operação inserir biblioteca. Se dwAction for NTMS_INJECT_START, esse parâmetro receberá o GUID da operação. Se dwAction for NTMS_INJECT_STOP, esse parâmetro deverá ser definido como GUID para que a operação seja interrompida.

[in] dwAction

Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
NTMS_INJECT_START
Inicie a operação de inserção com uma porta. A mídia é inserida repetidamente até que o evento de tempo limite ocorra ou a função seja chamada novamente com NTMS_INJECT_STOP.
NTMS_INJECT_STOP
Encerre o processo de inserção antes da volta do evento de tempo limite.
NTMS_INJECT_RETRACT
Direcione a biblioteca para retrair a porta de inserção/ejetação e marcar para a mídia colocada lá pelo operador.
NTMS_INJECT_START_MANY
Direcione a porta de inserção/ejeção para abrir continuamente e marcar para a mídia colocada lá pelo operador. Se um meio for encontrado, a porta de inserção/ejeção será reaberta para receber mais mídia.

Retornar valor

Essa função retorna um dos valores a seguir.

Valor Significado
ERROR_ACCESS_DENIED
NTMS_CONTROL_ACCESS para a biblioteca é negado. Outros erros de segurança também são possíveis, mas indicam um erro de subsistema de segurança.
ERROR_DATABASE_FAILURE
O banco de dados está inacessível ou danificado.
ERROR_DATABASE_FULL
O banco de dados está cheio.
ERROR_DEVICE_NOT_AVAILABLE
A biblioteca está desabilitada.
ERROR_INVALID_HANDLE
A ID da sessão está ausente ou não é válida.
ERROR_INVALID_OPERATION
Uma ação Stop foi executada em uma ID de operação que não era válida.
ERROR_INVALID_PARAMETER
A ID da biblioteca ou o ponteiro da ID da operação estão ausentes.
ERROR_LIBRARY_OFFLINE
A ID da biblioteca refere-se a uma biblioteca offline que não pode ejetar mídia.
ERROR_NOT_ENOUGH_MEMORY
Houve uma falha de alocação durante o processamento.
ERROR_SUCCESS
A inserção está na fila.

Comentários

Essa função retorna ao aplicativo assim que a solicitação de inserção é enfileirada.

Se a biblioteca especificada pela função InjectNtmsMedia não tiver uma porta, use a função AccessNtmsLibraryDoor para inserir e ejetar mídia.

Essa função não pode ser usada com a biblioteca offline.

A inserção inicia o processo de inserção de mídia em uma biblioteca. Como as bibliotecas variam na funcionalidade do objeto NTMS_IEPORT, cada dispositivo pode operar de forma ligeiramente diferente. As etapas a seguir descrevem como o RSM geralmente lida com uma injeção:

Para inserir mídia em uma biblioteca

  1. Permitir/desbloquear/estender o NTMS_IEPORT.
  2. Sondar um NTMS_IEPORT completo, um NTMS_IEPORT retraído, um comando Stop Inject ou um valor de tempo limite. Se nenhuma delas tiver ocorrido, continue esperando. (Portas de inserção/ejeção de vários cartuchos não são verificadas para status completas.)
  3. Quando ocorre um dos eventos anteriores, o NTMS_IEPORT é bloqueado, cada meio no NTMS_IEPORT é movido para um slot e um comando de identificação média é enfileirado para cada meio.
Se não houver slots suficientes para a mídia no objeto NTMS_IEPORT, a mídia permanecerá no objeto NTMS_IEPORT e uma Solicitação de Operador será postada para que a mídia seja removida da biblioteca.

Se não houver slots gratuitos, a função InjectNtmsMedia receberá um erro.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [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 ntmsapi.h
Biblioteca Ntmsapi.lib
DLL Ntmsapi.dll

Confira também

EjectNtmsMedia

Funções de controle de biblioteca