Função CreateNtmsMediaW (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 CreateNtmsMedia cria um PMID e um lado (ou lados) para uma nova parte da mídia offline. A mídia é colocada no pool de mídia especificado para lpPhysicalMedia.

Sintaxe

DWORD CreateNtmsMediaW(
  [in] HANDLE                    hSession,
  [in] LPNTMS_OBJECTINFORMATIONW lpMedia,
  [in] LPNTMS_OBJECTINFORMATIONW lpList,
  [in] DWORD                     dwOptions
);

Parâmetros

[in] hSession

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

[in] lpMedia

Ponteiro para uma estrutura NTMS_OBJECTINFORMATION que contém informações sobre o meio a ser criado. Para obter uma descrição dos membros aplicáveis, consulte Comentários.

[in] lpList

Ponteiro para uma estrutura NTMS_OBJECTINFORMATION que especifica a matriz de lados associada ao meio. Para obter uma descrição dos membros aplicáveis, consulte Comentários.

[in] dwOptions

Opções. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
0
Valor padrão. Permite a criação de um meio duplicado com um OMID duplicado.
NTMS_ERROR_ON_DUPLICATE
Retorna um erro e não cria o meio se um meio com o OMID especificado já existir no sistema.

Retornar valor

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

Valor Significado
ERROR_ACCESS_DENIED
NTMS_MODIFY_ACCESS para o computador ou o pool de mídia da mídia é negado. Outros erros de segurança são possíveis, mas indicam um erro de subsistema de segurança.

Windows XP: NTMS_CONTROL_ACCESS para o pool de mídia ou NTMS_MODIFY_ACCESS para a biblioteca offline é negado. Outros erros de segurança são possíveis, mas indicam um erro de subsistema de segurança.

ERROR_DATABASE_FAILURE
Banco de dados inacessível ou danificado.
ERROR_DATABASE_FULL
O banco de dados está cheio.
ERROR_DUPLICATE_OMID
A opção NTMS_ERROR_ON_DUPLICATE foi fornecida e já existe um meio com esse OMID.
ERROR_INVALID_HANDLE
O identificador de sessão está ausente ou não é válido.
ERROR_INVALID_MEDIA
Já existe uma entrada para um meio com esse código de barras.
ERROR_INVALID_MEDIA_POOL
O pool de mídia especificado não existe ou não é um pool de importação ou aplicativo válido.
ERROR_INVALID_PARAMETER
Um parâmetro está ausente ou o tamanho das informações do objeto ou o tipo de objeto não é válido.
ERROR_MEDIA_INCOMPATIBLE
O número de lados especificados não corresponde ao número de lados associados ao tipo de mídia do pool de mídia.
ERROR_NOT_ENOUGH_MEMORY
Falha de alocação de memória durante o processamento.
ERROR_SUCCESS
A função foi executada com êxito.

Comentários

O parâmetro lpMedia deve apontar para uma estrutura NTMS_OBJECTINFORMATION , cujo parâmetro dwType é NTMS_PHYSICAL_MEDIA. Veja a seguir uma lista de membros e descrições para a estrutura de NTMS_OBJECTINFORMATION .

Membro Descrição
dwSize [in] CreateNtmsMedia verifica se esse tamanho é igual ao comprimento de uma estrutura NTMS_OBJECTINFORMATION que contém uma estrutura NTMS_PMIDINFORMATION . Ele retornará ERROR_INVALID_PARAMETER se o tamanho estiver incorreto.
Dwtype [in] CreateNtmsMedia verifica se o valor NTMS_PHYSICAL_MEDIA foi fornecido. Ele retornará ERROR_INVALID_PARAMETER se o tipo fornecido estiver incorreto.
Criado [out] Indica o tempo em que o objeto de mídia física foi inserido no banco de dados NTMS.
Modificado [out] Indica o tempo em que o objeto de mídia física foi inserido no banco de dados NTMS.
Objectguid [entrada/saída] Identificador exclusivo para o PMID (objeto de mídia física). Se um valor não NULL for fornecido, o valor será usado como GUID do Meio Físico, caso contrário, um GUID será gerado.
Enabled [in] Indica se o meio físico deve ou não ser habilitado.
dwOperationalState [out] Deve ser NTMS_READY.
szName [entrada/saída] CreateNtmsMedia permite que um aplicativo especifique o nome de um novo meio físico. Isso permite que o aplicativo continue a usar o nome de um meio depois de movê-lo de um computador RSM para outro. A seleção de nomenclatura padrão do RSM é: para lado único: Código de barras e, em seguida, valor de Informações de Rótulo ou Número de Sequência;. para código de barras de mídia de vários lados e, em seguida, Número de Sequência.

Observe que o nome que aparece na interface do usuário RSM para uma partição é esse nome (o nome atribuído ao objeto de mídia física).

szDescription [in] Um parâmetro opcional que pode ser definido usando CreateNtmsMedia. Forneça a cadeia de caracteres vazia ("\0") para evitar passar um valor para a descrição.
 

Veja a seguir uma lista de membros e descrições para a estrutura NTMS_PMIDINFORMATION .

Membro Descrição
CurrentLibrary [in] Deve ser o NULL_GUID ou o GUID da biblioteca Offline.
MediaPool [in] Deve ser o GUID de um pool de importação ou aplicativo válido.

CreateNtmsMedia verifica se esse é o GUID de um Pool de Aplicativos ou importação válido. Ele também verifica se o número de partições fornecidas está correto para o tipo de mídia associado a esse pool de mídia.

Localidade [out] Deve ser o NULL_GUID.
LocationType [out] Deve ser NTMS_STORAGESLOT.
HomeSlot [out] Deve ser o NULL_GUID.
Mediatype [out] CreateNtmsMedia define o tipo de mídia para o tipo de mídia associado ao pool de mídia fornecido.
szBarCode [entrada/saída] O código de barras é despojado de qualquer espaço final. CreateNtmsMedia não executa nenhuma tentativa adicional de verificar a validade do código de barras.
BarCodeState [out] O BarCodeState será definido como NTMS_BARCODESTATE_UNREADABLE se o valor passado para szBarCode for uma cadeia de caracteres vazia, caso contrário, ele será definido como NTMS_BARCODESTATE_OK.
szSequenceNumber [out] CreateNtmsMedia atribui ao meio recém-criado um número de sequência, que é retornado neste membro.
MediaState [out] CreateNtmsMedia define o MediaState como NTMS_MEDIASTATE_IDLE.
dwNumberOfPartitions [in] Define o número de estruturas de NTMS_OBJECTINFORMATION que representam lados para esse meio. CreateNtmsMedia verifica para garantir que o número de lados especificado corresponda ao número de lados implícitos pelo pool de mídia ao qual ele deve ser atribuído. Se eles não corresponderem, ERROR_MEDIA_INCOMPATIBLE será retornado.
dwMediaTypeCode [in] Código de tipo de mídia SCSI.

Esse membro não é usado pelo RSM, mas pode ser usado por aplicativos gravados no RSM para obter informações adicionais sobre a mídia. Para obter uma descrição do que esse membro deve ser definido como, consulte a especificação SCSI do Fabricante de Hardware para obter as configurações possíveis.

O RSM atualiza esse membro quando ele monta o meio recém-importado pela primeira vez.

dwDensityCode [in] Código de densidade SCSI.

Esse membro não é usado pelo RSM, mas pode ser usado por aplicativos gravados no RSM para obter informações adicionais sobre a mídia. Para obter uma descrição do que esse membro deve ser definido como, consulte a especificação SCSI do Fabricante de Hardware para obter as configurações possíveis.

O RSM atualiza esse membro quando ele monta o meio recém-importado pela primeira vez

 

O parâmetro lpList deve apontar para uma estrutura NTMS_OBJECTINFORMATION cujo dwType é NTMS_PARTITION com as informações a seguir.

Membro Descrição
dwSize [in] CreateNtmsMedia verifica se o tamanho fornecido corresponde ao comprimento esperado de uma estrutura NTMS_OBJECTINFORMATION que contém uma estrutura NTMS_PARTITIONINFORMATION . Ele retornará ERROR_INVALID_PARAMETER se o tamanho estiver incorreto.
Dwtype [in] CreateNtmsMedia verifica se o valor NTMS_PARTITION foi fornecido. Ele retornará ERROR_INVALID_PARAMETER se o tipo fornecido estiver incorreto.
Criado [out] Indica a hora em que o objeto de partição foi inserido no banco de dados RSM.
Modificado [out] Indica a hora em que o objeto de partição foi inserido no banco de dados RSM.
Objectguid [entrada/saída] Identificador exclusivo para o lado. Se um valor não NULL for fornecido, o valor será usado como o GUID do lado; caso contrário, um GUID será gerado.
Enabled [in] Determina se o lado deve ou não ser habilitado.
dwOperationalState [out] Deve ser NTMS_READY.
szName [in] Nome de um novo lado.
szDescription [in] Parâmetro opcional que pode ser definido usando CreateNtmsMedia. Forneça a cadeia de caracteres vazia ("\0") para evitar passar um valor para a descrição.
PhysicalMedia [out] GUID do objeto lateral recém-criado.
LogicalMedia [entrada/saída] Parâmetro de entrada opcional, bem como um parâmetro de saída. Se o GUID for fornecido, CreateNtmsMedia tentará criar um novo objeto de mídia lógica com o GUID pré-atribuído. Se o GUID não for exclusivo, CreateNtmsMedia retornará um erro.
State [in] Qualquer estado lateral válido.
Lado [out] CreateNtmsMedia define o número lateral como seu deslocamento na matriz Partições.
dwOmidLabelIdLength [in] Deve ser um valor positivo.

CreateNtmsMedia usa dwOmidLabelIdLength para determinar o número de bytes significativos no membro OmidLabelId . Se o valor não estiver correto, o OmidLabelId gravado estará incorreto.

OmidLabelId [in] Deve ser um rótulo de mídia válido que possa ser reconhecido por uma MLL instalada.
szOmidLabelType [in] Não deve ser uma cadeia de caracteres vazia.
szOmidLabelInfo [in] Pode ser a cadeia de caracteres vazia.
dwMountCount [in] Qualquer valor é aceito.
dwAllocateCount [in] Qualquer valor é aceito.
Capacidade [in] Código de capacidade SCSI.

Esse membro não é usado pelo RSM, mas pode ser usado por aplicativos gravados no RSM para obter informações adicionais sobre a mídia. Para obter uma descrição do que esse membro deve ser definido como, consulte a especificação SCSI do Fabricante de Hardware para obter as configurações possíveis.

O RSM atualiza esse membro quando ele monta o meio recém-importado pela primeira vez.

 

Observação

O cabeçalho ntmsapi.h define CreateNtmsMedia como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

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

Funções dos Serviços de Mídia