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


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

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

[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 [in/out] Уникальный идентификатор объекта физического носителя (PMID). Если задано значение, отличное отNULL, значение используется в качестве GUID физического носителя, в противном случае создается GUID.
включено [in] Указывает, следует ли включить физический носитель.
dwOperationalState [out] Должно быть NTMS_READY.
szName [in/out] 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 [in/out] Штрихкод лишается всех конечных пространств. 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 [in/out] Уникальный идентификатор для стороны. Если указано значение, отличное отNULL, значение используется в качестве GUID стороны; в противном случае создается GUID.
включено [in] Определяет, следует ли включить сторону.
dwOperationalState [out] Должно быть NTMS_READY.
szName [in] Имя новой стороны.
szDescription [in] Необязательный параметр, который можно задать с помощью CreateNtmsMedia. Укажите пустую строку (\0), чтобы избежать передачи значения для описания.
PhysicalMedia [out] GUID только что созданного объекта.
LogicalMedia [in/out] Необязательный входной параметр, а также выходной параметр. Если указан 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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка ntmsapi.h
библиотеки Ntmsapi.lib
DLL Ntmsapi.dll

См. также

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