Función CcCopyWriteEx (ntifs.h)
El CcCopyWriteEx rutina copia datos de un búfer de usuario en un archivo almacenado en caché. El recuento de bytes de E/S para la operación se cobra al subproceso emisor.
Sintaxis
BOOLEAN CcCopyWriteEx(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[in] PVOID Buffer,
[in] PETHREAD IoIssuerThread
);
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 se puede colocar 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.
[in] IoIssuerThread
Subproceso que emite la solicitud de escritura. Para un sistema de archivos con la contabilidad de E/S de disco habilitada, este es el subproceso al que se cobra la E/S. Si ioIssuerThread es NULL, la E/S se carga en el subproceso actual.
Valor devuelto
La rutina de CcCopyWriteEx devuelve TRUE si los datos se copiaron correctamente, FALSE en caso contrario.
Observaciones
Si wait es TRUE, se garantiza CcCopyWriteEx 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 Wait es FALSE, CcCopyWriteEx se rechazará a bloquear y devolverá FALSE, si las páginas necesarias del archivo almacenado en caché aún no están residentes en memoria o si la marca FO_WRITE_THROUGH está establecida en el objeto de archivo.
Si se produce algún error, CcCopyWriteEx genera una excepción de estado para ese error en particular. Por ejemplo, si se produce un error de asignación de grupo, CcCopyWriteEx genera una excepción con el estado STATUS_INSUFFICIENT_RESOURCES; si se produce un error de E/S, CcCopyWriteEx 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 ccCopyWriteEx 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 8 |
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 |