Función IoCheckFileObjectOpenedAsCopySource (ntifs.h)
La rutina IoCheckFileObjectOpenedAsCopySource comprueba si un archivo se abrió previamente con la intención de copia como un archivo de origen.
Sintaxis
BOOLEAN IoCheckFileObjectOpenedAsCopySource(
[in] PFILE_OBJECT FileObject
);
Parámetros
[in] FileObject
Puntero al objeto de archivo de origen para comprobar la intención de copia.
Valor devuelto
IoCheckFileObjectOpenedAsCopySource devuelve TRUE si el objeto de archivo representa un archivo de origen que se abrió previamente con la intención de copiar archivo; de lo contrario, devuelve FALSE. Un valor devuelto de TRUE solo indica la intención en tiempo de creación; no significa que todas las operaciones del objeto de archivo formen parte de copias.
Comentarios
En el ejemplo siguiente se muestra cómo comprobar si se abrió un objeto de archivo con la intención de copia.
typedef
BOOLEAN (*PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_SOURCE)(
_In_ PFILE_OBJECT FileObject
);
typedef
BOOLEAN (*PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_DESTINATION)(
_In_ PFILE_OBJECT FileObject
);
PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_SOURCE IoCheckFileObjectOpenedAsCopySource;
PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_DESTINATION IoCheckFileObjectOpenedAsCopyDestination;
// First resolve the API
RtlInitUnicodeString(&RoutineName, L"IoCheckFileObjectOpenedAsCopySource");
IoCheckFileObjectOpenedAsCopySource = (PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_SOURCE)MmGetSystemRoutineAddress(&RoutineName);
RtlInitUnicodeString(&RoutineName, L"IoCheckFileObjectOpenedAsCopyDestination");
IoCheckFileObjectOpenedAsCopyDestination = (PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_DESTINATION)MmGetSystemRoutineAddress(&RoutineName);
// Now use the API
IoCheckFileObjectOpenedAsCopySource(FltObjects->FileObject);
IoCheckFileObjectOpenedAsCopyDestination(FltObjects->FileObject);
Consulte Escenarios de copia de archivos en modo kernel y detección de escenarios de archivos de copia para obtener más información.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 11, versión 22H2 |
Encabezado | ntifs.h (incluye Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL |