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


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

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

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

Синтаксис

DWORD CreateNtmsMediaA(
  [in] HANDLE                    hSession,
  [in] LPNTMS_OBJECTINFORMATIONA lpMedia,
  [in] LPNTMS_OBJECTINFORMATIONA 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

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

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