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 cual o incrustada en una estructura de contexto definida por controlador. Ambos tipos de estructura se asignan normalmente mediante una llamada 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 valor distinto de 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 práctico, 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 puede ser 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 valor distinto de NULL para este parámetro. Esta rutina y sus parámetros se definen de la siguiente manera:
typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); |
- Búfer
Puntero a la estructura de contexto por secuencia que se va a liberar. La rutina FreeCallback normalmente convierte este puntero al tipo de puntero de estructura adecuado y lo libera llamando a ExFreePool.
Valor devuelto
None
Observaciones
Un controlador de filtro del sistema de archivos usa la macro FsRtlInitPerStreamContext para inicializar una estructura de contexto por secuencia recién asignada antes de asociarla a 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 en el miembro FreeCallback de la estructura FSRTL_PER_STREAM_CONTEXT.
Se llama a la rutina FreeCallback en IRQL <= APC_LEVEL. Normalmente, se llama a en irQL PASSIVE_LEVEL.
Una vez asociada la estructura de contexto a una secuencia de archivos, se puede recuperar llamando a FsRtlLookupPerStreamContext o quitando mediante una llamada a FsRtlRemovePerStreamContext.
Para obtener más información, vea Seguimiento de Per-Stream contexto en un controlador de filtro del sistema de archivos heredado.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP; Paquete acumulativo de actualizaciones para Windows 2000 Service Pack 4 (SP4) |
Plataforma de destino | Escritorio |
Encabezado | ntifs.h (incluya Ntifs.h) |
IRQL | Cualquier nivel |
Consulte también
FsRtlGetPerStreamContextPointer