Функция IoCheckFileObjectOpenedAsCopySource (ntifs.h)
Подпрограмма IoCheckFileObjectOpenedAsCopySource проверяет, был ли ранее открыт файл с намерением копирования в качестве исходного файла.
Синтаксис
BOOLEAN IoCheckFileObjectOpenedAsCopySource(
[in] PFILE_OBJECT FileObject
);
Параметры
[in] FileObject
Указатель на объект исходного файла, проверка для намерения копирования.
Возвращаемое значение
IoCheckFileObjectOpenedAsCopySource возвращает значение TRUE, если объект файла представляет исходный файл, который ранее был открыт с намерением копирования файла; В противном случае возвращается значение FALSE. Возвращаемое значение TRUE сигнализирует только о намерении во время создания; Это не означает, что все операции с объектом файла являются частью копий.
Комментарии
В следующем примере показано, как проверка, был ли открыт файловый объект с намерением копирования.
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);
Дополнительные сведения см. в статье Копирование файлов в режиме ядра и обнаружение сценариев копирования файлов .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 11 версии 22H2 |
Верхняя часть | ntifs.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL |