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 |