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
DrmForwardContentToDeviceObject
IDrmPort2 ::ForwardContentToDeviceObject