estructura TXN_PARAMETER_BLOCK (ntddk.h)
La estructura TXN_PARAMETER_BLOCK contiene información sobre una operación de archivo transaccionado.
Sintaxis
typedef struct _TXN_PARAMETER_BLOCK {
USHORT Length;
USHORT TxFsContext;
PVOID TransactionObject;
} TXN_PARAMETER_BLOCK, *PTXN_PARAMETER_BLOCK;
Miembros
Length
Tamaño, en bytes, de la estructura TXN_PARAMETER_BLOCK.
TxFsContext
Identificador de miniversion del archivo.
TransactionObject
Puntero opaco al objeto de transacción de la transacción.
Comentarios
Una miniversion es una versión de un archivo que crea un escritor de transacciones durante una transacción. (Un escritor de transacciones es un identificador de archivo de transacción abierto con cualquier permiso que no forme parte del acceso de lectura genérico, pero que forma parte del acceso de escritura genérico).
Si no se proporciona un número de miniversion específico para el archivo, el miembro TxFsContext debe establecerse en TXF_MINIVERSION_DEFAULT_VIEW.
El miembro TxFsContext del TXN_PARAMETER_BLOCK usa TXF_MINIVERSION_DEFAULT_VIEW para obtener la vista predeterminada del archivo solicitado que se basa en el valor del miembro TransactionObject . Por lo tanto, si TransactionObject es la misma transacción que tiene el archivo solicitado bloqueado para la modificación de transacciones, el autor de la llamada puede ver esas modificaciones (la vista "sucia" del archivo) si el autor de la llamada puede especificar el valor del miembro TransactionObject . Si TransactionObject no es la misma transacción que tiene el archivo solicitado bloqueado para la modificación de transacciones, el autor de la llamada obtiene una vista aislada transaccionalmente del archivo si especifica este valor.
Una miniversion solo existe como una vista a un momento dado de un archivo y aún no se ha escrito como una variante real en disco de un archivo determinado. Un escritor de transacciones crea una miniversion mediante el código de control FSCTL_TXFS_CREATE_MINIVERSION para llamar a ZwFsControlFile. En respuesta, el sistema crea un miniversion y devuelve su identificador de miniversion. El escritor de transacciones puede seguir realizando cambios en el archivo a partir de entonces. Si el archivo se abre más adelante mediante el identificador de miniversion devuelto como miembro TxFsContext de la estructura de TXN_PARAMETER_BLOCK , el identificador de archivo resultante muestra el archivo tal como estaba en el momento en que se creó la miniversion.
Todas las miniversiones creadas en una transacción desaparece cuando finaliza la transacción. Después, el archivo ya no se puede abrir mediante los identificadores de miniversion.
Una miniversion solo está disponible para el escritor de transacciones que creó la miniversion, no para un lector de transacciones o un lector no transaccionado.
La rutina IoGetTransactionParameterBlock devuelve un puntero a esta estructura.
Requisitos
Requisito | Valor |
---|---|
Header | ntddk.h (incluya Ntddk.h, Ntifs.h, FltKernel.h) |