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