Функция 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

Дескриптор сеанса, возвращаемого функцией OpenNtmsSession .

[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
Функция выполнена успешно.

Комментарии

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

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

Объект Access
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 [только классические приложения]
Целевая платформа Windows
Header ntmsapi.h
Библиотека Ntmsapi.lib
DLL Ntmsapi.dll

См. также раздел

EnumerateNtmsObject

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

SetNtmsObjectAttribute