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

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

Функция CreateNtmsMedia создает PMID и сторону (или сторону) для новой части автономного носителя. Носитель помещается в пул носителей, указанный для lpPhysicalMedia.

Синтаксис

DWORD CreateNtmsMediaW(
  [in] HANDLE                    hSession,
  [in] LPNTMS_OBJECTINFORMATIONW lpMedia,
  [in] LPNTMS_OBJECTINFORMATIONW lpList,
  [in] DWORD                     dwOptions
);

Параметры

[in] hSession

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

[in] lpMedia

Указатель на структуру NTMS_OBJECTINFORMATION , содержащую сведения о создаваемом носителе. Описание соответствующих элементов см. в разделе Примечания.

[in] lpList

Указатель на структуру NTMS_OBJECTINFORMATION , указывающую массив сторон, связанных со средой. Описание соответствующих элементов см. в разделе Примечания.

[in] dwOptions

Параметры. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
0
Значение по умолчанию. Позволяет создать дубликат носителя с повторяющимся OMID.
NTMS_ERROR_ON_DUPLICATE
Возвращает ошибку и не создает среду, если среда с указанным OMID уже существует в системе.

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

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

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

Windows XP: NTMS_CONTROL_ACCESS в пул носителей или NTMS_MODIFY_ACCESS в автономную библиотеку запрещено. Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности.

ERROR_DATABASE_FAILURE
База данных недоступна или повреждена.
ERROR_DATABASE_FULL
База данных заполнена.
ERROR_DUPLICATE_OMID
Вариант NTMS_ERROR_ON_DUPLICATE был предоставлен, и носитель уже существует с этим OMID.
ERROR_INVALID_HANDLE
Дескриптор сеанса отсутствует или недопустим.
ERROR_INVALID_MEDIA
Запись уже существует для носителя с этим штрихкодом.
ERROR_INVALID_MEDIA_POOL
Указанный пул носителей либо не существует, либо не является допустимым пулом импорта или приложения.
ERROR_INVALID_PARAMETER
Параметр отсутствует, либо недопустимый размер сведений об объекте или тип объекта.
ERROR_MEDIA_INCOMPATIBLE
Число указанных сторон не соответствует числу сторон, связанных с типом мультимедиа пула носителей.
ERROR_NOT_ENOUGH_MEMORY
Сбой выделения памяти во время обработки.
ERROR_SUCCESS
Функция успешно выполнена.

Комментарии

Параметр lpMedia должен указывать на структуру NTMS_OBJECTINFORMATION , параметр dwType которой NTMS_PHYSICAL_MEDIA. Ниже приведен список элементов и описаний для структуры NTMS_OBJECTINFORMATION .

Член Описание
dwSize [in] CreateNtmsMedia проверяет, равен ли этот размер длине структуры NTMS_OBJECTINFORMATION , содержащей структуру NTMS_PMIDINFORMATION . Если размер неправильный, возвращается ERROR_INVALID_PARAMETER.
dwType [in] CreateNtmsMedia проверяет, было ли указано значение NTMS_PHYSICAL_MEDIA. Он возвращает ERROR_INVALID_PARAMETER, если указан неверный тип.
Создан [out] Указывает время ввода физического объекта мультимедиа в базу данных NTMS.
Изменен [out] Указывает время ввода физического объекта мультимедиа в базу данных NTMS.
Objectguid [вход/выход] Уникальный идентификатор физического объекта мультимедиа (PMID). Если указано значение, отличное от NULL , значение используется в качестве GUID физической среды, в противном случае создается GUID.
Enabled [in] Указывает, следует ли включить физический носитель.
dwOperationalState [out] Должен быть NTMS_READY.
szName [вход/выход] CreateNtmsMedia позволяет приложению указать имя нового физического носителя. Это позволяет приложению продолжать использовать имя носителя после перемещения его с одного компьютера RSM на другой. Имя RSM по умолчанию: для односторонней: штрихкод, а затем значение сведений о метки или порядковый номер;. для многосторонней мультимедиа Штрихкод, затем Порядковый номер.

Обратите внимание, что в пользовательском интерфейсе RSM для секции отображается это имя (имя, назначенное физическому объекту мультимедиа).

szDescription [in] Необязательный параметр, который можно задать с помощью CreateNtmsMedia. Укажите пустую строку ("\0"), чтобы избежать передачи значения для описания.
 

Ниже приведен список элементов и описания структуры NTMS_PMIDINFORMATION .

Член Описание
CurrentLibrary [in] Должен быть либо NULL_GUID, либо GUID автономной библиотеки.
MediaPool [in] Должен быть GUID допустимого пула импорта или пула приложений.

CreateNtmsMedia проверяет, является ли это GUID допустимого импорта или пула приложений. Он также проверяет, правильно ли указано количество секций для типа носителя, связанного с этим пулом носителей.

Расположение [out] Должен быть NULL_GUID.
LocationType [out] Должен быть NTMS_STORAGESLOT.
HomeSlot [out] Должен быть NULL_GUID.
MediaType [out] CreateNtmsMedia задает тип носителя, связанный с предоставленным пулом носителей.
szBarCode [вход/выход] Штрихкод удаляет все конечные пробелы. CreateNtmsMedia не выполняет никаких дополнительных попыток проверки допустимости штрихкода.
BarCodeState [out] Параметру BarCodeState присвоено значение NTMS_BARCODESTATE_UNREADABLE, если значение, переданное для szBarCode , является пустой строкой, в противном случае оно имеет значение NTMS_BARCODESTATE_OK.
szSequenceNumber [out] CreateNtmsMedia присваивает только что созданному носителю порядковый номер, который возвращается в этом элементе.
MediaState [out] CreateNtmsMedia задает для MediaState значение NTMS_MEDIASTATE_IDLE.
dwNumberOfPartitions [in] Определяет количество NTMS_OBJECTINFORMATION структур, представляющих стороны для этой среды. CreateNtmsMedia проверяет, совпадает ли количество указанных сторон с числом сторон, подразумеваемым пулом носителей, которому оно должно быть назначено. Если они не совпадают, возвращается ERROR_MEDIA_INCOMPATIBLE.
dwMediaTypeCode [in] Код типа носителя SCSI.

Этот элемент не используется RSM, но может использоваться приложениями, написанными в RSM для получения дополнительных сведений о носителе. Описание того, для чего должен быть задан этот член, см. в разделе Спецификация SCSI производителя оборудования для возможных параметров.

RSM обновляет этот элемент при первом подключении нового импортированного носителя.

dwDensityCode [in] Код плотности SCSI.

Этот элемент не используется RSM, но может использоваться приложениями, написанными в RSM для получения дополнительных сведений о носителе. Описание того, для чего должен быть задан этот член, см. в разделе Спецификация SCSI производителя оборудования для возможных параметров.

RSM обновляет этот элемент при первом подключении нового импортированного носителя.

 

Параметр lpList должен указывать на структуру NTMS_OBJECTINFORMATION , dwType которой NTMS_PARTITION со следующими сведениями.

Член Описание
dwSize [in] CreateNtmsMedia проверяет, соответствует ли указанный размер ожидаемой длине структуры NTMS_OBJECTINFORMATION , содержащей NTMS_PARTITIONINFORMATION структуру. Если размер неправильный, возвращается ERROR_INVALID_PARAMETER.
dwType [in] CreateNtmsMedia проверяет, предоставлено ли значение NTMS_PARTITION. Он возвращает ERROR_INVALID_PARAMETER, если указанный тип неправильный.
Создан [out] Указывает время ввода объекта секции в базу данных RSM.
Изменен [out] Указывает время ввода объекта секции в базу данных RSM.
Objectguid [вход/выход] Уникальный идентификатор стороны. Если указано значение, отличное от NULL , значение используется в качестве GUID стороны; В противном случае создается GUID.
Enabled [in] Определяет, следует ли включить сторону.
dwOperationalState [out] Должен быть NTMS_READY.
szName [in] Имя новой стороны.
szDescription [in] Необязательный параметр, который можно задать с помощью CreateNtmsMedia. Укажите пустую строку ("\0"), чтобы избежать передачи значения для описания.
PhysicalMedia [out] GUID только что созданного бокового объекта.
LogicalMedia [вход/выход] Необязательный входной параметр, а также выходной параметр. Если указан GUID, CreateNtmsMedia попытается создать новый логический объект мультимедиа с предварительно заданным GUID. Если GUID не является уникальным, CreateNtmsMedia возвращает ошибку.
Состояние [in] Любое допустимое боковое состояние.
Стороне [out] CreateNtmsMedia задает номер стороны со смещением в массиве Секции.
dwOmidLabelIdLength [in] Должно быть положительным значением.

CreateNtmsMedia использует dwOmidLabelIdLength для определения количества значительных байтов в элементе OmidLabelId . Если значение неверное, записанное значение OmidLabelId является неправильным.

OmidLabelId [in] Должна быть допустимой меткой носителя, которую можно распознать с помощью установленного MLL.
szOmidLabelType [in] Не должно быть пустой строкой.
szOmidLabelInfo [in] Может быть пустой строкой.
dwMountCount [in] Принимается любое значение.
dwAllocateCount [in] Принимается любое значение.
Производительность [in] Код емкости SCSI.

Этот элемент не используется RSM, но может использоваться приложениями, написанными в RSM для получения дополнительных сведений о носителе. Описание того, для чего должен быть задан этот член, см. в разделе Спецификация SCSI производителя оборудования для возможных параметров.

RSM обновляет этот элемент при первом подключении нового импортированного носителя.

 

Примечание

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

Требования

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

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

Функции служб мультимедиа