Compartir a través de


Macro FsRtlInitPerStreamContext (ntifs.h)

La macro FsRtlInitPerStreamContext inicializa una estructura de contexto del controlador de filtro.

Sintaxis

void FsRtlInitPerStreamContext(
  _fc,
  _owner,
  _inst,
  _cb
);

Parámetros

_fc

Puntero a una estructura de FSRTL_PER_STREAM_CONTEXT asignada por el autor de la llamada que se usará para mantener la información de contexto de una secuencia de archivos. Esta estructura se puede usar tal como está o incrustada en una estructura de contexto definida por controlador por secuencia. Normalmente, ambos tipos de estructura se asignan llamando a ExAllocatePoolWithTag.

_owner

Puntero a una variable asignada por el autor de la llamada que identifica de forma única el propietario de la estructura de contexto por secuencia. El formato de esta variable es el controlador de filtro – específico. Los escritores de filtros deben elegir un valor que sea significativo y conveniente, como la dirección de un objeto de controlador o un objeto de dispositivo. Los autores de llamadas deben especificar un valornull que no sea null para este parámetro.

_inst

Puntero a un controlador de filtro : variable asignada que se puede usar para distinguir entre las estructuras de contexto por secuencia creadas por el mismo controlador de filtro. El formato de esta variable es el controlador de filtro – específico. Los escritores de filtros deben elegir un valor que sea significativo y conveniente, como la dirección del objeto de contexto de secuencia para la secuencia de archivos. (Para obtener esta dirección de un objeto de archivo, use la macro FsRtlGetPerStreamContextPointer). Este parámetro es opcional y se puede null.

_cb

Puntero a una rutina de devolución de llamada que libera la estructura de contexto por secuencia. Los autores de llamadas deben especificar un valornull que no sea null para este parámetro. Esta rutina y sus parámetros se definen de la siguiente manera:

typedef
VOID (*PFREE_FUNCTION) (
          IN PVOID Buffer
          );

de búfer de

Puntero a la estructura de contexto por secuencia que se va a liberar. La rutina de FreeCallback normalmente convierte este puntero al tipo de puntero de estructura adecuado y lo libera llamando a ExFreePool.

Valor devuelto

Ninguno

Observaciones

Un controlador de filtro del sistema de archivos usa la macro de FsRtlInitPerStreamContext para inicializar una estructura de contexto por secuencia recién asignada antes de asociarla con una secuencia de archivos. La estructura de contexto inicializada se puede pasar como parámetro a FsRtlInsertPerStreamContext.

FsRtlInitPerStreamContext almacena la dirección de la rutina FreeCallback de en el miembro FreeCallback de la estructura de FSRTL_PER_STREAM_CONTEXT.

La rutina freeCallback de se llama en IRQL <= APC_LEVEL. Normalmente, se llama en irQL PASSIVE_LEVEL.

Nota La rutina FreeCallback no puede llamar de forma recursiva al sistema de archivos ni adquirir ningún recurso del sistema de archivos. Además, esta rutina debe suponer que el objeto de archivo de la secuencia de archivos ya se ha liberado.
 
Para asociar una estructura de contexto por secuencia inicializada a una secuencia de archivos, llame a FsRtlInsertPerStreamContext.

Después de asociar la estructura de contexto a una secuencia de archivos, se puede recuperar llamando a FsRtlLookupPerStreamContext o quitando llamando a FsRtlRemovePerStreamContext.

Para obtener más información, vea Per-Stream Contexto de seguimiento en un controlador de filtro del sistema de archivos heredado.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP; Paquete acumulativo de actualizaciones para Windows 2000 Service Pack 4 (SP4)
de la plataforma de destino de Escritorio
encabezado de ntifs.h (incluya Ntifs.h)
irQL Cualquier nivel

Consulte también

ExAllocatePoolWithTag

ExFreePool

FSRTL_PER_STREAM_CONTEXT

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSetupAdvancedHeader

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts