Fonction IoCheckFileObjectOpenedAsCopySource (ntifs.h)
La routine IoCheckFileObjectOpenedAsCopySource vérifie si un fichier a été ouvert précédemment avec l’intention de copie en tant que fichier source.
Syntaxe
BOOLEAN IoCheckFileObjectOpenedAsCopySource(
[in] PFILE_OBJECT FileObject
);
Paramètres
[in] FileObject
Pointeur vers l’objet de fichier source pour rechercher l’intention de copie.
Valeur de retour
IoCheckFileObjectOpenedAsCopySource retourne TRUE si l’objet de fichier représente un fichier source qui a été ouvert précédemment avec l’intention de copier le fichier ; sinon, elle retourne FALSE. Une valeur de retour true signale uniquement l’intention au moment de la création ; cela ne signifie pas que toutes les opérations sur l’objet fichier font partie de toutes les copies.
Remarques
L’exemple suivant montre comment vérifier si un objet de fichier a été ouvert avec l’intention de copie.
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);
Pour plus d’informations, consultez copie de fichiers en mode noyau et détection des scénarios de copie de fichier.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 11, version 22H2 |
d’en-tête | ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL |