Compartir a través de


Función CcCopyWrite (ntifs.h)

El CcCopyWrite rutina copia 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é al 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

Establézcalo en TRUE si el autor de la llamada puede colocarse en un estado de espera hasta que se hayan copiado todos los datos, FALSE de lo contrario.

[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 en caso contrario.

Observaciones

Si de espera es TRUE, se garantiza CcCopyWrite para completar la solicitud de copia y devolver 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 están residentes, el autor de la llamada se pondrá en un estado de espera hasta que se hayan realizado residentes todas las páginas necesarias y se puedan copiar los datos.

Si de espera 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 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 en particular. 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 un try-except o instrucción try-finally.

Para almacenar en caché un archivo, use CcInitializeCacheMap.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h, FltKernel.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= APC_LEVEL

Consulte también

CcInitializeCacheMap