Метод IVdsHwProviderStoragePools::CreateLunInStoragePool (vdshwprv.h)
[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]
Создает LUN в пуле носителей.
Синтаксис
HRESULT CreateLunInStoragePool(
[in] VDS_LUN_TYPE type,
[in] ULONGLONG ullSizeInBytes,
[in] VDS_OBJECT_ID StoragePoolId,
[in] LPWSTR pwszUnmaskingList,
[in] VDS_HINTS2 *pHints2,
[out] IVdsAsync **ppAsync
);
Параметры
[in] type
Значение перечисления VDS_LUN_TYPE , указывающее тип создаваемого LUN. Новый LUN может быть автоматическим или определенным типом RAID, но не обоими. Если вызывающий объект задает автоматический тип, в параметре pHints2 должно быть указано одно или несколько автоматических указаний.
Указатель интерфейса для нового объекта LUN можно получить, вызвав метод IVdsAsync::Wait для указателя интерфейса, возвращаемого в параметре ppAsync . Структура VDS_ASYNC_OUTPUT , возвращаемая wait , содержит указатель интерфейса объекта LUN в элементе cl.pLunUnk .
[in] ullSizeInBytes
Размер нового LUN в байтах. Поставщик может округлить размер вверх или вниз в соответствии с требованиями выравнивания или другими ограничениями. (В большинстве случаев поставщик округляет вверх, гарантируя, что, за редкими исключениями, ЗНАЧЕНИЕ LUN по крайней мере равно требуемому.)
После создания LUN вызывающий объект может определить фактический размер LUN, вызвав метод IVdsLun::GetProperties .
[in] StoragePoolId
Значение VDS_OBJECT_ID , определяющее пул носителей, в котором создается LUN. Этот параметр является обязательным и не может быть GUID_NULL.
[in] pwszUnmaskingList
Список, указывающий компьютеры, которым будет предоставлен доступ к LUN. Список представляет собой удобочитаемую строку с разделителями с запятой, заканчивающейся null.
Если значение равно "", всем компьютерам с портом HBA, подключенным к подсистеме хранения, предоставляется доступ к LUN. Если значение равно "", компьютеры не должны предоставлять доступ к LUN.
Если указано "*" или "", другое значение не может быть указано.
Для сетей Fibre Channel и последовательно подключенных сетей SCSI (SAS) каждая запись представляет собой 64-разрядное имя (WWN) каждого порта, для которого luN не маскируется, в формате шестнадцатеричной строки (длиной 16 символов), которая является наиболее важным байтом. Например, WWN-адрес 01:23:45:67:89:AB:CD:EF представлен как "0123456789ABCDEF". Дополнительные сведения см. в спецификациях T10 для Fibre Channel и SAS.
Для сетей iSCSI каждая запись представляет собой имя с указанием iSCSI (IQN) каждого инициатора, которому не маскируется LUN. Считается, что luN, не маски для определенного инициатора, связан с этим инициатором.
[in] pHints2
Указатель на структуру VDS_HINTS2 , которая указывает указания, которые будут использоваться при создании LUN. Поставщик не обязан применять указания к LUN. Указания, указанные в структуре VDS_HINTS2 , являются только запросом к поставщику.
После создания LUN вызывающий объект может определить указания, примененные поставщиком, вызвав метод IVdsLun2::QueryHints2 .
Если параметр type указывает неавтомагический тип, этот параметр должен иметь значение NULL.
[out] ppAsync
Указатель на интерфейс IVdsAsync , который после успешного завершения получает интерфейс IVdsAsync для мониторинга и управления этой операцией. Вызывающие стороны должны освободить полученный интерфейс после завершения работы с ним. Если метод IVdsAsync::Wait вызывается в интерфейсе и возвращается успешное значение HRESULT, интерфейсы, возвращаемые в структуре VDS_ASYNC_OUTPUT , должны быть освобождены путем вызова метода IUnknown::Release для каждого указателя интерфейса. Однако если функция Wait возвращает значение HRESULT сбоя или параметр pHrResultобъекта Wait получает значение HRESULT сбоя, указатели интерфейса в структуре VDS_ASYNC_OUTPUT имеют значение NULL и не должны освобождаться. Вы можете проверить наличие значений HRESULT успешного или неудачного выполнения с помощью макросов SUCCEEDED и FAILED , определенных в Winerror.h.
Возвращаемое значение
Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать коды преобразованных системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
Комментарии
Выбрав соответствующие значения для параметров type и pHints2 , вызывающий объект может указывать атрибуты LUN полностью, частично или минимально. Поставщик может автоматически включать неопределенные атрибуты на основе автоматических указаний, указанных в структуре VDS_HINTS2 , на которую указывает параметр pHints2 .
Примечания для разработчиков: Поставщик должен возвращать указатель интерфейса IVdsAsync в параметре ppAsync , даже если вызов этого метода не инициирует асинхронную операцию.
Список WWN и IQN в параметре pwszUnmaskingList может содержать повторяющиеся имена. Поставщик несет ответственность за проверку всех имен в списке и удаление дубликатов при необходимости.
В ответ на метод CreateLunInStoragePool и перед развертыванием нового LUN на любом узле поставщик должен заполнить первый и последний мегабайт нулями, оставив LUN неинициализированным.
Существует небольшое различие между E_INVALIDARG и VDS_E_NOT_SUPPORTED возвращаемыми значениями. Поставщики не должны реализовывать все функции, которые API VDS может представить клиенту. Например, метод CreateLunInStoragePool предоставляет возможность создавать различные типы LUN (например, простые, зеркальные, чередуемые и четные). Однако поставщики не обязаны поддерживать все типы LUN. Если вызывающий объект задает значение для параметра типа , которое не является допустимым значением перечисления VDS_LUN_TYPE , поставщик должен вернуть E_INVALIDARG. Если вызывающий объект указывает допустимое значение типа , которое поставщик не поддерживает, поставщик должен вернуть VDS_E_NOT_SUPPORTED.
Требования
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | vdshwprv.h |
Библиотека | Uuid.lib |