Obtendo contextos

Depois que um driver de minifiltro tiver definido um contexto para um objeto, ele poderá obter o contexto chamando uma das seguintes rotinas de obtenção:

Cada rotina de obtenção bem-sucedida incrementa a contagem de referências no contexto, exigindo que o minifiltro chame FltReleaseContext quando ele não precisar mais do ponteiro de contexto.

No exemplo de código a seguir, obtido do minifiltro de exemplo SwapBuffers, o driver de minifiltro chama FltGetVolumeContext para obter um contexto de volume:

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

Se a chamada para FltGetVolumeContext for bem-sucedida, o parâmetro Context receberá o endereço do contexto de volume do chamador. FltGetVolumeContext incrementa a contagem de referência no ponteiro contextual . Portanto, quando esse ponteiro não for mais necessário, o driver de minifiltro deverá liberá-lo chamando FltReleaseContext.