事前申請を管理する

Microsoft Hardware API の以下のメソッドを使用して事前申請を管理し、運用前テストで使用するためにドライバー パッケージが Microsoft によって署名されるようにします。 API を使用するための前提条件など、Microsoft Hardware API の概要については、「Hardware dashboard API (ハードウェア ダッシュボード API)」をご覧ください。

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

製品の申請を管理する方法

Method URI 説明
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} 1 つの資産の資産メタデータを取得します
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId}/download 特定の事前申請用の資産をダウンロードします

パッケージ メタデータ リソース

ID パッケージの一意識別子
signingStatus
  • NotStarted
  • 処理
  • 成功しました
  • 失敗
エラー パッケージの処理中に発生したエラー

資産メタデータ リソース

ID 資産の一意の識別子
packageID この資産が属するパッケージの識別子
assetType ダウンロードできる資産の種類。 使用できる値:
  • "SignedFilesZip": Microsoft によって署名されたパッケージ。
contentHash コンテンツの SHA-256 ハッシュ

署名する製品を作成して送信します

  1. まだ完了していない場合は、Microsoft ハードウェア API の前提条件をすべて完了してください。

  2. Microsoft Entra ID アクセス トークンを取得する このアクセス トークンを Microsoft Store 申請 API のメソッドに渡す必要があります。 アクセス トークンを取得した後、アクセス トークンを使用できるのは、その有効期限が切れるまでの 60 分間です。 トークンの有効期限が切れたら新しいトークンを取得できます。

  3. Microsoft Hardware API の次のメソッドを実行して、新しい申請を作成します。 要求本文には、パッケージ ストリームを "application/octet-stream" として含める必要があります。 これにより、HDC を使用した新しい進行中の事前申請が作成されます。 アップロードする前に、構成証明の申請と同じ方法でパッケージが署名されていることを確認します。

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

    応答本文には、後続の手順の packageId となるパッケージの ID が含まれています。

    {
        "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 の値を確認します。 この値が Processing から Succeeded (送信が成功した場合) または Failed (要求でエラーが発生した場合) に変わっています。 エラーがある場合は、errorフィールドにエラーの詳細が表示されます。

    signingStatusSucceeded の場合は、assets フィールドに署名済みのパッケージがあります。

    {
    "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. signingStatusSucceeded になったら、資産をダウンロードする次のメソッドを使用して、事前に署名されたパッケージをダウンロードします。 手順 4 で取得したメタデータの署名済み資産の ID を、要求の assetId として使用します。 ダウンロードしたパッケージには、署名されたドライバー ファイルが 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();