Applicazione dei livelli di gestione dei genitori

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Qualsiasi titolo o parte di un titolo in un disco DVD-Video può essere assegnato un livello generico di gestione genitori (PML) da 1 a 8. Quando lo strumento di navigazione DVD legge il contenuto con un PML, si dice che sia in un blocco genitoriale. Un blocco genitori può essere costituito da parte di un capitolo, più capitoli o più titoli. Un'applicazione DVD destinata a un mercato internazionale non deve scrivere un determinato sistema di classificazione nella logica di gestione dei genitori.

Il navigatore DVD stesso non applica i PML; informa semplicemente l'applicazione quando rileva informazioni PML sul disco. Per impostazione predefinita, ignora queste informazioni sul disco e riproduce il contenuto di livello più alto. Per applicare i PML, l'applicazione deve implementare una forma di logica di controllo delle password che associa gli utenti ai livelli, indicare al navigatore DVD di inviare le notifiche degli eventi PML (chiamando il metodo IDeviceControl2::SetOption all'avvio, con i parametri DVD_NotifyParentalLevelChange e TRUE) e rispondere a tali eventi per consentire o impedire l'accesso in base alle esigenze.

Un titolo DVD può avere un PML complessivo, ma gli autori di dischi possono assegnare alcune sezioni di tale titolo più elevate o più restrittive PML. Questi sono chiamati comandi PML temporanei; questi comandi contengono sempre due istruzioni di branching: una per seguire se il comando PML temporaneo viene accettato dall'applicazione lettore e l'altro da seguire se il comando viene rifiutato. La sequenza di eventi è la seguente. Lo strumento di navigazione DVD legge il contenuto video (dominio titolo DVD) quando rileva un comando PML temporaneo sul disco. Controlla il flag interno per verificare se l'applicazione ha richiesto di ricevere una notifica di questo evento. Se il flag non è impostato, il DVD continua a riprodurre, seguendo il ramo "modifica del livello genitori rifiutato" specificato nel disco. Se il flag è impostato, il DVD invia un evento EC_DVD_PARENTAL_LEVEL_CHANGE all'applicazione e attende in uno stato sospeso fino a quando non ottiene una risposta. Quando l'applicazione riceve l'evento, usa la propria logica per determinare se accettare il comando. Chiama quindi IDeviceControl2::AcceptParentalLevelChange con un argomento TRUE o FALSE. Se TRUE, il navigatore DVD riprende la riproduzione, seguendo il ramo "modifica del livello genitori accettato" specificato nel disco. In caso contrario, riprende la riproduzione e segue il ramo "modifica del livello genitori rifiutato".

Applicazioni DVD