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


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

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

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

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

Method URI Description
PUT https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/ Отправка пакета для предварительной подписи
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId} Получение метаданных пакета для предварительной отправки
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets Получение доступных ресурсов для предварительной отправки
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId} Получение метаданных ресурса для одного ресурса
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId}/download Скачивание ресурса для заданной предварительной отправки

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

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

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

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

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

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

  2. Получите маркер доступа к идентификатору Microsoft Entra. Этот маркер доступа необходимо передать методам в 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 в тексте ответа. Это значение должно измениться с "Обработка " на "Успешно" в случае успешной отправки или на "Сбой ", если в запросе возникают ошибки. Если возникают ошибки, поле ошибки содержит дополнительные сведения об ошибке.

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

    {
    "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. Скачайте готовый подписанный пакет с помощью следующего метода, чтобы скачать ресурс после подписыванияStatus успешно. Используйте идентификатор подписанного ресурса из метаданных, полученных на шаге 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();