Udostępnij przez


Funkcje i interfejsy 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.

Dostępne są następujące funkcje DRM:

DrmAddContentHandlers

Zapewnia system interfejsowi sterownika składającego się z listy funkcji do obsługi chronionej zawartości. DrmCreateContentMixed

Tworzy identyfikator zawartości DRM w celu zidentyfikowania strumienia audio KS zawierającego mieszaną zawartość z kilku strumieni wejściowych. DrmDestroyContent

Usuwa identyfikator zawartości DRM. DrmForwardContentToDeviceObject

Uwierzytelnia sterownik i wysyła do niego identyfikator zawartości DRM oraz prawa do zawartości przypisane przez system do strumienia zawierającego chronioną zawartość. DrmForwardContentToFileObject

Obsolete function. DrmForwardContentToInterface

Uwierzytelnia obiekt sterownika i wysyła do niego identyfikator zawartości DRM i prawa do zawartości przypisane przez system do strumienia zawierającego chronioną zawartość. DrmGetContentRights

Pobiera prawa do zawartości DRM przypisane przez system do identyfikatora zawartości DRM. Funkcje na tej liście są deklarowane w pliku nagłówka Drmk.h. Sterownik systemu DRMK w trybie jądra, Drmk.sys, eksportuje punkty wejścia dla tych funkcji.

W systemie Windows XP i nowszych sterownik systemu PortCls, Portcls.sys, eksportuje inny zestaw punktów wejścia dla tego samego zestawu funkcji DRM. Nazwy funkcji PortCls są podobne do tych na poprzedniej liście, z tą różnicą, że używają prefiksu Pc zamiast drm:

PcAddContentHandlers

PcCreateContentMixed

PcDestroyContent

PcForwardContentToDeviceObject

PcForwardContentToFileObject

PcForwardContentToInterface

PcGetContentRights

Te nazwy funkcji są deklarowane w pliku nagłówka Portcls.h. Punkty wejścia w Portcls.sys nie wykonują nic więcej niż wywoływanie odpowiednich funkcji w Drmk.sys. Punkty wejścia PortCls są udostępniane po prostu dla wygody, aby sterownik audio, który jest już połączony z Portcls.sys nie musi jawnie załadować 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. Te metody nie wykonują nic więcej niż wywoływanie odpowiednich funkcji w 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. Upraszcza to pisanie jednego sterownika, który może działać zarówno w nowszych wersjach systemu Windows, które obsługują drM, jak i w starszych wersjach, które nie. 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.