事前申請を管理する
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 |
|
エラー | パッケージの処理中に発生したエラー |
資産メタデータ リソース
ID | 資産の一意の識別子 |
---|---|
packageID | この資産が属するパッケージの識別子 |
assetType | ダウンロードできる資産の種類。 使用できる値:
|
contentHash | コンテンツの SHA-256 ハッシュ |
署名する製品を作成して送信します
まだ完了していない場合は、Microsoft ハードウェア API の前提条件をすべて完了してください。
Microsoft Entra ID アクセス トークンを取得する。 このアクセス トークンを Microsoft Store 申請 API のメソッドに渡す必要があります。 アクセス トークンを取得した後、アクセス トークンを使用できるのは、その有効期限が切れるまでの 60 分間です。 トークンの有効期限が切れたら新しいトークンを取得できます。
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" } }
パッケージ メタデータを取得する次のメソッドを実行して、状態を確認します。
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}
パッケージの状態を確認するには、応答本文の signingStatus の値を確認します。 この値が Processing から Succeeded (送信が成功した場合) または Failed (要求でエラーが発生した場合) に変わっています。 エラーがある場合は、errorフィールドにエラーの詳細が表示されます。
signingStatus が Succeeded の場合は、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" }
signingStatus が Succeeded になったら、資産をダウンロードする次のメソッドを使用して、事前に署名されたパッケージをダウンロードします。 手順 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();