Управление предрелизными отправками

Используйте следующие методы в API оборудования Майкрософт для управления предварительными отправками и получения пакетов драйверов, подписанных корпорацией Майкрософт для предварительного производственного тестирования. Общие сведения об API оборудования Майкрософт, включая предварительные требования для использования API, см. в разделе API панели мониторинга оборудования.

https://manage.devcenter.microsoft.com/v2.0/my/hardware/products/

Методы управления отправкой продуктов

Метод УРИ Описание
ПОСТАВИТЬ https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/ Отправьте пакет для предварительной подписи
ПОЛУЧАЙ https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId} Получение метаданных пакета для предварительной отправки
ПОЛУЧАЙ https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets Получение доступных ресурсов для предварительной отправки
ПОЛУЧАЙ https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId} Получение метаданных для одного актива
ПОЛУЧАЙ https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId}/download Скачивание ресурса для заданной предварительной отправки

Ресурс метаданных пакета

Идентификатор Уникальный идентификатор пакета
статусПодписи
  • Не начато
  • Обработка
  • Удалось
  • Неудача
Ошибка Ошибки, возникающие во время обработки пакета

Ресурс метаданных актива

Идентификатор Уникальный идентификатор ресурса
идентификатор пакета Идентификатор пакета, к которому принадлежит этот ресурс
тип актива Тип ресурса, доступного для скачивания. Возможные значения:
  • "SignedFilesZip": пакет, подписанный корпорацией Майкрософт.
contentHash Хэш SHA-256 содержимого

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

  1. Если вы этого еще не сделали, выполните все предварительные требования для API оборудования Майкрософт.

  2. Получите токен доступа Microsoft Entra ID. Этот маркер доступа необходимо передать методам в API для отправки в Microsoft Store. После получения маркера доступа у вас есть 60 минут, чтобы использовать его до истечения срока действия. После истечения срока действия токена можно получить новый токен.

  3. Создайте новую отправку, выполнив следующий метод в API оборудования Майкрософт. Тело запроса должно содержать поток пакета в формате "application/octet-stream". При этом будет создана новая отправка предварительного тестирования, находящаяся в процессе выполнения, с HDC. Убедитесь, что пакет подписан так же, как и для подачи на аттестацию, перед загрузкой.

    PUT https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/
    

    Текст ответа содержит идентификатор пакета, который будет идентификатором пакета для последующих шагов.

    {
        "id": "string",
        "etag": "string",
        "lastModified": "2022-03-28T23:31:17.014Z",
        "signingStatus": "NotStarted",
        "error": 
        {
            "message": "string"
        }
    }
    
  4. Проверьте состояние, выполнив следующий метод, чтобы получить метаданные пакета.

    GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}
    

    Чтобы подтвердить состояние пакета, просмотрите значение signingStatus в тексте ответа. Это значение должно измениться с "Обработка " на "Успешно" в случае успешной отправки или на "Сбой ", если в запросе возникают ошибки. Если возникают ошибки, поле ошибки содержит дополнительные сведения об ошибке.

    Если статусПодписиУспешно выполнено, подписанный пакет должен быть доступен в поле активов.

    {
    "id": "string",
    "etag": "string",
    "lastModified": "2022-03-28T23:45:25.501Z",
    "signingStatus": "NotStarted",
    "error": {
        "message": "string"
    },
    "assets": [
        {
        "id": "string",
        "packageId": "string",
        "assetType": "string",
        "createdDate": "2022-03-28T23:45:25.501Z",
        "contentHash": "string"
        }
    ],
    "assetsContinuationToken": "string"
    }
    
  5. Скачайте предварительно подписанный пакет с помощью следующего метода, чтобы скачать средство после signingStatusУспех. Используйте идентификатор подписанного ресурса из метаданных, полученных на шаге 4 в качестве идентификатора ресурса в запросе. Скачанный пакет будет включать подписанные файлы драйверов в виде ZIP-файла.

    GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId}/download
    

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

    var httpClient = new HttpClient();
    httpClient.BaseAddress = new Uri(https://manage.devcenter.microsoft.com/v2.0/my/hardware/);
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("*/*"));

    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);

    var driverPackage = File.ReadAllBytes(@"C:\cabfile.cab");
    Task<HttpResponseMessage> response = httpClient.PutAsync("preprod/packages", new ByteArrayContent(driverPackage));
    var jsonResponse = response.Result.Content.ReadFromJsonAsync<object>().Result as JsonElement?;
    var packageId = jsonResponse?.GetProperty("id").ToString();