Tesla.Angela 发表于 2016-11-23 14:41:37

[资料]IO_STACK_LOCATION中Parameters.Create的参数详解

无论是FSD HOOK,还是SFILTER、MINIFILTER,很多时候都要细致处理IRP_MJ_CREATE。其中有个特别复杂的参数结构体叫做Parameters.Create。下面我来详细一说。Parameters.Create结构体:struct
{
    PIO_SECURITY_CONTEXT SecurityContext;
    ULONG Options;
    USHORT POINTER_ALIGNMENT FileAttributes;
    USHORT ShareAccess;
    ULONG POINTER_ALIGNMENT EaLength;
} Create;其中SecurityContext如下:typedef struct _IO_SECURITY_CONTEXT
{
    PSECURITY_QUALITY_OF_SERVICE SecurityQos;
    PACCESS_STATE                AccessState;
    ACCESS_MASK                  DesiredAccess; //ULONG
    ULONG                        FullCreateOptions;
} IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;就这个简单的结构体里,就包含了CreationDisposition、CreateOptions、DesiredAccess、ShareAccess、FileAttributes等东西。它们分别这么获得:**** Hidden Message *****它们的常量分别如下://DesiredAccess:
DELETE
FILE_ANY_ACCESS
FILE_READ_ACCESS
FILE_READ_DATA
FILE_LIST_DIRECTORY
FILE_WRITE_ACCESS
FILE_WRITE_DATA
FILE_ADD_FILE
FILE_APPEND_DATA
FILE_ADD_SUBDIRECTORY
FILE_CREATE_PIPE_INSTANCE
FILE_READ_EA
FILE_WRITE_EA
FILE_EXECUTE
FILE_TRAVERSE
FILE_DELETE_CHILD
FILE_READ_ATTRIBUTES
FILE_WRITE_ATTRIBUTES
FILE_ALL_ACCESS
STANDARD_RIGHTS_ALL

//FileAttributes:
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_DIRECTORY
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_TEMPORARY
FILE_ATTRIBUTE_SPARSE_FILE
FILE_ATTRIBUTE_REPARSE_POINT
FILE_ATTRIBUTE_COMPRESSED
FILE_ATTRIBUTE_OFFLINE
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
FILE_ATTRIBUTE_ENCRYPTED

//ShareAccess:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE

//CreateDisposition:
FILE_SUPERSEDE
FILE_OPEN
FILE_CREATE
FILE_OPEN_IF
FILE_OVERWRITE
FILE_OVERWRITE_IF

//CreateOptions:
FILE_DIRECTORY_FILE
FILE_WRITE_THROUGH
FILE_SEQUENTIAL_ONLY
FILE_NO_INTERMEDIATE_BUFFERING
FILE_SYNCHRONOUS_IO_ALERT
FILE_SYNCHRONOUS_IO_NONALERT
FILE_NON_DIRECTORY_FILE
FILE_CREATE_TREE_CONNECTION
FILE_COMPLETE_IF_OPLOCKED
FILE_NO_EA_KNOWLEDGE
FILE_OPEN_FOR_RECOVERY
FILE_RANDOM_ACCESS
FILE_DELETE_ON_CLOSE
FILE_OPEN_BY_FILE_ID
FILE_OPEN_FOR_BACKUP_INTENT
FILE_NO_COMPRESSION
FILE_RESERVE_OPFILTER
FILE_OPEN_REPARSE_POINT
FILE_OPEN_NO_RECALL
FILE_OPEN_FOR_FREE_SPACE_QUERY

tangptr@126.com 发表于 2016-11-23 17:42:10

本帖最后由 tangptr@126.com 于 2016-11-23 19:41 编辑

沙发广告位招租

yimingqpa 发表于 2016-11-23 21:59:43

感谢楼主.                              

kz丶cn 发表于 2016-11-23 22:03:32

Miniflter开发总的来说简单了很多啊

NOW刘 发表于 2017-5-17 22:09:28

找表找结构,感谢楼主分享

Murray 发表于 2017-5-25 14:13:18

Miniflter最近正在看
页: [1]
查看完整版本: [资料]IO_STACK_LOCATION中Parameters.Create的参数详解