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


Метод Discover класса MSFT_StorageProvider

Обнаруживает объекты, принадлежащие поставщику хранилища.

Этот метод используется, когда пользователю необходимо явно обнаружить или повторно перечислить объекты, принадлежащие поставщику хранилища. Вызов этого метода приведет к полной или частичной недействительности кэша и вызовов подсистемы хранилища по сети для обнаружения новых или обновленных объектов. Так как это дорогостоящая задача, этот метод следует использовать с осторожностью.

Область операции обнаружения управляется параметрами DiscoveryLevel и RootObject. DiscoveryLevel управляет глубиной обнаружения объектов. RootObject определяет отправную точку, с которой будет выполняться обнаружение.

Синтаксис

UInt32 Discover(
  [in]  UInt16                 DiscoveryLevel,
  [in]  MSFT_StorageObject REF RootObject,
  [in]  Boolean                RunAsJob,
  [out] MSFT_StorageJob    REF CreatedStorageJob,
  [out] String                 ExtendedStatus
);

Параметры

DiscoveryLevel [in]

Уровень (или глубина) обнаружения, которое должно быть выполнено. Этот параметр можно указать, только если корневой объект является поставщиком хранилища, подсистемой хранения или значением NULL. Если этот параметр указан, поставщик хранилища будет обнаруживать объекты, начиная с уровня 0 и продолжая до достижения указанного уровня. Также будут обнаружены связи между объектами (на обнаруженных уровнях).

Значение Значение
Уровень 0 0 Будут обнаружены поставщик хранилища, подсистема хранения и объекты файлового сервера. Примечание. Начиная с Windows 10: добавлено обнаружение объектов файлового сервера.
Уровень 1 1 Будут обнаружены пулы носителей, общие папки, параметры устойчивости, целевые порты, целевые порталы и идентификаторы инициатора. Примечание. Начиная с Windows 10: добавлено обнаружение общих папок.
Уровень 2 2 Будут обнаружены виртуальные диски, тома, секции, диски и наборы маскирования. Примечание. Начиная с Windows 10: добавлено обнаружение томов, разделов и дисков.
Уровень 3 3 Будут обнаружены физические диски.

RootObject [in]

Если этот параметр задан, обнаружение начнется с этого объекта. Если DiscoveryLevel имеет значение NULL, будут выполняться четко определенные действия в зависимости от типа объекта, заданного RootObject:

  • Подсистема хранения: будут обнаружены все связанные объекты.
  • Пул носителей. Будет обнаружен пул вместе с любыми связанными параметрами устойчивости, виртуальными дисками и физическими дисками.
  • Набор маскирования. Будет обнаружен набор маскирования, а также все связанные целевые порты, идентификаторы инициатора и виртуальные диски.
  • Для всех остальных объектов будет обнаружен или обновлен только этот объект.

RunAsJob [in]

Если задано значение TRUE, этот метод использует параметр CreatedStorageJob , когда запрос выполняется долго. Если задание хранилища создано для отслеживания операции, этот метод возвращает параметры метода Checked — Job Started.

Примечание

Даже если runAsJob имеет значение TRUE, этот метод по-прежнему может возвращать результат, если он завершен в достаточное время.

Если значение FALSE или NULL, этот метод будет использовать асинхронное поведение WMI по умолчанию, определяемое методом клиента для вызова. Другими словами, он является синхронным, если не указано иное.

CreatedStorageJob [out]

Если параметр RunAsJob имеет значение TRUE и выполнение этого метода занимает много времени, этот параметр получает ссылку на объект задания хранения, используемый для отслеживания длительной операции.

ExtendedStatus [out]

Строка, содержащая внедренный объект MSFT_StorageExtendedStatus .

Этот параметр позволяет поставщику хранилища возвращать расширенные (зависящие от реализации) сведения об ошибках.

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

Успешно (0)

Не поддерживается (1)

Неуказаная ошибка (2)

Время ожидания (3)

Сбой (4)

Недопустимый параметр (5)

Проверенные параметры метода — задание запущено (4096)

Доступ запрещен (40001)

Недостаточно ресурсов для завершения операции. (40002)

Не удается подключиться к поставщику хранилища. (46000)

Поставщик хранилища не может подключиться к подсистеме хранения. (46001)

Поставщик хранилища не поддерживает требуемый профиль. (46002)

Поставщик хранилища не поддерживает обязательную связь. (46003)

Не удалось обнаружить корневой объект. (46009 )

Сбой обнаружения в одной или нескольких подсистемах. (46010)

Комментарии

Поставщики хранилища должны завершить обнаружение уровня 0 при запуске. Объекты MSFT_StorageProvider и MSFT_StorageSubSystem должны быть загружены в кэш.

Для повышения производительности подсистемы хранения, у которых свойство iSCSITargetCreationScheme имеет значение Auto , должны обнаруживать целевые порты вместе с виртуальными дисками на уровне 2. Обратите внимание, что целевые порталы по-прежнему должны быть обнаружены на уровне 1.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Пространство имен Root\Microsoft\Windows\Storage
MOF Storagewmi.mof

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

MSFT_StorageProvider

MSFT_StorageSubSystem