{"id":534,"date":"2011-07-07T15:06:06","date_gmt":"2011-07-07T07:06:06","guid":{"rendered":"http:\/\/blog.dynox.cn\/?p=534"},"modified":"2011-07-07T15:06:06","modified_gmt":"2011-07-07T07:06:06","slug":"advanceonly-fileendoffileinformation","status":"publish","type":"post","link":"https:\/\/blog.dynox.cn\/?p=534","title":{"rendered":"AdvanceOnly &#8211; FileEndOfFileInformation"},"content":{"rendered":"<div class=\"gruber-markdown\"><p>IRP_MJ_SET_INFORMATION\u6709\u4e2a\u7279\u6b8a\u7684\u53c2\u6570\uff1aAdvanceOnly\uff0cDDK\u4e2d\u8bf4\u660e\u5982\u4e0b\uff1a<\/p>  <p><dt><b>IrpSp-&gt;Parameters.SetFile.AdvanceOnly<\/b><\/dt><\/p> <dd>Specifies conditions for the setting of each information value. If TRUE, each information value should be set only if greater than the current value. If FALSE, each information value should be set only if less than the current value. <\/dd>  <p>\u5b9e\u9645\u5b9e\u73b0\u4e2d\uff0c\u6b64\u53c2\u6570\u53ea\u9488\u5bf9FileEndOfFileInformation\u624d\u6709\u610f\u4e49\u3002FileEndOfFileInformation case\u662f\u7528\u6765\u5904\u7406\u6587\u4ef6\u6570\u636e\u5927\u5c0f\u7684\uff0c\u5373\u66f4\u6539\u6587\u4ef6\u6570\u636e\u957f\u5ea6\u3002\u4f46\u5f53AdvanceOnly\u4e3aTRUE\u7684\u65f6\u5019\uff0c\u60c5\u5f62\u5e76\u4e0d\u5982\u6b64\uff0c\u6b64\u65f6\u7684\u771f\u5b9e\u76ee\u7684\u662f\u66f4\u65b0ValidDataLength (VDL)\uff0c\u5e76\u4e0d\u662fEndOfFile\uff0c\u8fd9\u662f\u6700\u5bb9\u6613\u8ba9\u4eba\u8bef\u89e3\u7684\u5730\u65b9\u3002<\/p>  <p>\u4e0b\u9762\u662f\u4e00\u4e2a\u5178\u578b\u7684\u8c03\u7528\u5b9e\u4f8b\uff0c\u5806\u6808\u5206\u6790\u5982\u4e0b \uff08XP, i386\uff09\uff1a<\/p>  <blockquote>   <p>0: kd&gt; kb     <br \/>ChildEBP RetAddr&#160; Args to Child&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br \/>ba4e3bbc b16dfd58 89a462c0 899f8ad8 ba4e3c0c Ext2Fsd!Ext2SetFileInformation+0x2a2      <br \/>ba4e3bcc b16dfe67 89a462c0 0b2b27d2 899f8ad8 Ext2Fsd!Ext2DispatchRequest+0x9a       <br \/>ba4e3c0c 804f0095 898d4af8 88b66c40 88b66c40 Ext2Fsd!Ext2BuildRequest+0x89       <br \/>ba4e3c1c b9ed709e 8988b008 899de848 00000000 nt!IopfCallDriver+0x31      <br \/>ba4e3c48 804f0095 899f8ad8 88b66c40 88b66c40 fltMgr!FltpDispatch+0x152      <br \/>\u2026\u2026      <br \/>ba4e3cb4 804f0095 89a8ead8 88b66c40 89a8ead8 fltMgr!FltpDispatch+0x11f      <br \/>ba4e3cc4 804e2f43 00000000 88cbd008 806e59f0 nt!IopfCallDriver+0x31      <br \/>ba4e3cf8 804e59aa 88ccd4f8 ba4e3d20 80559690 nt!CcSetValidData+0xa5      <br \/>ba4e3d34 804e8081 89e31098 80564720 89e31998 nt!CcWriteBehind+0x258      <br \/>ba4e3d7c 805389bd 89e31098 00000000 89e31998 nt!CcWorkerThread+0x12f      <br \/>ba4e3dac 805cf84c 89e31098 00000000 00000000 nt!ExpWorkerThread+0xef      <br \/>ba4e3ddc 8054632e 805388ce 00000000 00000000 nt!PspSystemThreadStartup+0x34      <br \/>00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16<\/p> <\/blockquote>  <p>\u53ef\u4ee5\u770b\u51fa\uff0c\u8c03\u7528\u8005\u662fLazy-writer\u7ebf\u7a0b\u3002CcWriteBehind\u5c06dirty cache\u5199\u5165\u78c1\u76d8\u540e\u4f1a\u8c03\u7528CcStValidData\u6765\u66f4\u65b0\u5f53\u524d\u6587\u4ef6\u7684ValidDataLength\u3002Cache Manager\u5728\u6bcf\u4e2a\u6587\u4ef6\u7684SHARED_CACHE_MAP\u4e2d\u5728\u4fdd\u5b58\u7740\u6b64\u6587\u4ef6\u6700\u5927\u7684ValidDataLength \uff08\u53d8\u91cfValidDataGoal\uff0c\u7531\u810f\u9875\u7684\u6700\u5927\u504f\u79fb\u8ba1\u7b97\u51fa\uff09\uff0c\u5e76\u5728\u6bcf\u6b21\u5199\u5165cache\u540e\u544a\u77e5\u6587\u4ef6\u7cfb\u7edf\u3002<\/p>  <p>NTFS\u6587\u4ef6\u7cfb\u7edf\u4e2d\u6709VDL\u7684\u6982\u5ff5\uff0c\u4f46FAT\u53caEXT2\u90fd\u6ca1\u6709\uff0c\u53ea\u6709AllocationSize\u53caFileSize\u63cf\u8ff0\u3002Ext2Fsd\u662f\u76f4\u63a5\u5c06VDL\u7b49\u540c\u4e8eFileSize\u6765\u5904\u7406\u7684\u3002<\/p><\/div>","protected":false},"excerpt":{"rendered":"<p>IRP_MJ_SET_INFORMATION\u6709\u4e2a\u7279\u6b8a\u7684\u53c2\u6570\uff1aAdvanceOnly\uff0cDDK\u4e2d\u8bf4\u660e\u5982\u4e0b\uff1a Irp [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[9],"tags":[223,224,225,226],"views":2456,"_links":{"self":[{"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/posts\/534"}],"collection":[{"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=534"}],"version-history":[{"count":0,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/posts\/534\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}