管理预生产提交
使用 Microsoft 硬件 API 中的以下方法来管理预生产提交并让驱动程序包由 Microsoft 签名以供预生产测试使用。 有关 Microsoft 硬件 API 的简介,包括使用该 API 的先决条件,请参阅硬件仪表板 API。
https://manage.devcenter.microsoft.com/v2.0/my/hardware/products/
管理产品提交的方法
方法 | 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} |
获取单个资产的资产元数据 |
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 硬件 API 中的以下方法创建新提交。 请求正文应以“application/octet-stream”的形式包含包流。 这将使用 HDC 创建一个新的正在进行的预生产提交。 确保在上传之前以与证明提交相同的方式对包进行签名。
PUT https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/
响应正文包含包的 id,它将作为后续步骤的 packageId。
{ "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 值。 如果提交成功,此值应从“正在处理”更改为“已成功”,如果请求中有错误,则此值应更改为“已失败”。 如果存在错误,error 字段将包含有关错误的更多详细信息。
如果 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" }
一旦 signingStatus 为“已成功”,就请使用以下方法下载预生产签名包。 将步骤 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();
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈