fsrtl.h

来自「一个类似windows」· C头文件 代码 · 共 97 行

H
97
字号
#ifndef __INCLUDE_INTERNAL_IFS_H
#define __INCLUDE_INTERNAL_IFS_H

typedef struct _FILE_LOCK_GRANTED
{
    LIST_ENTRY            ListEntry;
    FILE_LOCK_INFO            Lock;
    PVOID             UnlockContext;
} FILE_LOCK_GRANTED, *PFILE_LOCK_GRANTED;

typedef struct _FILE_LOCK_TOC
{
    KSPIN_LOCK            SpinLock;
    LIST_ENTRY            GrantedListHead;
    LIST_ENTRY            PendingListHead;
} FILE_LOCK_TOC, *PFILE_LOCK_TOC;

VOID
INIT_FUNCTION
STDCALL
FsRtlpInitNotifyImplementation(VOID);

VOID 
STDCALL
FsRtlpInitFileLockingImplementation(VOID);

VOID
STDCALL
FsRtlpFileLockCancelRoutine(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

BOOLEAN
FASTCALL
FsRtlpCheckLockForReadOrWriteAccess(
    IN PFILE_LOCK FileLock,
    IN PLARGE_INTEGER FileOffset,
    IN PLARGE_INTEGER Length,
    IN ULONG Key,
    IN PFILE_OBJECT FileObject,
    IN PEPROCESS Process,
    IN BOOLEAN Read
);

NTSTATUS
FASTCALL
FsRtlpFastUnlockAllByKey(
    IN PFILE_LOCK FileLock,
    IN PFILE_OBJECT FileObject,
    IN PEPROCESS Process,
    IN DWORD Key,
    IN BOOLEAN UseKey,
    IN PVOID Context OPTIONAL
);

BOOLEAN
FASTCALL
FsRtlpAddLock(
    IN PFILE_LOCK_TOC LockToc,
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset,
    IN PLARGE_INTEGER Length,
    IN PEPROCESS Process,
    IN ULONG Key,
    IN BOOLEAN ExclusiveLock,
    IN PVOID UnlockContext
);

VOID
FASTCALL
FsRtlpCompletePendingLocks(
    IN PFILE_LOCK FileLock,
    IN PFILE_LOCK_TOC LockToc,
    IN OUT PKIRQL  oldirql,
    IN PVOID Context
);

NTSTATUS
FASTCALL
FsRtlpUnlockSingle(
    IN PFILE_LOCK FileLock,
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset,
    IN PLARGE_INTEGER Length,
    IN PEPROCESS Process,
    IN ULONG Key,
    IN PVOID Context OPTIONAL,
    IN BOOLEAN CallUnlockRoutine
);

VOID
FASTCALL
FsRtlpDumpFileLocks(IN PFILE_LOCK FileLock);

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?