Функция SetNtmsObjectAttributeA (ntmsapi.h)
[Диспетчер съемных носителей больше недоступен в Windows 7 и Windows Server 2008 R2.]
Функция SetNtmsObjectAttribute создает расширенный атрибут (с именем private data) в указанном объекте RSM.
Синтаксис
DWORD SetNtmsObjectAttributeA(
[in] HANDLE hSession,
[in] LPNTMS_GUID lpObjectId,
[in] DWORD dwType,
[in] LPCSTR lpAttributeName,
[in] LPVOID lpAttributeData,
[in] DWORD dwAttributeSize
);
Параметры
[in] hSession
Дескриптор сеанса, возвращаемого функцией OpenNtmsSession .
[in] lpObjectId
GUID объекта RSM, для которого создается расширенный атрибут.
[in] dwType
Тип объекта RSM. Список типов объектов см. в разделе NtmsObjectsTypes.
[in] lpAttributeName
Имя создаваемого расширенного атрибута.
[in] lpAttributeData
Определяемые пользователем данные.
[in] dwAttributeSize
Размер буфера lpAttributeData в байтах.
Возвращаемое значение
Эта функция возвращает одно из следующих значений.
Значение | Значение |
---|---|
|
NTMS_MODIFY_ACCESS объекту запрещено или для указанного типа объекта не допускаются никакие изменения (см. примечания). Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности.
Windows XP: Права доступа не требуются. |
|
Сбой обновления базы данных. |
|
Значение, указанное в параметре hSession , равно NULL или недопустимо. |
|
Недопустимое имя или атрибут. Значение NTMS_MAXATTR_NAMELEN определяет максимальную длину имени атрибута. Длина включает значение NULL. |
|
Указатель имеет значение NULL или является недопустимым. |
|
Указанный атрибут больше или равен NTMS_MAXATTR_LENGTH. |
|
Не удается подключиться к службе RSM. |
|
Недопустимый ИДЕНТИФИКАТОР GUID. |
|
Функция выполнена успешно. |
Комментарии
Функция 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 |