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 des données de contexte. Pour plus d'informations, consultez la section Notes qui suit.

Remarques

Cette structure est l’un des paramètres d’appel de la fonction DrmForwardContentToDeviceObject . La structure contient les informations dont la fonction a besoin pour envoyer une KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDdemande set-property à 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 demande de propriété, la fonction DrmForwardContentToDeviceObject copie le membre FileObject dans le champ FileObject dans 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 sur le 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 convenue 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 l’KSPROPERTY_DRMAUDIOSTREAM_CONTENTID demande set-property (le membre Context de la structure KSP_DRMAUDIOSTREAM_CONTENTID). Le membre Context peut contenir n’importe quelle valeur dont la signification est convenue 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 la broche KS à laquelle la fonction DrmForwardContentToDeviceObject envoie la demande de propriété. En d’autres termes, le membre Context 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 du 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 des appareils.
  • DRMFORWARD. FileObject peut avoir la valeur 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 plus d’informations générales sur la gestion des droits numériques, consultez Digital Rights Management.

Configuration requise

Condition requise Valeur
En-tête drmk.h (inclure Drmk.h)

Voir aussi

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2 ::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject