Gérer les soumissions de préprods

Utilisez les méthodes suivantes dans les API de matériel Microsoft pour gérer les soumissions de préprod et pour obtenir vos packages de pilotes signés par Microsoft pour l’utilisation de tests de préproduction. Pour une présentation des API matérielles Microsoft, y compris les conditions préalables à l’utilisation de l’API, consultez API de tableau de bord matériel.

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

Méthodes de gestion des soumissions de produits

Méthode URI Description
PUT https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/ Envoyer un package pour la signature préprod
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId} Obtenir les métadonnées de package pour une soumission de préprod
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets Obtenir les ressources disponibles pour une soumission de préprod
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId} Obtenir des métadonnées de ressource pour une ressource unique
GET https://manage.devcenter.microsoft.com/v2.0/my/hardware/preprod/packages/{packageId}/assets/{assetId}/download Télécharger une ressource pour une soumission de préprod donnée

Ressource de métadonnées de package

id Identificateur unique du package
signingStatus
  • NotStarted
  • Traitement en cours
  • Opération réussie
  • Échec
Erreur Erreurs rencontrées pendant le traitement du package

Ressource de métadonnées de ressource

id Identificateur unique de la ressource
packageID Identificateur du package auquel appartient cette ressource
assetType Type de ressource disponible en téléchargement. Les valeurs possibles sont les suivantes :
  • « SignedFilesZip » : package signé par Microsoft.
contentHash Hachage SHA-256 du contenu

Créer et envoyer un produit pour signature

  1. Si vous ne l’avez pas déjà fait, remplissez tous les prérequis pour les API matérielles Microsoft.

  2. Obtenez un jeton d’accès d’ID Microsoft Entra. Vous devez passer ce jeton d’accès aux méthodes de l’API de soumission du Microsoft Store. Une fois que vous avez récupéré le jeton d’accès, vous avez 60 minutes pour l’utiliser avant qu’il n’expire. Une fois le jeton arrivé à expiration, vous pouvez en obtenir un nouveau.

  3. Créez une soumission en exécutant la méthode suivante dans l’API matériel Microsoft. Le corps de la demande doit contenir votre flux de package sous la forme « application/octet-stream ». Cela crée une nouvelle soumission de préprod en cours avec HDC. Assurez-vous que le package est signé de la même façon que pour les soumissions d’attestation avant le chargement.

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

    Le corps de la réponse contient l’ID du package qui sera le packageId pour les étapes suivantes.

    {
        "id": "string",
        "etag": "string",
        "lastModified": "2022-03-28T23:31:17.014Z",
        "signingStatus": "NotStarted",
        "error": 
        {
            "message": "string"
        }
    }
    
  4. Vérifiez le status en exécutant la méthode suivante pour obtenir les métadonnées du package.

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

    Pour confirmer le package status, passez en revue la valeur signingStatus dans le corps de la réponse. Cette valeur doit passer de Traitement à Réussi si la soumission réussit, ou à Échec en cas d’erreurs dans la demande. En cas d’erreurs, le champ d’erreur contient d’autres détails sur l’erreur.

    Si signStatus est Réussi , un package signé doit être disponible dans le champ des ressources.

    {
    "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. Téléchargez votre package préprod signé à l’aide de la méthode suivante pour télécharger une ressource une fois que signingStatus a réussi. Utilisez l’ID de la ressource signée à partir des métadonnées récupérées à l’étape 4 comme assetId dans la requête. Le package téléchargé inclut les fichiers de pilote signés sous forme de fichier zip.

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

Exemple d’envoi de package pour le code de signature préprod

    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();