Partager via


Structure DRMFORWARD (drmk.h)

La structure DRMFORWARD contient les informations dont le pilote système DRMK a besoin pour transférer un ID de contenu DRM à un appareil qui gère le contenu protégé.

Syntaxe

typedef struct tagDRMFORWARD {
  DWORD          Flags;
  PDEVICE_OBJECT DeviceObject;
  PFILE_OBJECT   FileObject;
  PVOID          Context;
} DRMFORWARD, *PDRMFORWARD;

Membres

Flags

Aucun bits d’indicateur n’est actuellement défini. Définissez ce membre sur zéro.

DeviceObject

Pointeur vers l’objet d’appareil, qui est une structure système de type DEVICE_OBJECT.

FileObject

Pointeur vers l’objet de fichier, qui est une structure système de type FILE_OBJECT.

Context

Pointeur vers les données de contexte. Pour plus d’informations, consultez la section Remarques suivante.

Remarques

Cette structure est l’un des paramètres d’appel de la fonction DrmForwardContentToDeviceObject. La structure contient les informations dont la fonction doit envoyer une demande de propriété set-property KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDà un pilote WDM.

Le pilote WDM gère l’appareil représenté par le membre DeviceObject. La fonction DrmForwardContentToDeviceObject envoie la demande de propriété à cet objet d’appareil.

Lors de la construction de l’IRP qui contient la requête de propriété, la fonction DrmForwardContentToDeviceObject copie le membre FileObject dans le champ FileObject à l’emplacement de la pile d’E/S du pilote dans l’IRP. Si le pilote WDM est un pilote KS (qui implémente tout ou partie d’un filtre KS), le membre FileObject représente l’épingle du filtre qui doit recevoir le flux contenant le contenu protégé. Pour un pilote non KS, les champs de contexte de la structure FILE_OBJECT peuvent contenir n’importe quelle valeur dont la signification est acceptée entre le pilote et l’appelant de la fonction DrmForwardContentToDeviceObject.

Le membre Context contient une valeur de contexte que la fonction DrmForwardContentToDeviceObject copie dans le descripteur de propriété de la requête set-property KSPROPERTY_DRMAUDIOSTREAM_CONTENTID (membre Context de la structure KSP_DRMAUDIOSTREAM_CONTENTID). Le membre Context peut contenir n’importe quelle valeur dont la signification est acceptée entre le pilote et l’appelant de la fonction DrmForwardContentToDeviceObject.

Par convention, si le module en aval est un filtre KS, le membre Context pointe vers un objet de fichier qui spécifie l’épingle KS à laquelle la fonction DrmForwardContentToDeviceObject envoie la requête de propriété. En d’autres termes, le Context membre pointe vers le même objet de fichier que le membre FileObject.

La structure DRMFORWARD est également utilisée par la fonction PcForwardContentToDeviceObject et la méthode IDrmPort2 ::ForwardContentToDeviceObject, qui sont d’autres points d’entrée pour la fonction DrmForwardContentToDeviceObject. Pour plus d’informations, consultez fonctions et interfaces DRM.

Lorsqu’un pilote audio transfère le contenu DRM à un pilote USB fourni par le système, les conditions suivantes s’appliquent :

  • DRMFORWARD. DeviceObject doit être placé en haut de la pile d’appareils.
  • DRMFORWARD. Le FileObject peut être NULL, car la pile USB n’utilise pas IO_STACK_LOCATION. FileObject.
  • DRMFORWARD. Le contexte doit être défini sur une valeur USBD_PIPE_HANDLE qui correspond au canal utilisé par le pilote audio.

Pour obtenir des informations générales sur la gestion des droits numériques, consultez Digital Rights Management.

Exigences

Exigence Valeur
d’en-tête drmk.h (include Drmk.h)

Voir aussi

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2 ::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject