Struttura DRMFORWARD (drmk.h)
La struttura DRMFORWARD contiene le informazioni necessarie al driver di sistema DRMK per inoltrare un ID contenuto DRM a un dispositivo che gestisce il contenuto protetto.
Sintassi
typedef struct tagDRMFORWARD {
DWORD Flags;
PDEVICE_OBJECT DeviceObject;
PFILE_OBJECT FileObject;
PVOID Context;
} DRMFORWARD, *PDRMFORWARD;
Membri
Flags
Non sono attualmente definiti bit di flag. Impostare questo membro su zero.
DeviceObject
Puntatore all'oggetto dispositivo, ovvero una struttura di sistema di tipo DEVICE_OBJECT.
FileObject
Puntatore all'oggetto file, ovvero una struttura di sistema di tipo FILE_OBJECT.
Context
Puntatore ai dati di contesto. Per altre informazioni, vedere la sezione Osservazioni seguente.
Osservazioni
Questa struttura è uno dei parametri di chiamata della funzione DrmForwardContentToDeviceObject. La struttura contiene le informazioni necessarie alla funzione per inviare una richiesta di proprietà set KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDa un driver WDM.
Il driver WDM gestisce il dispositivo rappresentato dal membro DeviceObject. La funzione DrmForwardContentToDeviceObject invia la richiesta di proprietà a questo oggetto dispositivo.
Quando si costruisce l'IRP contenente la richiesta di proprietà, la funzione DrmForwardContentToDeviceObject copia il membro FileObject nel campo FileObject nel percorso dello stack I/O del driver. Se il driver WDM è un driver KS (che implementa tutto o parte di un filtro KS), il membro FileObject rappresenta il pin sul filtro che deve ricevere il flusso contenente il contenuto protetto. Per un driver non KS, i campi di contesto nella struttura FILE_OBJECT possono contenere qualsiasi valore il cui significato è concordato tra il driver e il chiamante della funzione DrmForwardContentToDeviceObject.
Il membro Context contiene un valore di contesto copiato dalla funzione DrmForwardContentToDeviceObject nel descrittore di proprietà della richiesta di proprietà set KSPROPERTY_DRMAUDIOSTREAM_CONTENTID (membro Context della struttura KSP_DRMAUDIOSTREAM_CONTENTID). Il membro Context può contenere qualsiasi valore il cui significato è concordato tra il driver e il chiamante della funzione DrmForwardContentToDeviceObject.
Per convenzione, se il modulo downstream è un filtro KS, il Context membro punta a un oggetto file che specifica il pin KS a cui la funzione DrmForwardContentToDeviceObject invia la richiesta di proprietà. In altre parole, il membro Context punta allo stesso oggetto file del membro FileObject.
La struttura DRMFORWARD viene usata anche dalla funzione PcForwardContentToDeviceObject e dal metodo IDrmPort2::ForwardContentToDeviceObject, che sono punti di ingresso alternativi per la funzione DrmForwardContentToDeviceObject. Per altre informazioni, vedere funzioni DRM e interfacce.
Quando un driver audio inoltra il contenuto DRM a un driver USB fornito dal sistema, si applicano le condizioni seguenti:
- DRMFORWARD. DeviceObject deve essere posizionato nella parte superiore dello stack di dispositivi.
- DRMFORWARD. FileObject può essere NULL perché lo stack USB non usa IO_STACK_LOCATION. FileObject.
- DRMFORWARD. Il contesto deve essere impostato su un valore USBD_PIPE_HANDLE che corrisponde alla pipe usata dal driver audio.
Per informazioni generali su DRM, vedere Digital Rights Management.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | drmk.h (include Drmk.h) |
Vedere anche
DrmForwardContentToDeviceObject
IDrmPort2::ForwardContentToDeviceObject