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


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

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

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

Синтаксис

DWORD GetNtmsObjectAttributeW(
  [in]      HANDLE      hSession,
  [in]      LPNTMS_GUID lpObjectId,
  [in]      DWORD       dwType,
  [in]      LPCWSTR     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
Функция выполнена успешно.

Комментарии

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

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

Объект 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