Partager via


Obtention de contextes

Une fois qu’un pilote minifilter a défini un contexte pour un objet, il peut obtenir le contexte en appelant l’une des routines get suivantes :

Chaque routine get réussie incrémente le nombre de références sur le contexte, ce qui nécessite que le minifilter appelle FltReleaseContext lorsqu’il n’a plus besoin du pointeur de contexte.

Dans l’exemple de code suivant, extrait de l’exemple de minifiltre SwapBuffers, le pilote minifilter appelle FltGetVolumeContext pour obtenir un contexte de volume :

status = FltGetVolumeContext(
 FltObjects->Filter,    //Filter
 FltObjects->Volume,    //Volume
                &volCtx);              //Context
...
if (volCtx != NULL) {
 FltReleaseContext(volCtx);
}

Si l’appel à FltGetVolumeContext réussit, le paramètre Context reçoit l’adresse du contexte de volume de l’appelant. FltGetVolumeContext incrémente le nombre de références sur le pointeur Context . Par conséquent, lorsque ce pointeur n’est plus nécessaire, le pilote minifilter doit le libérer en appelant FltReleaseContext.