Struttura DRMFORWARD (drmk.h)

La struttura DRMFORWARD contiene le informazioni necessarie per il 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;

Members

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 ulteriori informazioni, vedere la sezione Osservazioni successiva.

Commenti

Questa struttura è uno dei parametri di chiamata della funzione DrmForwardContentToDeviceObject . La struttura contiene le informazioni necessarie alla funzione per inviare una richiesta di KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDproprietà set a 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 che contiene la richiesta di proprietà, la funzione DrmForwardContentToDeviceObject copia il membro FileObject nel campo FileObject nel percorso dello stack I/O del driver in IRP. 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à KSPROPERTY_DRMAUDIOSTREAM_CONTENTID set-property (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 membro Context 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 e interfacce DRM.

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 utilizzata dal driver audio.

Per informazioni generali su DRM, vedere Digital Rights Management.

Requisiti

Requisito Valore
Intestazione drmk.h (include Drmk.h)

Vedi anche

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject