Obtención de contextos

Una vez que un controlador de minifiltro ha establecido un contexto para un objeto, puede obtener el contexto llamando a una de las siguientes rutinas get:

Cada rutina get correcta incrementa el recuento de referencias en el contexto, lo que requiere que el minifiltro llame a FltReleaseContext cuando ya no necesite el puntero de contexto.

En el ejemplo de código siguiente, tomado del minifiltro de ejemplo SwapBuffers, el controlador de minifiltro llama a FltGetVolumeContext para obtener un contexto de volumen:

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

Si la llamada a FltGetVolumeContext es correcta, el parámetro Context recibe la dirección del contexto de volumen del autor de la llamada. FltGetVolumeContext incrementa el recuento de referencias en el puntero Context . Por lo tanto, cuando este puntero ya no es necesario, el controlador de minifiltro debe liberarlo llamando a FltReleaseContext.