Compartilhar via


Funções e interfaces de DRM

The system driver components Drmk.sys and Portcls.sys implement a collection of DRM functions and interfaces that drivers use for managing the digital rights of kernel-streaming audio content. The Drmk.sys component implements a number of DrmXxx functions, and Portcls.sys implements a DRM-specific set of PcXxx functions, and also the IDrmPort and IDrmPort2 interfaces.

As seguintes funções DRM estão disponíveis:

DrmAddContentHandlers

Fornece ao sistema uma interface de driver que consiste em uma lista de funções para lidar com conteúdo protegido. DrmCreateContentMixed

Cria uma ID de conteúdo drm para identificar um fluxo de áudio KS que contém conteúdo misto de vários fluxos de entrada. DrmDestroyContent

Exclui uma ID de conteúdo drm. DrmForwardContentToDeviceObject

Autentica um driver e envia a ele a ID de conteúdo drm e os direitos de conteúdo atribuídos pelo sistema a um fluxo que contém conteúdo protegido. DrmForwardContentToFileObject

Obsolete function. DrmForwardContentToInterface

Autentica um objeto de driver e envia a ele a ID de conteúdo drm e os direitos de conteúdo atribuídos pelo sistema a um fluxo que contém conteúdo protegido. DrmGetContentRights

Recupera os direitos de conteúdo drm atribuídos pelo sistema a uma ID de conteúdo drm. As funções nesta lista são declaradas no arquivo de cabeçalho Drmk.h. O driver do sistema DRMK no modo kernel, Drmk.sys, exporta os pontos de entrada para essas funções.

No Windows XP e posterior, o driver do sistema PortCls, Portcls.sys, exporta um conjunto diferente de pontos de entrada para o mesmo conjunto de funções DRM. Os nomes das funções PortCls são semelhantes aos da lista anterior, exceto que eles usam o prefixo Pc em vez de Drm:

PcAddContentHandlers

PcCreateContentMixed

PcDestroyContent

PcForwardContentToDeviceObject

PcForwardContentToFileObject

PcForwardContentToInterface

PcGetContentRights

Esses nomes de função são declarados no arquivo de cabeçalho Portcls.h. Os pontos de entrada no Portcls.sys nada mais do que chamar as funções correspondentes em Drmk.sys. Os pontos de entrada portCls são fornecidos simplesmente para conveniência, de modo que um driver de áudio que já está conectado ao Portcls.sys não precise carregar explicitamente Drmk.sys.

In Windows XP and later, the same set of functions is also exposed as methods in the IDrmPort and IDrmPort2 interfaces:

IDrmPort2::AddContentHandlers

IDrmPort::CreateContentMixed

IDrmPort::DestroyContent

IDrmPort2::ForwardContentToDeviceObject

IDrmPort::ForwardContentToFileObject

IDrmPort::ForwardContentToInterface

IDrmPort::GetContentRights

The IDrmPort and IDrmPort2 interfaces are declared in header file Portcls.h and are implemented in Portcls.sys. Esses métodos não fazem nada mais do que chamar as funções correspondentes em Drmk.sys. A miniport driver obtains a reference to a IDrmPortx interface by querying its port driver for this interface. The advantage to using a IDrmPortx interface instead of the corresponding DrmXxx or PcXxx functions is that the driver can use this query to determine at run time whether the operating system version supports DRM or not. Isso simplifica a tarefa de escrever um único driver que pode ser executado em versões mais recentes do Windows que dão suporte ao DRM e em versões mais antigas que não o fazem. IDrmPort2 is derived from IDrmPort and provides two additional methods.

The WaveCyclic and WavePci port drivers use the IDrmAudioStream interface if it is supported by the corresponding miniport driver. The port driver calls the IDrmAudioStream::SetContentId method to assign DRM protection to the digital content in an audio stream.

The DEFINE_DRMRIGHTS_DEFAULT macro, which is defined in header file Drmk.h, initializes the members of a DRMRIGHTS structure to their default values.