Freigeben über


Feld der Verwendungseinschränkungen

Anmerkung

Dieses Thema bezieht sich auf Windows 7 oder höher.

 

Eine Feld-of-Use--Einschränkung ist eine Bereitstellung, die die Verwendung einer Lizenz für eine bestimmte Technologie einschränkt.

Media Foundation bietet einen Mechanismus zum Erzwingen von Anwendungsbeschränkungen für Media Foundation-Transformationen (MFTs), insbesondere Codecs. Dieser Mechanismus erfordert, dass der MFT seine eigene Verwendung durch Anwendungen blockiert, bis die Anwendung einen Handshake mit dem MFT ausgeführt hat. Media Foundation definiert nicht den Handshake – in der Regel wäre es eine Art kryptografischer Austausch.

Registrierung und Aufzählung

Wenn ein MFT über Feldbeschränkungen verfügt, legen Sie das MFT_ENUM_FLAG_FIELDOFUSE-Kennzeichen fest, wenn Sie die MFT registrieren. Dieses Kennzeichen gilt für die folgenden MFT-Registrierungs-APIs:

Standardmäßig werden mfTs, die mit diesem Flag registriert sind, von Enumerationsergebnissen ausgeschlossen. Rufen Sie MFTEnumEx- auf, und geben Sie das MFT_ENUM_FLAG_FIELDOFUSE-Flag im parameter Flags an, um MFTs mit Verwendungseinschränkungen auflisten zu können. Das folgende Diagramm veranschaulicht diesen Prozess.

Diagramm mit Mft und einer Anwendung, die Daten an die Registrierung sendet

Die MFTEnum-Funktion schließt immer mfTs mit Einschränkungen für die Verwendung aus.

Entsperren des MFT

Führen Sie die folgenden Schritte aus, um eine MFT mit Verwendungseinschränkungen zu verwenden:To use an MFT with field-of-use restrictions, perform the following steps:

  1. Die Anwendung implementiert die IMFFieldOfUseMFTUnlock Schnittstelle.
  2. Die IMFFieldOfUseMFTUnlock::Unlock-Methode verwendet einen Zeiger auf die IUnknown- Schnittstelle der MFT.
  3. In der Unlock-Methode führt die Anwendung den erforderlichen Handshake aus und verwendet dabei den vom MFT definierten Mechanismus. Dieser Schritt wird nicht von der Media Foundation-API definiert.
  4. Wenn die Unlock-Methode erfolgreich ist, entsperrt sich der MFT selbst.

Die Anwendung gibt den IMFFieldOfUseMFTUnlock Zeiger an, indem das attribut MFT_FIELDOFUSE_UNLOCK_Attribute festgelegt wird. Je nachdem, wie die Anwendung den Decoder oder die Codierungspipeline erstellt, gibt es verschiedene Möglichkeiten zum Festlegen dieses Attributs:

API So entsperren Sie Feld-Of-Use
Quellleser Wenn Ihre Anwendung die Quellleser- zum Decodieren einer Mediendatei verwendet, legen Sie das attribut MFT_FIELDOFUSE_UNLOCK_Attribute in den Konfigurationsparametern fest. Siehe Attribute des Quellleselesers.
Sink Writer Wenn Ihre Anwendung den Sink Writer zum Codieren einer Mediendatei verwendet, legen Sie das attribut MFT_FIELDOFUSE_UNLOCK_Attribute in den Konfigurationsparametern fest. Siehe Sink Writer Attributes.
Schnelle Transcodierung Wenn Ihre Anwendung das Feature "Schnelle Transcodierung" zum Erstellen einer Codierungstopologie verwendet, legen Sie die MFT_FIELDOFUSE_UNLOCK_Attribute fest, wenn Sie IMFTranscodeProfile::SetContainerAttributesaufrufen. Weitere Informationen zum Feature "Schnelle Transcodierung" finden Sie unter Transcode-API-.
Topologie Wenn Sie eine Topologie direkt erstellen, legen Sie die MFT_FIELDOFUSE_UNLOCK_Attribute als Attribut für die Topologie fest. Siehe Topologieattribute.
MFT Activation-Objekt Wenn die Anwendung die verwendeten Decoder oder Encoder direkt aufzählt, legen Sie die MFT_FIELDOFUSE_UNLOCK_Attribute auf dem IMFActivate- zeiger fest, die von der MFTEnumEx--Funktion zurückgegeben werden.
Legen Sie das Attribut vor dem Aufrufen IMFActivate::ActivateObject fest, um die MFT zu erstellen. Das Aktivierungsobjekt ruft IMFFieldOfUseMFTUnlock::Unlock auf, wenn die MFT erstellt wird.

 

Das folgende Diagramm zeigt die Beziehung zwischen MFT-Aktivierungsobjekten und der IMFFieldOfUseMFTUnlock Schnittstelle.

Diagramm mit einem Anwendungs-, Aktivierungsobjekt und Mft mit Pfeilen zu einem fou-Objekt, das einen Pfeil zurück zu Mft

Media Foundation Transforms