Partager via


Fonction DRMGetServiceLocation (msdrm.h)

[Le Kit de développement logiciel (SDK) AD RMS tirant parti des fonctionnalités exposées par

le client dans Msdrm.dll peut être utilisé dans Windows Server 2008, Windows Vista, Windows Server 2008 R2, Windows 7, Windows Server 2012 et Windows 8. Il peut être modifié ou

non disponible dans les versions suivantes. Utilisez plutôt active Directory Rights Management Services SDK 2.1.

qui tire parti des fonctionnalités exposées par le client dans Msipc.dll.]

La fonction DRMGetServiceLocation récupère l’URL d’un serveur qui peut effectuer différents services de gestion des droits, tels que l’activation ou l’acquisition de licences.

Syntaxe

DRMEXPORT HRESULT UDAPICALL DRMGetServiceLocation(
  [in, optional] DRMHSESSION hClient,
  [in]           UINT        uServiceType,
  [in]           UINT        uServiceLocation,
  [in]           PWSTR       wszIssuanceLicense,
  [in, out]      UINT        *puServiceURLLength,
  [out]          PWSTR       wszServiceURL
);

Paramètres

[in, optional] hClient

Handle pour une session cliente. Le handle peut être obtenu à l’aide de la fonction DRMCreateClientSession . Le handle est facultatif et peut être NULL.

[in] uServiceType

Spécifie le type de service souhaité. Il peut s’agir de l’une des valeurs suivantes.

DRM_SERVICE_TYPE_ACTIVATION

Récupérez le service d’activation de l’ordinateur.

DRM_SERVICE_TYPE_CERTIFICATION

Récupérez le service de certificat du compte de droits .

DRM_SERVICE_TYPE_CLIENTLICENSOR

Récupérer le service de certificats de licence client (pour la publication hors connexion).

DRM_SERVICE_TYPE_PUBLISHING

Récupérez le service de signature de licence d’émission (pour la publication en ligne).

DRM_SERVICE_TYPE_SILENT

Supprime l’apparence de toutes les boîtes de dialogue d’interface utilisateur lorsque la demande est effectuée pour récupérer l’emplacement du service.

[in] uServiceLocation

Spécifie où trouver le serveur AD RMS. Il peut s’agir de l’une des valeurs suivantes.

DRM_SERVICE_LOCATION_ENTERPRISE

Recherchez un serveur AD RMS dans l’entreprise.

DRM_SERVICE_LOCATION_INTERNET

Recherchez un serveur AD RMS sur Internet.

[in] wszIssuanceLicense

Pointeur vers une chaîne Unicode terminée par un caractère Null qui contient une licence d’émission signée. Ce paramètre peut être NULL. Pour plus d'informations, consultez la section Notes.

[in, out] puServiceURLLength

Pointeur vers un UINT qui, lors de l’entrée, contient la taille, en caractères, de la mémoire tampon wszServiceURL . Cette valeur inclut le caractère null de fin.

Une fois la fonction retournée, cet UINT contient le nombre de caractères, y compris le caractère null de fin, qui ont été copiés dans la mémoire tampon wszServiceURL .

Si wszServiceURL a la valeur NULL, cet UINT reçoit le nombre de caractères, y compris le caractère null de fin, requis pour l’URL du serveur.

[out] wszServiceURL

Pointeur vers une mémoire tampon de chaîne Unicode qui reçoit l’URL du serveur. Le paramètre puServiceURLength contient la taille, en caractères, y compris le caractère null de fin, de cette mémoire tampon.

Si ce paramètre a la valeur NULL, puServiceURLength reçoit le nombre de caractères, y compris le caractère null de fin, requis pour l’URL du serveur.

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles incluent, sans s’y limiter, celles de la liste suivante. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Notes

La découverte de l’URL du service dépend de l’interaction entre les paramètres uServiceType, uServiceLocation et wszIssuanceLicense de la manière suivante.

Si vous définissez le paramètre uServiceType sur DRM_SERVICE_TYPE_CERTIFICATION ou pour DRM_SERVICE_TYPE_ACTIVATION et :

  • Vous transmettez une licence d’émission signée au paramètre wszIssuanceLicense . L’URL de licence est récupérée à partir de la licence d’émission signée, un appel est effectué vers le serveur de licences pour découvrir l’URL de certification qui correspond à l’utilisateur appelant, et la fonction retourne l’URL de certification.
  • Vous définissez le paramètre wszIssuanceLicense sur NULL et le paramètre uServiceLocation sur DRM_SERVICE_LOCATION_INTERNET, la fonction retourne un code d’erreur de E_DRM_USE_DEFAULT.
  • Vous définissez le paramètre wszIssuanceLicense sur NULL et le paramètre uServiceLocation sur DRM_SERVICE_LOCATION_ENTERPRISE, l’URL est récupérée à partir du Registre ou d’Active Directory (AD).

Si vous définissez le paramètre uServiceType sur DRM_SERVICE_TYPE_PUBLISHING ou pour DRM_SERVICE_TYPE_CLIENTLICENSOR et :

  • Vous définissez le paramètre uServiceLocation sur DRM_SERVICE_LOCATION_INTERNET, le service Passport est pris en charge pour récupérer une URL de service à partir du web.
  • Vous définissez le paramètre uServiceLocation sur DRM_SERVICE_LOCATION_ENTERPRISE et le paramètre wszIssuanceLicense sur NULL. L’URL du service de licence est récupérée à partir du Registre et retournée par l’appel de fonction. Ou, en l’absence d’une entrée de Registre, l’URL de certification est récupérée à partir du point de connexion de service dans Active Directory (AD), un appel est effectué vers le serveur de certification pour découvrir l’URL du service de licence, et la fonction retourne l’URL du service de licence.
  • Vous définissez le paramètre uServiceLocation sur DRM_SERVICE_LOCATION_ENTERPRISE et transmettez une licence d’émission signée au paramètre wszIssuanceLicense , la fonction tente de récupérer l’URL de licence configurée à partir du Registre. Si cette tentative échoue, l’URL de licence est récupérée à partir de la licence d’émission signée et un appel est effectué vers le serveur de licences pour découvrir l’URL de licence spécifique de l’utilisateur.

Dans les cas précédents où la fonction effectue une recherche dans le Registre, vous pouvez forcer votre application à rechercher une URL spécifique en ajoutant la clé de Registre appropriée dans la liste suivante, ainsi que l’URL, en tant que valeur de chaîne appelée (par défaut). N’ajoutez pas la page .asmx à l’URL.

Clé de Registre Description
  • Application 32 bits sur un ordinateur 32 bits
  • Application 64 bits sur un ordinateur 64 bits
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDRM\ServiceLocation\Activation
  • Application 32 bits sur un ordinateur 64 bits
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDRM\ServiceLocation\Activation
Pour RMS v1.0, définissez cette valeur de Registre sur l’URL d’un service d’activation d’ordinateur. Pour utiliser cette valeur pour la certification, définissez-la sur la racine virtuelle de certification de l’entreprise.

À compter de RMS v1.0 SP1, cette valeur peut uniquement être utilisée pour découvrir un service de certification. Par conséquent, définissez-le sur l’URL de la racine virtuelle du compte de droits, http:// ServerName/_wmcs/certification.

  • Application 32 bits sur un ordinateur 32 bits
  • Application 64 bits sur un ordinateur 64 bits
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDRM\ServiceLocation\EnterprisePublishing
  • Application 32 bits sur un ordinateur 64 bits
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDRM\ServiceLocation\EnterprisePublishing
Définissez cette valeur de Registre sur l’URL d’un service qui signe des licences d’émission au sein d’un réseau d’entreprise.
  • Application 32 bits sur un ordinateur 32 bits
  • Application 64 bits sur un ordinateur 64 bits
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDRM\ServiceLocation\CloudPublishing
  • Application 32 bits sur un ordinateur 64 bits
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDRM\ServiceLocation\CloudPublishing
Définissez cette valeur de Registre sur l’URL d’un service qui signe des licences d’émission sur Internet.
 

L’application est chargée d’allouer et de libérer de la mémoire pour les données récupérées. Pour trouver la taille de mémoire tampon requise, appelez la fonction avec NULL dans le paramètre wszServiceURL . La taille de la mémoire tampon vous est renvoyée via le paramètre puServiceURLength .

Pour obtenir un exemple de code de découverte de service, consultez OnlineSigning_GetServiceURL.cpp. Il n’existe aucune découverte de service pour l’acquisition de licences utilisateur final , car ces informations peuvent être stockées dans la licence d’émission utilisée pour acquérir la licence de l’utilisateur final.

Spécifications

   
Plateforme cible Windows
En-tête msdrm.h
Bibliothèque Msdrm.lib
DLL Msdrm.dll

Voir aussi

Fonctions AD RMS

DRMActivate

OnlineSigning_GetServiceURL.cpp