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


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

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

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

Синтаксис

DWORD SetNtmsObjectAttributeW(
  [in] HANDLE      hSession,
  [in] LPNTMS_GUID lpObjectId,
  [in] DWORD       dwType,
  [in] LPCWSTR     lpAttributeName,
  [in] LPVOID      lpAttributeData,
       DWORD       AttributeSize
);

Параметры

[in] hSession

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

[in] lpObjectId

GUID объекта RSM, для которого создается расширенный атрибут.

[in] dwType

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

[in] lpAttributeName

Имя создаваемого расширенного атрибута.

[in] lpAttributeData

Определяемые пользователем данные.

AttributeSize

Размер буфера lpAttributeData в байтах. D

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

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

Значение Значение
ERROR_ACCESS_DENIED
NTMS_MODIFY_ACCESS объекту запрещено или для указанного типа объекта не допускаются изменения (см. примечания). Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности.

Windows XP: Права доступа не требуются.

ERROR_DATABASE_FAILURE
Сбой обновления базы данных.
ERROR_INVALID_HANDLE
Значение, указанное в параметре hSession , равно NULL или недопустимо.
ERROR_INVALID_NAME
Недопустимое имя или атрибут. Значение NTMS_MAXATTR_NAMELEN определяет максимальную длину имени атрибута. Длина включает значение NULL.
ERROR_INVALID_PARAMETER
Указатель имеет значение NULL или является недопустимым.
ERROR_NO_DATA
Указанный атрибут больше или равен NTMS_MAXATTR_LENGTH.
ERROR_NOT_CONNECTED
Не удается подключиться к службе RSM.
ERROR_OBJECT_NOT_FOUND
Недопустимый ИДЕНТИФИКАТОР GUID.
ERROR_SUCCESS
Функция выполнена успешно.

Комментарии

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

Чтобы удалить атрибут, выполните набор атрибута с нулевой длиной.

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

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header ntmsapi.h
Библиотека Ntmsapi.lib
DLL Ntmsapi.dll

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

EnumerateNtmsObject

GetNtmsObjectAttribute

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