Dela via


Användningsbegränsningar för fält

Not

Det här avsnittet gäller för Windows 7 eller senare.

 

En begränsning för användningsfält är en bestämmelse som begränsar hur en licens för en viss teknik kan användas.

Media Foundation tillhandahåller en mekanism för att framtvinga användningsbegränsningar för Media Foundation-transformeringar (MFI), särskilt codecs. Den här mekanismen kräver att MFT blockerar sin egen användning av program tills programmet har utfört ett handslag med MFT. Media Foundation definierar inte handskakningen, vanligtvis skulle det innebära någon form av kryptografiskt utbyte.

Registrering och uppräkning

Om en MFT har användningsfältbegränsningar anger du flaggan MFT_ENUM_FLAG_FIELDOFUSE när du registrerar MFT. Den här flaggan gäller för följande MFT-registrerings-API:er:

Som standard undantas MFI som registrerats med den här flaggan från uppräkningsresultat. Om du vill räkna upp MMFT:er med användningsbegränsningar anropar du MFTEnumEx och anger flaggan MFT_ENUM_FLAG_FIELDOFUSE i parametern Flags. Följande diagram illustrerar den här processen.

diagram som visar mft och ett program som skickar data till registret

Funktionen MFTEnum utesluter alltid alla MMFT:er som har användningsfältbegränsningar.

Låsa upp MFT

Utför följande steg för att använda en MFT med begränsningar för användningsfält:

  1. Programmet implementerar gränssnittet IMFFieldOfUseMFTUnlock.
  2. Metoden IMFFieldOfUseMFTUnlock::Unlock tar en pekare till MFT:s IUnknown-gränssnittet.
  3. I metoden Unlock utför programmet den nödvändiga handskakningen med vilken mekanism som helst som definieras av MFT. Det här steget definieras inte av Media Foundation API.
  4. Om metoden Unlock lyckas låser MFT upp sig själv.

Programmet anger IMFFieldOfUseMFTUnlock pekare genom att ange attributet MFT_FIELDOFUSE_UNLOCK_Attribute. Det finns flera olika sätt att ange det här attributet, beroende på hur programmet skapar avkodaren eller kodningspipelinen:

Application Programming Interface Låsa upp fält –Of-Use
Källläsare Om programmet använder Source Reader för att avkoda en mediefil anger du attributet MFT_FIELDOFUSE_UNLOCK_Attribute i konfigurationsparametrarna. Se källläsares attribut.
Mottagare Om programmet använder mottagarskrivaren för att koda en mediefil anger du attributet MFT_FIELDOFUSE_UNLOCK_Attribute i konfigurationsparametrarna. Se skrivarattribut för mottagare.
Snabb transcode Om programmet använder funktionen Snabb transcode för att skapa en kodningstopologi anger du MFT_FIELDOFUSE_UNLOCK_Attribute när du anropar IMFTranscodeProfile::SetContainerAttributes. Mer information om funktionen Snabb transcode finns i Transcode API.
Topologi Om du skapar en topologi direkt anger du MFT_FIELDOFUSE_UNLOCK_Attribute som ett attribut på topologin. Se Topologiattribut.
MFT-aktiveringsobjekt Om programmet direkt räknar upp de avkodare eller kodare som det ska använda anger du MFT_FIELDOFUSE_UNLOCK_AttributeIMFAktivera pekare som returneras av funktionen MFTEnumEx.
Ange attributet innan du anropar IMFActivate::ActivateObject för att skapa MFT. Aktiveringsobjektet anropar IMFFieldOfUseMFTUnlock::Unlock när MFT skapas.

 

Följande diagram visar relationen mellan MFT-aktiveringsobjekt och IMFFieldOfUseMFTUnlock-gränssnittet.

diagram som visar ett program, aktiveringsobjekt och mft med pilar till ett fou-objekt, som har en pil tillbaka till mft

Media Foundation transformerar