Función CcCopyWrite (ntifs.h)
La rutina CcCopyWrite copia los datos de un búfer de usuario en un archivo almacenado en caché.
Sintaxis
BOOLEAN CcCopyWrite(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[in] PVOID Buffer
);
Parámetros
[in] FileObject
Puntero a un objeto de archivo para el archivo almacenado en caché en el que se van a escribir los datos.
[in] FileOffset
Puntero a una variable que especifica el desplazamiento de bytes inicial dentro del archivo almacenado en caché.
[in] Length
Longitud en bytes de los datos que se van a escribir.
[in] Wait
Se establece en TRUE si el autor de la llamada puede colocarse en un estado de espera hasta que se copien todos los datos; de lo contrario, false .
[in] Buffer
Puntero al búfer desde el que se van a copiar los datos.
Valor devuelto
La rutina CcCopyWrite devuelve TRUE si los datos se copiaron correctamente, FALSE de lo contrario.
Comentarios
Si Wait es TRUE, se garantiza que CcCopyWrite complete la solicitud de copia y devuelva TRUE. Si las páginas necesarias del archivo almacenado en caché ya residen en la memoria, los datos se copiarán inmediatamente y no se producirá ningún bloqueo. Si las páginas necesarias no son residentes, el autor de la llamada se colocará en un estado de espera hasta que todas las páginas necesarias se hayan hecho residentes y se puedan copiar los datos.
Si Wait es FALSE, CcCopyWrite se negará a bloquear y devolverá FALSE, si las páginas necesarias del archivo almacenado en caché aún no residen en la memoria o si la marca de FO_WRITE_THROUGH está establecida en el objeto de archivo.
Si se produce algún error, CcCopyWrite genera una excepción de estado para ese error determinado. Por ejemplo, si se produce un error de asignación de grupo, CcCopyWrite genera una excepción de STATUS_INSUFFICIENT_RESOURCES; Si se produce un error de E/S, CcCopyWrite genera la excepción de estado del error de E/S. Por lo tanto, para obtener control si se produce un error, el controlador debe encapsular la llamada a CcCopyWrite en una instrucción try-except o try-finally .
Para almacenar en caché un archivo, use CcInitializeCacheMap.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h, FltKernel.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |