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


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

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

[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. Так как буфер байтов не учитывается между системами различных архитектур, удаленное выполнение этой функции может привести к непредсказуемым результатам.

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

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

Объект Доступ
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 [только классические приложения]
целевая платформа Виндоус
заголовка ntmsapi.h
библиотеки Ntmsapi.lib
DLL Ntmsapi.dll

См. также

EnumerateNtmsObject

GetNtmsObjectAttribute

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