Compartilhar via


Função EnumerateNtmsObject (ntmsapi.h)

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

A função EnumerateNtmsObject enumera os objetos RSM contidos no parâmetro lpContainerId .

Sintaxe

DWORD EnumerateNtmsObject(
  [in]      HANDLE            hSession,
  [in]      const LPNTMS_GUID lpContainerId,
  [out]     LPNTMS_GUID       lpList,
  [in, out] LPDWORD           lpdwListSize,
  [in]      DWORD             dwType,
  [in]      DWORD             dwOptions
);

Parâmetros

[in] hSession

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

[in] lpContainerId

Identificador exclusivo do contêiner de objeto RSM cujos objetos devem ser enumerados. Esse parâmetro pode ser o GUID de uma biblioteca, pool de mídia, ID de partição, mídia física ou mídia lógica. Para enumerar todos os objetos do tipo especificado pelo parâmetro dwType , independentemente do contêiner, defina esse parâmetro como NULL. Para obter mais informações sobre a relação objeto-contêiner, consulte NtmsObjectsTypes.

[out] lpList

Buffer para a matriz de bibliotecas, unidades, mídia ou outras IDs de objeto RSM.

[in, out] lpdwListSize

Ponteiro para uma variável que especifica o número máximo de IDs que a função pode retornar por meio do parâmetro lpList . No momento do retorno, o número de IDs em lpList é retornado em lpdwListSize.

[in] dwType

Tipo de objetos a serem enumerados no contêiner lpContainerId . Se lpContainerId for NULL, todos os objetos desse tipo com suporte pelo RSM serão enumerados. Esse parâmetro pode ser um dos seguintes valores do tipo de enumeração NtmsObjectsTypes .

Valor Significado
NTMS_CHANGER
Cambiadores.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

NTMS_CHANGER_TYPE
Tipos de alterador.

O parâmetro lpContainerId deve ser NULL.

NTMS_COMPUTER
Objeto de computador atual.

O parâmetro lpContainerId deve ser NULL.

NTMS_DRIVE
Unidades.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

NTMS_DRIVE_TYPE
Tipos de unidade.

O parâmetro lpContainerId deve ser NULL.

NTMS_IEDOOR
Portas.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

NTMS_IEPORT
Insira/ejete portas contidas em uma biblioteca especificada pelo parâmetro lpContainerId ou todas as portas de inserção/ejeção com suporte pelo RSM se uma ID de contêiner NULL for fornecida.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

NTMS_LIBRARY
Objetos de biblioteca. Isso inclui as unidades de biblioteca física e a biblioteca offline.

O parâmetro lpContainerId deve ser NULL.

NTMS_LIBREQUEST
Solicitações ativas de biblioteca (ou itens de trabalho) enfileiradas na biblioteca especificada pelo parâmetro lpContainerId ou todos os itens de trabalho da biblioteca enfileirados no RSM se uma ID de contêiner NULL for fornecida.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

NTMS_LOGICAL_MEDIA
Objeto de mídia lógica. Esse é um meio alocado a um aplicativo que pode conter mais de um lado ou parte da mídia física.

O parâmetro lpContainerId deve ser NUL, um GUID do pool de mídia ou um GUID de partição.

NTMS_MEDIA_POOL
Objeto do pool de mídia que contém mídia lógica e/ou física e parâmetros de configuração para gerenciá-los. Se NULL for especificado como uma ID de contêiner, somente os nomes de nível superior serão retornados.

O parâmetro lpContainerId deve ser NULL ou um GUID do pool de mídia.

NTMS_MEDIA_TYPE
Objeto de tipo de mídia que contém os atributos de um tipo de meio com suporte do RSM. Enumerar com um NULL fornecerá todos os tipos de mídia possíveis, não apenas aqueles disponíveis no servidor atual.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

NTMS_OPREQUEST
Solicitações de operador que estão neste servidor RSM.

O parâmetro lpContainerId deve ser NULL.

NTMS_PARTITION
Lado em um pedaço de mídia física. A parte da mídia física pode conter vários lados físicos (por exemplo, um disco óptico contém dois lados).

O parâmetro lpContainerId deve ser NULL, um GUID de mídia lógica, um GUID de mídia física ou um GUID do pool de mídia.

NTMS_PHYSICAL_MEDIA
Item de mídia física (fita, disco óptico, CD-ROM ou cartucho magnético). Um pedaço de mídia física pode conter vários lados físicos (por exemplo, lados de um disco óptico).

O parâmetro lpContainerId deve ser NULL, um GUID do pool de mídia ou um GUID de biblioteca.

NTMS_STORAGESLOT
Slots de mídia contidos em uma biblioteca especificada pelo parâmetro lpContainerId ou todos os slots de armazenamento com suporte pelo RSM se uma ID de contêiner NULL for fornecida.

O parâmetro lpContainerId deve ser NULL ou um GUID de biblioteca.

[in] dwOptions

Opções de enumeração. Isso é aplicável somente quando dwType é NTMS_MEDIA_POOL.

Valor Significado
NTMS_ENUM_ROOTPOOL
Isso enumera o pool raiz além de todos os outros pools de mídia de nível superior; ele sempre é retornado como o primeiro GUID na lista. A enumeração do pool raiz só é necessária para obter ou definir os atributos de segurança no objeto . dwType deve ser NTMS_MEDIA_POOL e lpContainerId deve ser NULL.
NTMS_ENUM_DEFAULT
Não inclui a enumeração do pool raiz ao enumerar os pools de mídia.
 

Windows XP: Esse parâmetro é reservado e deve ser definido como zero.

Retornar valor

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

Valor Significado
ERROR_INVALID_PARAMETER
O ponteiro lpdwListSize está ausente ou lpContainerId não é um contêiner válido para o tipo de objeto especificado por dwType.
ERROR_INSUFFICIENT_BUFFER
O tamanho do buffer especificado por lpdwListSize é muito pequeno para todos os objetos encontrados. A função trunca a lista e retorna o tamanho real em lpdwListSize.
ERROR_INVALID_HANDLE
O identificador de sessão está ausente ou não é válido.
ERROR_NOT_ENOUGH_MEMORY
Ocorreu uma falha de alocação durante o processamento.
ERROR_OBJECT_NOT_FOUND
O GUID especificado por lpContainerId não é o GUID de nenhum objeto de contêiner no banco de dados.
ERROR_SUCCESS
A função foi bem-sucedida. Se lpContainerId não contiver objetos do tipo especificado por dwType, a função retornará ERROR_SUCCESS e um lpdwListSize de zero.

Comentários

As funções de segurança também estão disponíveis para obter e definir direitos de acesso específicos em objetos RSM.

Se o número disponível de IDs especificado no parâmetro lpdwListSize for maior que o tamanho do buffer atual, lpdwListSize retornará o número de IDs necessárias. Em seguida, o aplicativo deve alocar um buffer maior e tentar novamente.

Como é possível que as IDs sejam adicionadas por outro processo, é possível que uma função subsequente com uma lista redimensionada obtenha um erro indicando que a lista é muito pequena.

Se o parâmetro lpContainerId estiver definido como NULL, o RSM enumerará objetos de nível superior (como bibliotecas).

Se mais de um objeto estiver listado, o objeto poderá ser enumerado de mais de um contêiner. O contêiner NULL é o contêiner de nível mais alto e enumera todos os objetos em um sistema. Por exemplo, você pode enumerar mídia em uma biblioteca específica ou em todas as mídias do sistema.

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

CreateNtmsMediaPool

GetNtmsObjectInformation

GetNtmsObjectSecurity

Funções de gerenciamento de objetos

SetNtmsObjectInformation

SetNtmsObjectSecurity