Функция EnumerateNtmsObject (ntmsapi.h)
[Диспетчер съемных носителей больше недоступен в Windows 7 и Windows Server 2008 R2.]
Функция EnumerateNtmsObject перечисляет объекты RSM, содержащиеся в параметре lpContainerId .
Синтаксис
DWORD EnumerateNtmsObject(
[in] HANDLE hSession,
[in] const LPNTMS_GUID lpContainerId,
[out] LPNTMS_GUID lpList,
[in, out] LPDWORD lpdwListSize,
[in] DWORD dwType,
[in] DWORD dwOptions
);
Параметры
[in] hSession
Дескриптор сеанса, возвращаемого функцией OpenNtmsSession .
[in] lpContainerId
Уникальный идентификатор контейнера объектов RSM, объекты которого необходимо перечислить. Этот параметр может быть GUID библиотеки, пула носителей, идентификатора секции, физического носителя или логического носителя. Чтобы перечислить все объекты типа, указанного параметром dwType , независимо от контейнера, присвойте этому параметру значение NULL. Дополнительные сведения о связи "объект-контейнер" см. в разделе NtmsObjectsTypes.
[out] lpList
Буфер для массива библиотек, дисков, носителей или других идентификаторов объектов RSM.
[in, out] lpdwListSize
Указатель на переменную, указывающую максимальное число идентификаторов, которые функция может возвращать с помощью параметра lpList . Во время возврата количество идентификаторов в lpList возвращается в lpdwListSize.
[in] dwType
Тип объектов для перечисления в контейнере lpContainerId . Если lpContainerId имеет значение NULL, перечисляются все объекты этого типа, поддерживаемые RSM. Этот параметр может быть одним из следующих значений из типа перечисления NtmsObjectsTypes .
[in] dwOptions
Параметры перечисления. Это применимо, только если dwType имеет NTMS_MEDIA_POOL.
Windows XP: Этот параметр зарезервирован и должен иметь нулевое значение.
Возвращаемое значение
Эта функция возвращает одно из следующих значений.
Значение | Значение |
---|---|
|
Отсутствует указатель lpdwListSize или lpContainerId не является допустимым контейнером для типа объекта, заданного dwType. |
|
Размер буфера, заданный lpdwListSize , слишком мал для всех найденных объектов. Функция усекает список и возвращает фактический размер в lpdwListSize. |
|
Дескриптор сеанса отсутствует или недопустим. |
|
Во время обработки произошел сбой выделения. |
|
Идентификатор GUID, заданный lpContainerId , не является ИДЕНТИФИКАТОРом GUID объекта контейнера в базе данных. |
|
Функция выполнена успешно. Если lpContainerId не содержит объектов типа, заданного dwType, функция возвращает ERROR_SUCCESS и lpdwListSize , равный нулю. |
Комментарии
Функции безопасности также доступны для получения и задания определенных прав доступа к объектам RSM.
Если доступное число идентификаторов, указанное в параметре lpdwListSize , больше текущего размера буфера, lpdwListSize возвращает требуемое число идентификаторов. Затем приложение должно выделить буфер большего размера и повторить попытку.
Так как идентификаторы могут быть добавлены другим процессом, последующие функции с измененным размером списка могут получить ошибку, указывающую на то, что список слишком мал.
Если параметр lpContainerId имеет значение NULL, RSM перечисляет объекты верхнего уровня (например, библиотеки).
Если в списке указано несколько объектов, объект может быть перечислен из нескольких контейнеров. Контейнер NULL является контейнером самого высокого уровня и перечисляет все объекты в системе. Например, можно перечислить носители в определенной библиотеке или все носители в системе.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | ntmsapi.h |
Библиотека | Ntmsapi.lib |
DLL | Ntmsapi.dll |