Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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
FsRtlGetPerStreamContextPointer