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


Выполнение тестов кластера для Локальные дисковые пространства (S2D) в windows HLK

Краткие сведения

Этот документ содержит инструкции для партнеров и изготовителей оборудования (OEM) о том, как использовать тесты, включенные в комплект оборудования Windows (HLK, ранее HCK), для проверки конкретных конфигураций оборудования на наличие основных функциональных возможностей и надежности для Локальные дисковые пространства (S2D).

Важно!

Инструкции в этом документе предназначены только для тестирования. Они не предназначены для конечных пользователей или для настройки систем для использования в рабочей среде.

Предварительные требования

  1. Конфигурация оборудования должна соответствовать требованиям S2D, и сначала она должна пройти все тесты проверки кластера, включая новые тесты, добавленные для S2D.
  2. Необходимо скачать, установить и настроить последнюю версию Windows HLK, которая поддерживает самые последние Windows Server Technical Preview. Рекомендуется ознакомиться с windows HLK. Чтобы скачать и узнать больше о windows HLK, см. раздел Комплект лаборатории оборудования Windows.
    1. Сначала установите контроллер HLK (HLKC) и HLK Studio на тестовом сервере. Не устанавливайте его на узле кластера. Администратор будет использовать этот сервер для выполнения тестов и управления другими компьютерами. HLKC можно использовать для одновременного управления несколькими кластерами, поэтому можно использовать существующий HLKC, который уже настроен с другим кластером.
    2. Затем установите HLK-клиенты на:
      • Все серверы, предназначенные для использования в качестве узлов кластера хранилища (число узлов, также описанных в отдельных требованиях к S2D, должно быть не менее четырех), и
      • Сервер, который не является частью кластера в качестве контроллера тестирования (TC). Здесь будут выполняться тесты.
  3. Все компьютеры, используемые для тестирования (включая контроллер HLK), должны быть присоединены к одному домену и иметь общего пользователя домена с правами администратора на всех компьютерах. Учетные данные этого пользователя будут предоставлены платформе тестирования для выполнения тестов. Пароль пользователя может передаваться и храниться в виде ясного текста.
  4. На всех узлах кластера должен быть включен DHCP на всех подключенных сетевых интерфейсах, а DHCP настроен в сетях, к которым они подключены.

Настройка

Настройка HLK

Подробные инструкции по установке HLK см. в руководстве пользователя HLK . После установки и настройки HLK на всех компьютерах создайте пул компьютеров и проект:

  1. В HLK Studio на HLKC создайте новый пул компьютеров с именем, которое сможет легко определить кластер позже, например имя кластера, которое вы будете использовать (в этом документе используется "Кластер"). Добавьте TC и все узлы кластера в пул компьютеров. Убедитесь, что компьютеры находятся в состоянии Готово .
    1. Откройте HLK Studio, выберите Пуск, а затем — Все приложения>Комплекты> WindowsHLK Studio.
    2. Выберите Конфигурация в правом верхнем углу.
      1. Щелкните правой кнопкой мыши $(Root) и выберите Создать пул компьютеров и укажите имя. (В этом документе используется "Кластер".)
      2. Переместите компьютеры в новый пул. HLK Studio в настоящее время не поддерживает множественный выбор, поэтому необходимо перемещать компьютеры по одному за раз.
      3. Выберите все компьютеры в пуле, щелкните правой кнопкой мыши и выберите Изменить состояние> компьютераготово. Сначала компьютеры перейдут в состояние инициализации .
      4. Убедитесь, что компьютеры достигли состояния Готово . HLK Studio не обновляет отображаемое состояние автоматически. Подождите несколько секунд и выберите пул компьютеров по умолчанию . Вернитесь в пул кластерных компьютеров, чтобы обновить состояние компьютера. После того как все компьютеры будут в состоянии Готово , продолжайте создавать проект.
  2. Создайте проект с тем же именем.
    1. Если вы находитесь в представлении Конфигурация, нажмите кнопку Назад (она выглядит как стрелка влево) слева от заголовка "Конфигурация", чтобы вернуться в представление main.
    2. На вкладке Проект выберите Создать проект.
    3. Укажите "S2D" в качестве имени проекта. Использовать это точное имя не обязательно, но это упрощает идентификацию проекта.

Подготовка компьютеров к выполнению тестов

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

Важно!

Перед запуском этого тестового задания убедитесь, что безопасная загрузка и BitLocker отключены на всех компьютерах, используемых для тестирования. Если вы используете виртуальную машину для контроллера тестирования, может потребоваться вручную отключить безопасную загрузку и BitLocker, так как они могут быть включены по умолчанию.

Существует два способа запуска тестов HLK.

  • Для установки без настройки S2D, т. е. для настройки тестов S2D:

    • Запуск S2D — подготовка компьютеров к тестам
    • Запуск S2D — настройка кластера хранилища
    • Запуск S2D — базовые тесты проверки
    • Запуск S2D — нагрузочные тесты
  • В существующем кластере S2D:

    • Должен быть подготовлен один том размером 256 ГБ (виртуальный диск), который будут использовать тесты.
    • Для кластера с 2 узлами требуется свидетель кворума.
    • Запуск S2D — подготовка компьютеров к тестам
    • Запуск S2D — базовые тесты проверки
    • Запуск S2D — нагрузочные тесты

Выполните следующие действия в HLK Studio:

  1. На вкладке Проект дважды щелкните ранее созданный проект (если он еще не выбран). Имя проекта будет отображаться в качестве заголовка представления после его выбора.

  2. Перейдите на вкладку Выделение .

    1. Выберите ранее созданный пул компьютеров, содержащий кластер и контроллер тестирования.

    2. Выберите Системы слева, а затем проверка первый узел кластера, который появится в списке.

      Убедитесь, что выбран только один узел и что контроллер тестирования не выбран случайно.

    3. Щелкните правой кнопкой мыши выбранный компьютер и выберите Добавить или изменить компоненты.

      добавление и изменение компонентов

    4. В открывшемся диалоговом окне выберите компонент System.Solutions.StorageSpacesDirect в списке компонентов устройств и нажмите кнопку ОК.

  3. На вкладке Тесты выберите тестовый S2D — Подготовка компьютеров к тестам, а затем выберите Выполнить выбрано. Запуск выбранных компьютеров

  4. Укажите необходимые параметры.

    1. В параметрах Домен, Имя пользователя и Пароль введите соответствующие сведения для пользователя домена, имеющего права администратора на все компьютеры в пуле компьютеров.
    2. В раскрывающемся списке Роль необходимо выбрать PrimaryNode . Убедитесь, что в списке компьютеров установлен флажок узел, выбранный на вкладке Выбор . Кроме того:
      1. Выберите TestController в раскрывающемся списке Роль , а затем выберите контроллер тестирования из списка компьютеров.
      2. Выберите OtherNodes в раскрывающемся списке Роль , а затем выберите остальные узлы в кластере.
      3. Перед продолжением убедитесь, что выбраны все компьютеры.
  5. Нажмите кнопку ОК , чтобы запустить задание. Это подготовит компьютеры.

    подготовка компьютеров

  6. Индикатор выполнения появится в нижней части окна HLK Studio. После завершения процесса в столбце Состояние тестового задания появится зеленая метка проверка. Если вместо этого в состоянии отображается красный "X", тестовое задание завершилось сбоем. Дополнительные сведения см. в разделе Устранение неполадок .

Выполнение этого процесса занимает около 10 минут. Если перезагрузка компьютеров занимает больше пяти минут, это может занять больше времени.

Создание кластера, пула носителей и виртуального диска

После подготовки компьютеров к тестам необходимо также настроить S2D перед запуском связанных тестов. Следующее задание создаст кластер, включит S2D и настроит пул и пространство.

Важно!

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

  1. На вкладке Тесты в HLK Studio выберите тестировать S2D — Настройка кластера хранилища и Выполнить выбрано, а затем укажите необходимые параметры и роли.

    1. В качестве значения параметра ClusterName введите имя кластера, который требуется создать. (Для последующих тестов потребуется указать то же имя кластера.)
    2. Вы также можете ввести IP-адрес в поле ClusterStaticIP , если кластеру назначен статический IP-адрес. В противном случае оставьте этот параметр пустым. Адрес будет назначен имени кластера.
    3. Оставьте другие параметры пустыми, если не указано иное.
    4. В раскрывающемся списке Роль должен быть выбран параметр PrimaryNode . Убедитесь, что в списке компьютеров установлен флажок узел, выбранный на вкладке Выбор . Кроме того:
      1. Выберите TestController в раскрывающемся списке Роль , а затем выберите контроллер тестирования из списка компьютеров.
      2. Выберите OtherNodes в раскрывающемся списке Роль , а затем в списке компьютеров выберите другие узлы в кластере.
      3. Перед продолжением убедитесь, что выбраны все компьютеры.
  2. Нажмите кнопку ОК , чтобы запустить задание. При этом создается кластер и настраивается S2D.

    Запуск задания s2d

  3. В нижней части окна HLK Studio появится индикатор выполнения. По завершении процесса в столбце Состояние тестового задания появится зеленая метка проверка. Если вместо этого в состоянии отображается красный значок "X", тестовое задание завершилось сбоем. Дополнительные сведения см. в разделе Устранение неполадок .

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

Выполнить тесты

Выполнение базовых проверочных тестов (BVT)

BVT выполняет два типа тестов:

  • Один тип теста перемещает общие тома кластера (CSV) поверх Локальные дисковые пространства между узлами, выполняя случайные операции ввода-вывода записи. Он также проверяет, что ввод-вывод не прерывается и что csv-файлы не завершаются сбоем.
  • Другой тип теста приводит к отключению узла путем остановки службы кластера, уничтожения службы кластера, вытеснения узла, корректного перезапуска компьютеров и ненормального перезапуска компьютеров. (Каждое действие нацелено на случайный узел.) Он также выполняет случайные операции ввода-вывода записи, предназначенные для соответствующего CSV-файла во время сбоев узлов, и проверяет, что операции ввода-вывода не завершаются сбоем.

Чтобы выполнить эти тесты в HLK, выполните указанные ниже действия.

  1. На вкладке Тесты выберите тестовые тесты S2D — Базовые тесты проверки и Выполнить выбранные, а затем введите необходимые параметры:

    1. В поле Параметра ClusterName введите имя кластера. Это должно быть то же имя, которое вы указали ранее для настройки кластера.
    2. Не изменяйте и не заполняйте другие параметры, если не указано иное.
    3. В раскрывающемся списке Роль должен быть выбран параметр PrimaryNode . Убедитесь, что в списке компьютеров под ним установлен флажок узел, выбранный на вкладке Выбор . Кроме того:
      1. Выберите TestController в раскрывающемся списке Роль , а затем выберите контроллер тестирования из списка компьютеров.
      2. Выберите OtherNodes в раскрывающемся списке Роль , а затем выберите остальные узлы в кластере.
      3. Перед продолжением убедитесь, что выбраны все компьютеры.
  2. Нажмите кнопку ОК , чтобы запустить задание. При этом будут запущены BVT.

    run bvts

  3. В нижней части окна HLK Studio появится индикатор выполнения. По завершении процесса в столбце Состояние тестового задания появится зеленая метка проверка. Если вместо этого в состоянии отображается красный значок "X", тестовое задание завершилось сбоем. Дополнительные сведения см. в разделе Устранение неполадок .

Выполнение этого задания обычно занимает от 30 до 60 минут. Для предварительных выпусков ожидаемая скорость проходов для BVT составляет не менее 80 процентов.

Выполнение нагрузочных тестов

Нагрузочные тесты вызывают повторяющиеся и случайные сбои узлов (путем остановки или уничтожения службы кластера). Они могут привести к сбою нескольких узлов, если это допускается конфигурацией. Во время сбоев узлов тест выполняет несколько потоков ввода-вывода из нескольких узлов, предназначенных для соответствующего CSV-файла. (Каждый поток выполняет последовательное или случайное чтение и запись с проверкой чтения данных.)

Чтобы выполнить эти тесты, выполните указанные ниже действия.

  1. На вкладке Тесты в HLK Studio выберите тестовые S2D — Стресс-тесты и Выполнить выбранные, а затем введите необходимые параметры:

    1. В поле Параметра ClusterName введите имя кластера. Это должно быть то же имя, которое вы указали ранее для настройки кластера.
    2. Не изменяйте и не заполняйте другие параметры, если не указано иное.
    3. В раскрывающемся списке Роль должен быть выбран параметр PrimaryNode . В списке компьютеров под ним убедитесь, что установлен флажок узел, выбранный на вкладке Выбор . Кроме того:
      1. Выберите TestController в раскрывающемся списке Роль , а затем выберите контроллер тестирования из списка компьютеров.
      2. Выберите OtherNodes в раскрывающемся списке Роль , а затем выберите остальные узлы в кластере.
      3. Перед продолжением убедитесь, что выбраны все компьютеры.
  2. Нажмите кнопку ОК , чтобы запустить задание. При этом выполняется нагрузочные тесты.

    выполнение нагрузочных тестов

  3. В нижней части окна HLK Studio появится индикатор выполнения. По завершении процесса в столбце Состояние тестового задания появится зеленая метка проверка. Если вместо этого в состоянии отображается красный значок "X", тестовое задание завершилось сбоем. Дополнительные сведения см. в разделе Устранение неполадок .

Для предварительных выпусков ожидаемая скорость прохождения нагрузочных тестов составляет не менее 60 процентов. Выполнение этого тестового задания с параметрами по умолчанию обычно занимает от 45 минут до часа. Однако после однократной передачи с параметрами по умолчанию рекомендуется снова запустить его с более длительным временем выполнения, указав большее значение для TestRunTime. (Это указывает время выполнения ядра в секундах; обычно задание выполняется на 15–30 минут дольше, чем это из-за тестовой установки и очистки.) Это задание поддерживает время выполнения до 24 часов.

Устранение неполадок

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

Получение журналов тестирования

  1. Перейдите на вкладку Результаты в HLK Studio , когда находитесь в том же проекте S2D, где выполнялись тесты.

  2. Разверните тест, который вы устраняете, выбрав треугольник слева от имени теста.

  3. Если вы выполнили тест несколько раз, появится несколько результатов. Каждый результат отображает метку времени и определяет компьютер, на котором она была запущена. Щелкните правой кнопкой мыши результат, который вы устраняете, и выберите Дополнительные файлы>Показать все. Откроется окно в проводник, содержащее журналы тестирования и связанные журналы.Показать все журналы тестирования

  4. Имена файлов журналов тестирования начинаются с "TST-". Если в тестовом задании было выполнено несколько тестовых задач, возможно, имеется несколько файлов журнала тестирования. Например, у BVT может быть одна тестовая задача, которая выполняет перемещение CSV, и другая задача, которая выполняет сбои единицы масштабирования хранилища (SSU). (Из-за топологии хранилища с прямым подключением каждый узел и его хранилище считаются одним SSU.) Имя варианта указано в имени файла (наряду с Calabria, кодового имени для Локальные дисковые пространства).

    Имена файлов журнала тестирования

  5. Если имеется несколько файлов журнала тестирования, чтобы быстро узнать, какая задача завершилась сбоем, сначала разверните результат, чтобы отображались его задачи. Затем можно найти задачи с красным знаком "X". сбой теста

В предыдущем примере значки для задач указывают на то, что сбой проверки ввода-вывода с перемещением CSV (отображается только красное "X"). Они также указывают на то, что проверка ввода-вывода с ошибкой SSU не была запущена и вместо этого пропущена (отображается красный значок X над изогнутыми стрелками) из-за предыдущего сбоя.

После открытия файла журнала тестирования в текстовом редакторе выполните поиск по слову "SEV2", чтобы узнать, не сбой ли тест, и если да, то почему. В следующем примере видно, что после восстановления стойки пространство находится в неработоспособном состоянии. Дополнительные сведения об этом сбое см. в разделе Распространенные известные проблемы.

1940.1404 2015/01/09-16:36:14.867 [INFO] 0 : [TST]Space ID: 19CFCDFCC19EB54AAA780436B2B1D859 Идентификатор пула: 5D12DF6A5D4DB444AA3407AFA5749578 Понятное имя: TestSpace Является ли подключение вручную? Да Является ли кластеризованным? Да Тип устойчивости: 2 Тип подготовки: 2 Количество копий: 3 Количество столбцов: 1 Отказоустойчивость: 2 Работоспособность: 1 (предупреждение) Состояние: 11 (InService/повторное создание) Присоединено на узле: RR1FSC2623N05-1 Видимые на узлах: RR1FSC2623N05-1 RR1FSC2623N05-2 RR1FSC2623N28-1 RR1FSC2623N28-2 Диски, используемые в этом пространстве: [base\cluster\testsrc\common\storagewrapper\swvirtualdisk.cpp@66: ctsw::SWVirtualDisk::QuerySpInfo()] [orchestrator.cpp@192]

Ошибка: 1940.1404 2015/01/09-16:36:14.867 [ SEV2] 0 : [TST]Status=-2147418113(8000FFFFH) 'CalabriaBVT::VerifyIOWithRackFailure' — непредвиденное поведение: пространство не находится в работоспособном состоянии после восстановления стойки. [base\cluster\testsrc\calabria\calabriabvt\calabriabvt.cpp@1359 CalabriaBVT::VerifyIOWithRackFailure()] [calabriabvt.cpp@1379]

1940.1404 2015/01/09-16:36:14.867 [INFO] 0 : [TST] Сообщение для 2147549183 ошибок (0x8000ffff): Катастрофический сбой [wttlog.cpp@1237]

Ошибка: TAEF: 'TerminateOnFirstFailure' set — игнорируются все следующие тесты и попытка корректно завершить работу.

EndGroup: CalabriaBVT::VerifyIOWithRackFailure [Failed]

Ошибка: 1940.1404 2015/01/09-16:36:14.867 [SEV2] 0 : [TST]Status=-2147418113(8000FFFFH) 'CalabriaBVT::VerifyIOWithRackFailure' — непредвиденное поведение: пространство не находится в работоспособном состоянии после восстановления стойки. [base\cluster\testsrc\calabria\calabriabvt\calabriabvt.cpp@1359 CalabriaBVT::VerifyIOWithRackFailure()] [calabriabvt.cpp@1379]

Пример выходных данных нагрузочных тестов для этой проблемы:

1148.035C 2015/01/12-14:41:10.489 [INFO] 0 : [TST]Ожидание, пока все пространства станут работоспособными. Space 19CFCDFCC19EB54AAA780436B2B1D859 состояние InService/Regenerating [calabriastress.cpp@938]

Ошибка: 1148.035C 2015/01/12-14:41:10.489 [SEV2] 0 : [TST]Status=258(102H) Сбой проверки: не все пробелы достигли работоспособного состояния в течение времени ожидания 1200000 мс. Может продолжать ждать до истечения времени ожидания. [calabriastress.cpp@962]

1148.035C 2015/01/12-14:41:10.505 [INFO] 0 : [TST] Сообщение об ошибке 258 (0x102): время ожидания истекло. [wttlog.cpp@1237]

Получение журналов диагностики кластера и хранилища

Чтобы получить журналы диагностики кластера и хранилища для результата сбоя, выполните следующие действия:

  1. Разверните результат сбоя, чтобы отображались его тестовые задачи.

  2. Щелкните правой кнопкой мыши задачу RunJob-Generate cluster and storage diagnostic logs (Создать журналы диагностики кластера и хранилища) и выберите Пункт Показать все журналы> задач. Откроется окно в проводник, содержащее журналы диагностики кластера и хранилища. Эти журналы могут содержать дополнительные сведения о том, почему тест завершился сбоем.

    Отображение журналов задач

Отправка журналов в корпорацию Майкрософт для анализа сбоев теста

Если вам нужно отправить журналы в корпорацию Майкрософт для получения помощи в анализе сбоев теста, инструкции по созданию см. в разделе Упаковка результатов . Пакет результатов HLKX. Этот пакет будет содержать соответствующие журналы, созданные и собранные тестами, и поможет в анализе сбоев.

Распространенные известные проблемы

Наиболее распространенная причина сбоев тестирования заключается в том, что один или несколько пробелов занимают слишком много времени для повторного создания данных (в состоянии обслуживания или повторного создания в течение слишком длительного времени) после того, как узел или узлы были сбиты и восстановлены. Неравномерное использование хранилища может привести к превышению времени ожидания повторного создания и сбою тестов. Если эта проблема возникает часто, возможно, у вашей конфигурации есть узкие места в производительности. В этом случае рекомендуется проверка хранилище, производительность сети и удаленный прямой доступ к памяти (RDMA).

Пример выходных данных BVT для этой проблемы:

1940.1404 2015/01/09-16:36:14.867 [INFO] 0 : [TST]Space ID: 19CFCDFCC19EB54AAA780436B2B1D859 Идентификатор пула: 5D12DF6A5D4DB444AA3407AFA5749578 Понятное имя: TestSpace Является ли подключение вручную? Да Является ли кластеризованным? Да Тип устойчивости: 2 Тип подготовки: 2 Количество копий: 3 Количество столбцов: 1 Отказоустойчивость: 2 Работоспособность: 1 (предупреждение) Состояние: 11 (InService/повторное создание) Присоединено на узле: RR1FSC2623N05-1 Видимые на узлах: RR1FSC2623N05-1 RR1FSC2623N05-2 RR1FSC2623N28-1 RR1FSC2623N28-2 Диски, используемые в этом пространстве: [base\cluster\testsrc\common\storagewrapper\swvirtualdisk.cpp@66: ctsw::SWVirtualDisk::QuerySpInfo()] [orchestrator.cpp@192]

Ошибка: 1940.1404 2015/01/09-16:36:14.867 [SEV2] 0 : [TST]Status=-2147418113(8000FFFFH) 'CalabriaBVT::VerifyIOWithRackFailure' — непредвиденное поведение: пространство не находится в работоспособном состоянии после восстановления стойки. [base\cluster\testsrc\calabria\calabriabvt\calabriabvt.cpp@1359 CalabriaBVT::VerifyIOWithRackFailure()] [calabriabvt.cpp@1379]

Пример выходных данных нагрузочных тестов для этой проблемы:

1148.035C 2015/01/12-14:41:10.489 [INFO] 0 : [TST]Ожидание, пока все пространства станут работоспособными. Space 19CFCDFCC19EB54AAA780436B2B1D859 состояние InService/Regenerating [calabriastress.cpp@938]

Ошибка: 1148.035C 2015/01/12-14:41:10.489 [SEV2] 0 : [TST]Status=258(102H) Сбой проверки: не все пробелы достигли работоспособного состояния в течение времени ожидания 1200000 мс. Может продолжать ждать до истечения времени ожидания. [calabriastress.cpp@962]

1148.035C 2015/01/12-14:41:10.505 [INFO] 0 : [TST] Сообщение об ошибке 258 (0x102): время ожидания истекло. [wttlog.cpp@1237]

Упаковка результатов

После успешного завершения всех тестов, пока вы все еще находитесь в том же проекте в HLK Studio, перейдите на вкладку Пакет и нажмите кнопку Создать пакет в правом нижнем углу. Когда появится запрос на параметры подписывания, выберите Не подписывать. Сохраните результаты в файл. Этот файл необходимо включить в любую отправку сертификатов S2D.

параметры подписывания

Термины

Термин Описание
BVT Базовые проверочные тесты
CSV Общие тома кластера
DAS Непосредственно подключенное хранилище
HCK (Windows) Комплект сертификации оборудования, предыдущий комплект для сертификационного тестирования
HLK (Windows) Hardware Lab Kit — тестовая платформа, используемая для проверки конфигураций оборудования для Windows. Он также используется для выполнения тестов, описанных в этом разделе.
HLKC Контроллер HLK— сервер, который администратор использует для выполнения тестов и управления другими компьютерами. Он не должен быть частью кластера.
TC Контроллер тестирования— сервер, на который выполняются некоторые тесты для целевого кластера. Он не должен быть частью кластера.
S2D Дисковые пространства прямого подключения

Дополнительные ресурсы

Windows Hardware Lab Kit