Compartir a través de


Función CcFastCopyRead (ntifs.h)

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

Sintaxis

void CcFastCopyRead(
  [in]  PFILE_OBJECT     FileObject,
  [in]  ULONG            FileOffset,
  [in]  ULONG            Length,
  [in]  ULONG            PageCount,
  [out] PVOID            Buffer,
  [out] PIO_STATUS_BLOCK IoStatus
);

Parámetros

[in] FileObject

Puntero a un objeto de archivo para el archivo almacenado en caché desde el que se van a leer los datos.

[in] FileOffset

Desplazamiento de bytes inicial dentro del archivo almacenado en caché.

[in] Length

Longitud en bytes de los datos que se van a leer.

[in] PageCount

Número de páginas distribuidas por la lectura.

[out] Buffer

Puntero a un búfer en el que se van a copiar los datos.

[out] IoStatus

Puntero a una estructura que recibe el estado de finalización final e información sobre la operación. Si no todos los datos se copian correctamente, ioStatus.Information contiene el número real de bytes que se copiaron.

Valor devuelto

Ninguno

Observaciones

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

  • FileOffset es un ULONG, no un PLARGE_INTEGER.

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

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

FileOffset más Longitud debe ser menor o igual que el tamaño del archivo almacenado en caché o se producirá un error de aserción.

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

Para almacenar en caché un archivo, use CcInitializeCacheMap.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL < DISPATCH_LEVEL

Consulte también

ccCopyRead

ccInitializeCacheMap

ccReadAhead

CcScheduleReadAhead

CcSetAdditionalCacheAttributes

ccSetReadAheadGranularity