Поделиться через


Функция GetNtmsObjectAttributeA (ntmsapi.h)

[Диспетчер съемных носителей больше не доступен в Windows 7 и Windows Server 2008 R2.]

Функция GetNtmsObjectAttribute извлекает расширенный атрибут (именованные частные данные) из указанного объекта RSM.

Синтаксис

DWORD GetNtmsObjectAttributeA(
  [in]      HANDLE      hSession,
  [in]      LPNTMS_GUID lpObjectId,
  [in]      DWORD       dwType,
  [in]      LPCSTR      lpAttributeName,
  [out]     LPVOID      lpAttributeData,
  [in, out] LPDWORD     lpAttributeSize
);

Параметры

[in] hSession

Обработка сеанса, возвращаемого функцией OpenNtmsSess ion.

[in] lpObjectId

Уникальный идентификатор объекта, из которого извлекаются данные.

[in] dwType

Тип объекта RSM. Список типов объектов см. в разделе NtmsObjectsTypes.

[in] lpAttributeName

Имя расширенного атрибута, данные которого необходимо извлечь.

[out] lpAttributeData

Указатель на буфер, получающий данные.

[in, out] lpAttributeSize

Размер буфера данных во входных данных в байтах. В выходных данных фактический размер данных в байтах.

Возвращаемое значение

Эта функция возвращает одно из следующих значений.

Ценность Значение
ERROR_ACCESS_DENIED
NTMS_USE_ACCESS объекту или его контейнеру запрещено. Другие ошибки безопасности также возможны, но они указывают на ошибку подсистемы безопасности.

Windows XP: нет необходимых прав доступа.

ERROR_DATABASE_FAILURE
Сбой запроса или обновления базы данных.
ERROR_INSUFFICIENT_BUFFER
Размер буфера неправильно указан. Правильный размер возвращается в параметре lpAttributeSize.
ERROR_INVALID_HANDLE
Значение, указанное в параметре hSession , равно NULL или недопустимо.
ERROR_INVALID_PARAMETER
Указатель null или недопустим.
ERROR_NOT_CONNECTED
Не удается подключиться к службе RSM.
ERROR_OBJECT_NOT_FOUND
Указанный атрибут не найден.
ERROR_SUCCESS
Функция была успешной.

Замечания

На сервере RSM необходимо выполнить функцию GetNtmsObjectAttribute. Так как буфер байтов не учитывается между системами различных архитектур, удаленное выполнение этой функции может привести к непредсказуемым результатам.

Ниже приведен список объектов, требующих специальных прав доступа.

Объект Доступ
NTMS_CHANGER Требуется NTMS_USE_ACCESS библиотеке.
NTMS_CHANGER_TYPE Требуется NTMS_USE_ACCESS на компьютер.
NTMS_COMPUTER Требуется NTMS_USE_ACCESS на компьютер.
NTMS_DRIVE Требуется NTMS_USE_ACCESS библиотеке.
NTMS_DRIVE_TYPE Требуется NTMS_USE_ACCESS на компьютер.
NTMS_IEDOOR Требуется NTMS_USE_ACCESS библиотеке.
NTMS_IEPORT Требуется NTMS_USE_ACCESS библиотеке.
NTMS_LIBRARY Требуется NTMS_USE_ACCESS библиотеке.
NTMS_LIBREQUEST Требуется NTMS_USE_ACCESS библиотеке.
NTMS_LOGICAL_MEDIA Требуется NTMS_USE_ACCESS в пул носителей логического носителя.
NTMS_MEDIA_POOL Требуется NTMS_USE_ACCESS в пул мультимедиа.
NTMS_MEDIA_TYPE Требуется NTMS_USE_ACCESS на компьютер.
NTMS_OPREQUEST Требуется NTMS_USE_ACCESS на компьютер.
NTMS_PARTITION Требуется NTMS_USE_ACCESS в пул носителей на стороне.
NTMS_PHYSICAL_MEDIA Требуется NTMS_USE_ACCESS в пул мультимедиа.
NTMS_STORAGESLOT Требуется NTMS_USE_ACCESS библиотеке.
 

Заметка

Заголовок ntmsapi.h определяет GetNtmsObjectAttribute как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка ntmsapi.h
библиотеки Ntmsapi.lib
DLL Ntmsapi.dll

См. также

EnumerateNtmsObject

функции управления объектами

SetNtmsObjectAttribute