找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6541|回复: 5

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

[复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2016-11-23 14:41:37 | 显示全部楼层 |阅读模式
无论是FSD HOOK,还是SFILTER、MINIFILTER,很多时候都要细致处理IRP_MJ_CREATE。其中有个特别复杂的参数结构体叫做Parameters.Create。下面我来详细一说。
Parameters.Create结构体:
  1. struct
  2. {
  3.     PIO_SECURITY_CONTEXT SecurityContext;
  4.     ULONG Options;
  5.     USHORT POINTER_ALIGNMENT FileAttributes;
  6.     USHORT ShareAccess;
  7.     ULONG POINTER_ALIGNMENT EaLength;
  8. } Create;
复制代码
其中SecurityContext如下:
  1. typedef struct _IO_SECURITY_CONTEXT
  2. {
  3.     PSECURITY_QUALITY_OF_SERVICE SecurityQos;
  4.     PACCESS_STATE                AccessState;
  5.     ACCESS_MASK                  DesiredAccess; //ULONG
  6.     ULONG                        FullCreateOptions;
  7. } IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;
复制代码
就这个简单的结构体里,就包含了CreationDisposition、CreateOptions、DesiredAccess、ShareAccess、FileAttributes等东西。它们分别这么获得:
游客,如果您要查看本帖隐藏内容请回复
它们的常量分别如下:
  1. //DesiredAccess:
  2. DELETE
  3. FILE_ANY_ACCESS
  4. FILE_READ_ACCESS
  5. FILE_READ_DATA
  6. FILE_LIST_DIRECTORY
  7. FILE_WRITE_ACCESS
  8. FILE_WRITE_DATA
  9. FILE_ADD_FILE
  10. FILE_APPEND_DATA
  11. FILE_ADD_SUBDIRECTORY
  12. FILE_CREATE_PIPE_INSTANCE
  13. FILE_READ_EA
  14. FILE_WRITE_EA
  15. FILE_EXECUTE
  16. FILE_TRAVERSE
  17. FILE_DELETE_CHILD
  18. FILE_READ_ATTRIBUTES
  19. FILE_WRITE_ATTRIBUTES
  20. FILE_ALL_ACCESS
  21. STANDARD_RIGHTS_ALL

  22. //FileAttributes:
  23. FILE_ATTRIBUTE_READONLY
  24. FILE_ATTRIBUTE_HIDDEN
  25. FILE_ATTRIBUTE_SYSTEM
  26. FILE_ATTRIBUTE_DIRECTORY
  27. FILE_ATTRIBUTE_ARCHIVE
  28. FILE_ATTRIBUTE_NORMAL
  29. FILE_ATTRIBUTE_TEMPORARY
  30. FILE_ATTRIBUTE_SPARSE_FILE
  31. FILE_ATTRIBUTE_REPARSE_POINT
  32. FILE_ATTRIBUTE_COMPRESSED
  33. FILE_ATTRIBUTE_OFFLINE
  34. FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
  35. FILE_ATTRIBUTE_ENCRYPTED

  36. //ShareAccess:
  37. FILE_SHARE_READ
  38. FILE_SHARE_WRITE
  39. FILE_SHARE_DELETE

  40. //CreateDisposition:
  41. FILE_SUPERSEDE
  42. FILE_OPEN
  43. FILE_CREATE
  44. FILE_OPEN_IF
  45. FILE_OVERWRITE
  46. FILE_OVERWRITE_IF

  47. //CreateOptions:
  48. FILE_DIRECTORY_FILE
  49. FILE_WRITE_THROUGH
  50. FILE_SEQUENTIAL_ONLY
  51. FILE_NO_INTERMEDIATE_BUFFERING
  52. FILE_SYNCHRONOUS_IO_ALERT
  53. FILE_SYNCHRONOUS_IO_NONALERT
  54. FILE_NON_DIRECTORY_FILE
  55. FILE_CREATE_TREE_CONNECTION
  56. FILE_COMPLETE_IF_OPLOCKED
  57. FILE_NO_EA_KNOWLEDGE
  58. FILE_OPEN_FOR_RECOVERY
  59. FILE_RANDOM_ACCESS
  60. FILE_DELETE_ON_CLOSE
  61. FILE_OPEN_BY_FILE_ID
  62. FILE_OPEN_FOR_BACKUP_INTENT
  63. FILE_NO_COMPRESSION
  64. FILE_RESERVE_OPFILTER
  65. FILE_OPEN_REPARSE_POINT
  66. FILE_OPEN_NO_RECALL
  67. FILE_OPEN_FOR_FREE_SPACE_QUERY
复制代码

78

主题

190

回帖

9

精华

贵宾会员

积分
15605
发表于 2016-11-23 17:42:10 | 显示全部楼层
本帖最后由 tangptr@126.com 于 2016-11-23 19:41 编辑

沙发广告位招租

1

主题

118

回帖

0

精华

金牌会员

积分
856
发表于 2016-11-23 21:59:43 | 显示全部楼层
感谢楼主.                              

4

主题

145

回帖

0

精华

金牌会员

积分
1189
发表于 2016-11-23 22:03:32 | 显示全部楼层
Miniflter开发总的来说简单了很多啊

0

主题

46

回帖

0

精华

铜牌会员

积分
195
发表于 2017-5-17 22:09:28 | 显示全部楼层
找表找结构,感谢楼主分享

5

主题

68

回帖

2

精华

钻石会员

积分
2738
QQ
发表于 2017-5-25 14:13:18 | 显示全部楼层
Miniflter最近正在看
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表