Compartir a través de


Función CcFastCopyWrite (ntifs.h)

La rutina CcFastCopyWrite realiza una escritura rápida de copia de un búfer en memoria en un archivo almacenado en caché.

Sintaxis

void CcFastCopyWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        FileOffset,
  [in] ULONG        Length,
  [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] Buffer

Puntero al búfer desde el que se van a copiar los datos.

Valor devuelto

None

Observaciones

CcFastCopyWrite es una versión más rápida de CcCopyWrite. Difiere de CcCopyWrite en los siguientes aspectos:

  • FileOffset es un ULONG, no un PLARGE_INTEGER.

  • No hay ningún parámetro Wait . El autor de la llamada debe poder especificar un estado de espera hasta que se hayan copiado todos los datos.

  • CcFastCopyWrite no devuelve un valor BOOLEAN para indicar si la operación de escritura se realizó correctamente.

Si las páginas necesarias del archivo almacenado en caché ya residen en la memoria, los datos se copian inmediatamente y no se produce ningún bloqueo. Si las páginas necesarias no son residentes, el autor de la llamada se coloca en un estado de espera hasta que todas las páginas necesarias se hayan hecho residentes y se puedan copiar los datos.

Si se produce algún error, CcFastCopyWrite genera una excepción de estado para ese error en particular. Por ejemplo, si se produce un error de asignación de grupo, CcFastCopyWrite genera una excepción de STATUS_INSUFFICIENT_RESOURCES; Si se produce un error de E/S, CcFastCopyWrite 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 CcFastCopyWrite en una instrucción try-except o try-finally .

Para almacenar en caché un archivo, use CcInitializeCacheMap.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe

Consulte también

CcCopyWrite

CcInitializeCacheMap