{"id":601,"date":"2011-08-09T12:11:04","date_gmt":"2011-08-09T04:11:04","guid":{"rendered":"http:\/\/blog.dynox.cn\/?p=601"},"modified":"2011-08-10T13:31:53","modified_gmt":"2011-08-10T05:31:53","slug":"vpb%e7%9a%84%e6%9d%a5%e9%be%99%e5%8e%bb%e8%84%89%ef%bc%88%e4%b8%80%ef%bc%89","status":"publish","type":"post","link":"https:\/\/blog.dynox.cn\/?p=601","title":{"rendered":"VPB\u7684\u6765\u9f99\u53bb\u8109\uff08\u4e00\uff09"},"content":{"rendered":"<div class=\"gruber-markdown\"><p><font size=\"2\">VPB\u662fWindows I\/O Manager\u5b50\u7cfb\u7edf\u7684\u4e00\u4e2a\u91cd\u8981\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5168\u79f0\u4e3a Volume Parameter Block\u3002\u5b83\u7684\u4efb\u52a1\u662f\u7ed1\u5b9a\u5377\u8bbe\u5907\uff08\u5982\u78c1\u76d8\u5206\u533a\u6216\u865a\u62df\u78c1\u76d8\uff09\u548c\u63a5\u7ba1\u6b64\u5377\u8bbe\u5907\u7684\u6587\u4ef6\u7cfb\u7edf\uff08\u5982FastFat\uff0cNTFS\uff09\u3002Windows\u7cfb\u7edf\u4e0a\u7684\u6302\u8f7d\u70b9\uff08Mount Point\uff0c\u5982\u76d8\u7b26C:\uff09\u53ea\u80fd\u5b9a\u4f4d\u81f3\u5377\u8bbe\u5907\uff08\u5982\\Device\\HarddiskVolume1\uff09\uff0cWindows Object Manager\uff08\u5bf9\u8c61\u7ba1\u7406\u5668\uff09\u5728\u89e3\u6790\u8def\u5f84\u540d\u65f6\uff08\u5373Name Parsing\u8fc7\u7a0b\uff09\u8fd8\u8981\u901a\u8fc7\u5377\u8bbe\u5907\u7684VPB\u4fe1\u606f\u8fdb\u4e00\u6b65\u5b9a\u4f4d\u81f3\u63a5\u7ba1\u6b64\u5377\u8bbe\u5907\u7684\u6587\u4ef6\u7cfb\u7edf\u9a71\u52a8\u4e0a\u3002<\/font><\/p>  <p><a href=\"https:\/\/blog.dynox.cn\/wp-content\/uploads\/2011\/08\/VPB-P1.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"VPB\" border=\"0\" alt=\"Relationship of VPB, Storage Volume Device and File System Logical Volume Device\" src=\"https:\/\/blog.dynox.cn\/wp-content\/uploads\/2011\/08\/VPB-P1_thumb.png\" width=\"430\" height=\"242\" \/><\/a><\/p>  <p align=\"left\"><font size=\"2\">\u56fe\u4e00<\/font><\/p>  <p><font size=\"2\" face=\"Arial Narrow\"><strong>VPB\u7ed3\u6784\u8bf4\u660e\uff1a<\/strong><\/font><\/p>  <p><font size=\"2\" face=\"Arial Narrow\">\u5b9a\u4e49\u4e8eWDK\u5934\u6587\u4ef6inc\\ddk\\wdm.h\u4e2d<\/font><\/p>  <p>typedef struct _VPB {    <br \/>&#160;&#160;&#160; CSHORT Type;     <br \/>&#160;&#160;&#160; CSHORT Size;     <br \/>&#160;&#160;&#160; USHORT Flags;     <br \/>&#160;&#160;&#160; USHORT VolumeLabelLength; \/\/ in bytes     <br \/>&#160;&#160;&#160; struct _DEVICE_OBJECT *DeviceObject;     <br \/>&#160;&#160;&#160; struct _DEVICE_OBJECT *RealDevice;     <br \/>&#160;&#160;&#160; ULONG SerialNumber;     <br \/>&#160;&#160;&#160; ULONG ReferenceCount;     <br \/>&#160;&#160;&#160; WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH \/ sizeof(WCHAR)];     <br \/>} VPB, *PVPB<\/p>  <p><font size=\"2\">\u6210\u5458\u8bf4\u660e\uff1a<\/font><\/p>  <li>Type:&#160; \u9b54\u6570\u6807\u5fd7 IO_TYPE_VPB <\/li>  <li>Size:&#160;&#160; sizeof(VPB)    <br \/>Flags:&#160; \u6807\u5fd7\u4f4d\uff0c\u76f8\u5173\u6807\u5fd7\u63cf\u8ff0\u5982\u4e0b\uff1a     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>VPB_MOUNTED<\/strong> (1&lt;&lt;0):&#160;&#160;&#160;&#160;&#160;&#160; \u6b64\u5377\u5df2\u88ab\u6587\u4ef6\u7cfb\u7edf\u8bc6\u522b\u5e76\u5df2\u6302\u8f7d     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>VPB_LOCKED<\/strong> (1&lt;&lt;1):&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u6b64\u5377\u5df2\u88ab\u6587\u4ef6\u7cfb\u7edf\u9501\u5b9a\uff0c\u9501\u5b9a\u64cd\u4f5c\u7531\u8bf7\u6c42FSCTL_LOCK_VOLUME\u5b8c\u6210     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>VPB_PERSISTENT<\/strong> (1&lt;&lt;2):&#160;&#160; \u5c06VPB\u4e00\u76f4\u4fdd\u7559\u5728\u5185\u5b58\u4e2d\uff08\u4e0d\u91ca\u653e\uff09\uff0c\u5373\u4f7f\u6b64VPB\u5f15\u7528\u8ba1\u6570\u4e3a0     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>VPB_REMOVE_PENDING<\/strong> (1&lt;&lt;3): \u8868\u793a\u6b64\u5b58\u50a8\u8bbe\u5907\u5373\u5c06\u88ab\u5378\u8f7d\/\u5220\u9664\u3002\u6b64\u6807\u5fd7\u7531Pnp Manager(\u5373\u63d2     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u5373\u7528\u7ba1\u7406\u5668)\u7ba1\u7406\u548c\u4f7f\u7528\u3002\u6b64\u6807\u5fd7\u5728\u53ef\u5728\u5904\u7406Pnp\u8bf7\u6c42     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; IRP_MN_CANCEL_REMOVE_DEVICE\u65f6\u6e05\u9664     <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>VPB_RAW_MOUNT<\/strong> (1&lt;&lt;4): \u6307\u5b9a\u6b64\u5377\u4ec5\u7531\u7cfb\u7edfRAW\u6587\u4ef6\u7cfb\u7edf\u63a5\u7ba1 <\/li>  <li>VolumeLabelLength:&#160; \u5377\u6807\u957f\u5ea6\uff08in bytes\uff09 <\/li>  <li>DeviceObject:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u672a\u547d\u540d\u7684\u6587\u4ef6\u7cfb\u7edf\u903b\u8f91\u5377\u5bf9\u8c61\uff08unnamed logical volume\uff09 <\/li>  <li>RealDevice:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u7269\u7406\u5377\u8bbe\u5907\uff08\u5982\\Device\\HarddiskVolume1\uff09 <\/li>  <li>SerialNumber:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u5377\u5e8f\u5217\u53f7 <\/li>  <li>ReferenceCount:&#160;&#160;&#160;&#160;&#160; VPB\u7684\u5f15\u7528\u8ba1\u6570\uff0c\u7528\u4ee5\u63a7\u5236VPB\u7684\u751f\u547d\u5468\u671f <\/li>  <li>VolumeLabel:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u5377\u6807\uff0c\u6700\u957f32\u4e2a\u53cc\u5b57\u8282    <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; #define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))     <p><font size=\"2\">VPB\u7684\u64cd\u4f5c\uff08\u5305\u62ec\u521d\u59cb\u5316\uff09\u662f\u7531I\/O Manager\u53ca\u6587\u4ef6\u7cfb\u7edf\u4e8c\u8005\u5171\u540c\u5b8c\u6210\u7684\uff0c\u6240\u4ee5\u591a\u5934\u7ba1\u7406\u6b63\u662fVPB\u7684\u590d\u6742\u6027\u6240\u5728\uff0c\u597d\u5728\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0cVPB\u7684\u7533\u8bf7\u548c\u91ca\u653e\u5747\u7531I\/O Manager\u5b9e\u65bd\uff0c\u6b64\u65f6VPB\u4ece\u521b\u5efa\u5230\u91ca\u653e\u7684\u751f\u547d\u5468\u671f\u4e2d\u57fa\u672c\u4e0a\u662f\u5355\u7ebf\u5f0f\u53d1\u5c55\u7684\u3002\u4f46\u5f53\u9047\u5230Force Dismount\u53caRemount\u7279\u6b8a\u60c5\u51b5\u65f6\uff0c\u6587\u4ef6\u7cfb\u7edf\u4f1a\u76f4\u63a5\u5e72\u9884VPB\u7684\u521b\u5efa\u53ca\u91ca\u653e\uff0c\u81f4\u4f7fVPB\u7684\u5355\u7ebf\u5f0f\u7684\u53d1\u5c55\u5468\u671f\u4e00\u5206\u4e3a\u4e8c\uff0c\u81f4\u4f7fVPB\u7684\u7ba1\u7406\u53d8\u5f97\u66f4\u52a0\u590d\u6742\u3002<\/font><\/p>    <p><font size=\"2\">\u6211\u4eec\u5148\u4ece\u6b63\u5e38\u60c5\u51b5\u5f00\u59cb\u4ecb\u7ecd\uff0c\u5148\u4ecb\u7ecd\u51e0\u4e2aVPB\u76f8\u5173\u7684\u5185\u90e8\u51fd\u6570\uff1a<\/font><\/p>    <p>0: kd&gt; x nt!*Vpb*      <br \/><strike>fffff800`01d62940 nt!IovpBuildDriverObjectList = &lt;no type information&gt;<\/strike>       <br \/>fffff800`0189f150 nt!IopDereferenceVpbAndFree = &lt;no type information&gt;       <br \/>fffff800`01c54400 nt!IopCreateVpb = &lt;no type information&gt;       <br \/>fffff800`01968830 nt!IopReferenceVerifyVpb = &lt;no type information&gt;       <br \/>fffff800`01865d0c nt!IopMountInitializeVpb = &lt;no type information&gt;       <br \/>fffff800`01865db0 nt!IoAcquireVpbSpinLock = &lt;no type information&gt;       <br \/>fffff800`01af7640 nt!IopVpbSpinLock = &lt;no type information&gt;       <br \/>fffff800`01903ab0 nt!IopCheckVpbMounted = &lt;no type information&gt;       <br \/>fffff800`01865a48 nt!IopQueryVpbFlagsSafe = &lt;no type information&gt;       <br \/><strike>fffff800`01c827b0 nt!HvpBuildMapAndCopy = &lt;no type information&gt;<\/strike>       <br \/>fffff800`01865de0 nt!IoReleaseVpbSpinLock = &lt;no type information&gt;       <br \/><strike>fffff800`01c82ca0 nt!HvpBuildMap = &lt;no type information&gt;<\/strike><\/p>    <p>IoAcquireVpbSinLock()\u53caIoReleaseVpbSpinLock()\u4e3a\u7cfb\u7edf\u652f\u6301\u51fd\u6570\uff08kernel support routine\uff09\u3002Windows I\/O Manager\u5728\u5185\u6838\u4e2d\u7ef4\u62a4\u4e00\u4e2a\u5168\u5c40\u7684spinlock\u9501\uff0c\u4ee5\u4fdd\u62a4\u6240\u6709\u5bf9Vpb\u7ed3\u6784\u4f53\u7684\u8bbf\u95ee\u3002\u6587\u4ef6\u7cfb\u7edf\u548cI\/O Manager\u672c\u8eab\u5728\u8bbf\u95eeVpb\u65f6\u90fd\u5fc5\u987b\u8c03\u7528IoAcquireVpbSpinLock()\uff0c\u8bbf\u95ee\u7ed3\u675f\u540e\u518d\u8c03\u7528IoReleaseVpbSpinLock()\u91ca\u653e\u5168\u5c40\u81ea\u9500\u9501\u3002<\/p>    <p>IopCreateVpb(): \u4eceNonPagedPool\u4e2d\u7533\u8bf7VPB\uff0c\u7136\u540e\u7b80\u5355\u521d\u59cb\u5316VPB\uff08type\uff0csize\uff09\u5e76\u4e0eRealDevice\u4e00\u8d77\u7ed1\u5b9a<\/p>    <p>IopCheckVpbMounted(): \u68c0\u6d4bDeviceObject\u662f\u4e0d\u662f\u5df2\u7ecf\u6302\u8f7d\uff0c\u82e5\u6ca1\u6709\u5219\u4f1a\u8c03\u7528IopMountVolume\u5c1d\u8bd5\u53bb\u6302\u8f7d<\/p>    <p>IopMountInitializeVpb(): \u8bbe\u7f6e\u65b0\u6302\u8f7d\u5377\u8bbe\u5907\u7684Vpb\uff08\u8bbe\u7f6eVPB_MOUNTED\u6807\u8bb0\uff0c\u589e\u52a0\u5f15\u7528\u8ba1\u6570\u7b49\uff09\uff0c\u7531      <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; IopMountVolume\u6302\u8f7d\u6210\u529f\u540e\u8c03\u7528<\/p>    <p>IopQueryVpbFlagsSafe(): \u83b7\u53d6\u8bbe\u5907DeviceObject\u7684VPB\u7684\u6807\u5fd7\u4f4d\u4fe1\u606f\uff0c\u5373DeviceObject-&gt;Vpb-&gt;Flags\u3002\u5982      <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u679cDeviceObject-&gt;Vpb\u4e3aNULL\uff0c\u5219\u8fd4\u56de0\u503c\u3002\uff08\u8f83\u65b0Windows\u7248\u672c\u624d\u5f15\u5165\u7684\u51fd\u6570\uff09       <br \/>IopReferenceVerifyVpb(): \u5982\u679c\u5377\u8bbe\u5907\u5df2\u88ab\u6302\u8f7d\uff0c\u5219\u8fd4\u56de\u5176VPB\u53ca\u5bf9\u5e94\u7684\u6587\u4ef6\u7cfb\u7edf\u903b\u8f91\u5377\u8bbe\u5907\u5bf9\u8c61\uff0c\u6b64\u51fd\u6570       <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u589e\u52a0VPB\u7684\u5f15\u7528\u8ba1\u6570<\/p>    <p>IopDereferenceVpbAndFree():\u987e\u540d\u5373\u77e5\u5176\u4e49\uff0c\u6b64\u51fd\u6570\u4f1a\u51cf\u5c11VPB\u7684\u5f15\u7528\u8ba1\u6570\uff0c\u5982\u679c\u5f15\u7528\u8ba1\u6570\u5f520\u5219\u4f1a\u91ca\u653e      <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \u6b64VPB\u81f3NonPagedPool\u3002\uff08\u7279\u4f8bVPB_PERSISTENT\u9664\u5916\uff09<\/p>    <p><font size=\"2\"><strong>VPB\u7684\u521b\u5efa\u53ca\u521d\u59cb\u5316:<\/strong><\/font><\/p>    <p><font size=\"2\">VPB\u771f\u6b63\u662f\u7531IoCreateDevice()\u5728\u521b\u5efa\u65b0\u8bbe\u5907\u5bf9\u8c61\u65f6\u5206\u914d\u7684\uff0c\u5f53\u7136IoCreateDevice()\u662f\u8c03\u7528\u7684 IopCreateVpb()\u6765\u505a\u7684VPB\u7684\u5206\u914d\u53ca\u6700\u521d\u7684\u521d\u59cb\u5316\u3002<\/font><\/p>    <p><font size=\"2\">IoCreateDevice()\u4e0d\u662f\u5bf9\u6240\u6709\u7684\u8bbe\u5907\u5bf9\u8c61\u90fd\u5206\u914dVPB\uff0c\u800c\u662f\u53ea\u9488\u5bf94\u79cd\u8bbe\u5907\uff1a<\/font><\/p>    <ul>     <li>FILE_DEVICE_DISK (0x07) <\/li>      <li>FILE_DEVICE_TAPE (0x1f) <\/li>      <li>FILE_DEVICE_CD_ROM (0x02) <\/li>      <li>FILE_DEVICE_VIRTUAL_DISK (0x24) <\/li>   <\/ul>    <p><font size=\"2\">VPB\u7684\u521d\u59cb\u5316\u5e76\u4e0d\u590d\u6742\uff0c\u56e0\u4e3aVPB\u7684\u7ed3\u6784\u4f53\u5e76\u4e0d\u5e9e\u5927\uff0c\u4f46\u662f\uff0c\u5176\u521d\u59cb\u5316\u64cd\u4f5c\u76f8\u5f53\u5206\u6563\uff0c\u7531\u4e0b\u9762\u76843\u4e2a\u8fc7\u7a0b\u5171\u540c\u5b8c\u6210\uff1a<\/font><\/p>    <ul>     <li>IoCreateDevice()\/IopCreateVpb() <\/li>      <li>IopParseDevice()\/IopCheckVpbMounted()\/IopMountVolume()\/File system IPR_MN_MOUNT_VOLUME        <br \/>handler(\u4ee5FastFat\u4e3a\u4f8b\uff1aFatMountVolume) <\/li>      <li>IopParseDevice()\/IopCheckVpbMounted()\/IopMountVolume()\/IopMountInitializeVpb() <\/li>   <\/ul>    <p><font size=\"2\">\u5177\u4f53\u6bcf\u4e00\u90e8\u5206\u90fd\u505a\u4e86\u4ec0\u4e48\u5e76\u4e0d\u96be\u53d1\u6398\uff0c\u8bfb\u8005\u4e0d\u59a8\u7528windbg\u4f5c\u4e2a\u7b80\u5355\u5b9e\u9a8c\u3002<\/font><\/p>    <p><font size=\"2\">\u4e0b\u9762\u4ee5FastFat (Windows 7 X64)\u4e3a\u4f8b\u4ecb\u7ecd\u4e00\u4e2a\u5df2\u52a0\u8f7d\u5377\u7684VPB\u5185\u5bb9\uff0c\u5b9e\u9a8c\u65f6\u6211\u4eec\u63d2\u5165\u4e00\u4e2aFAT32\u683c\u5f0f\u7684SD\u5361\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6302\u8f7d\u3002\u4e0b\u9762<\/font><font size=\"2\">\u6765\u679a\u4e3eFastFat\u6587\u4ef6\u7cfb\u7edf\u961f\u5217\u4e2d\u6240\u6709\u7684\u903b\u8f91\u5377\uff1a<\/font><\/p>    <p>0: kd&gt; ?? fastfat!FatData      <br \/>struct _FAT_DATA       <br \/>&#160;&#160; +0x000 NodeTypeCode&#160;&#160;&#160;&#160; : 0x500       <br \/>&#160;&#160; +0x002 NodeByteSize&#160;&#160;&#160;&#160; : 304       <br \/>&#160;&#160; +0x008 LazyWriteThread&#160; : (null)       <br \/><strong>&#160;&#160; +0x010 VcbQueue&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _LIST_ENTRY [ 0xfffffa80`047a8b68 - 0xfffffa80`047a8b68 ]<\/strong>       <br \/>&#160;&#160; +0x020 DriverObject&#160;&#160;&#160;&#160; : 0xfffffa80`05809e70 _DRIVER_OBJECT       <br \/>&#160;&#160; +0x028 DiskFileSystemDeviceObject : 0xfffffa80`04842880       <br \/>&#160;&#160; +0x030 CdromFileSystemDeviceObject : 0xfffffa80`05bf6890       <br \/>&#160;&#160; +0x038 Resource&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _ERESOURCE       <br \/>&#160;&#160; +0x0a0 OurProcess&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`036edb30 _KPROCESS       <br \/>&#160;&#160; +0x0a8 NumberProcessors : 2       <br \/>&#160;&#160; +0x0ac ChicagoMode&#160;&#160;&#160;&#160;&#160; : 0y1       <br \/>&#160;&#160; +0x0ac FujitsuFMR&#160;&#160;&#160;&#160;&#160;&#160; : 0y0       <br \/>&#160;&#160; +0x0ac AsyncCloseActive : 0y0       <br \/>&#160;&#160; +0x0ac ShutdownStarted&#160; : 0y0       <br \/>&#160;&#160; +0x0ac CodePageInvariant : 0y1       <br \/>&#160;&#160; +0x0ac HighAsync&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0y0       <br \/>&#160;&#160; +0x0ac HighDelayed&#160;&#160;&#160;&#160;&#160; : 0y0       <br \/>&#160;&#160; +0x0b0 AsyncCloseCount&#160; : 0       <br \/>&#160;&#160; +0x0b8 AsyncCloseList&#160;&#160; : _LIST_ENTRY [ 0xfffff880`070e3578 - 0xfffff880`070e3578 ]       <br \/>&#160;&#160; +0x0c8 DelayedCloseCount : 1       <br \/>&#160;&#160; +0x0d0 DelayedCloseList : _LIST_ENTRY [ 0xfffff8a0`0b4315b0 - 0xfffff8a0`0b4315b0 ]       <br \/>&#160;&#160; +0x0e0 FatCloseItem&#160;&#160;&#160;&#160; : 0xfffffa80`057e8480 _IO_WORKITEM       <br \/>&#160;&#160; +0x0e8 GeneralSpinLock&#160; : 0       <br \/>&#160;&#160; +0x0f0 CacheManagerCallbacks : _CACHE_MANAGER_CALLBACKS       <br \/>&#160;&#160; +0x110 CacheManagerNoOpCallbacks : _CACHE_MANAGER_CALLBACKS       <br \/>      <br \/>0: kd&gt; !list &quot;-t nt!_LIST_ENTRY.Flink -e -x \\&quot;dd @$extret l4;&#160; dt fastfat!_VCB @$extret-0x58\\&quot; <strong>0xfffffa80`047a8b68<\/strong>&quot;       <br \/>dd @$extret l4;&#160; dt fastfat!_VCB @$extret-0x58       <br \/>fffffa80`047a8b68&#160; 070e34d0 fffff880 070e34d0 fffff880       <br \/>&#160;&#160; +0x000 VolumeFileHeader : _FSRTL_ADVANCED_FCB_HEADER       <br \/>&#160;&#160; +0x058 VcbLinks&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _LIST_ENTRY [ 0xfffff880`070e34d0 - 0xfffff880`070e34d0 ]       <br \/><strong>&#160;&#160; +0x068 TargetDeviceObject : 0xfffffa80`053c7040 _DEVICE_OBJECT<\/strong>       <br \/>&#160;&#160; <strong>+0x070 Vpb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`047e8830 _VPB<\/strong>       <br \/>&#160;&#160; +0x078 VcbState&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0x101002       <br \/>&#160;&#160; +0x07c VcbCondition&#160;&#160;&#160;&#160; : 1 ( VcbGood )       <br \/>&#160;&#160; +0x080 RootDcb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`0480b940 _FCB       <br \/>&#160;&#160; +0x088 NumberOfWindows&#160; : 2       <br \/>&#160;&#160; +0x090 Windows&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffff8a0`0b4b8530 _FAT_WINDOW       <br \/>&#160;&#160; +0x098 CurrentWindow&#160;&#160;&#160; : 0xfffff8a0`0b4b853c _FAT_WINDOW       <br \/>&#160;&#160; +0x0a0 DirectAccessOpenCount : 0       <br \/>&#160;&#160; +0x0a4 ShareAccess&#160;&#160;&#160;&#160;&#160; : _SHARE_ACCESS       <br \/>&#160;&#160; +0x0c0 OpenFileCount&#160;&#160;&#160; : 1       <br \/>&#160;&#160; +0x0c4 ReadOnlyCount&#160;&#160;&#160; : 1       <br \/>&#160;&#160; +0x0c8 InternalOpenCount : 2       <br \/>&#160;&#160; +0x0cc ResidualOpenCount : 2       <br \/>&#160;&#160; +0x0d0 Bpb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : BIOS_PARAMETER_BLOCK       <br \/>&#160;&#160; +0x100 First0x24BytesOfBootSector : (null)       <br \/>&#160;&#160; +0x108 AllocationSupport : &lt;unnamed-tag&gt;       <br \/>&#160;&#160; +0x128 DirtyFatMcb&#160;&#160;&#160;&#160;&#160; : _LARGE_MCB       <br \/>&#160;&#160; +0x148 BadBlockMcb&#160;&#160;&#160;&#160;&#160; : _LARGE_MCB       <br \/>&#160;&#160; +0x168 FreeClusterBitMap : _RTL_BITMAP       <br \/>&#160;&#160; +0x178 FreeClusterBitMapMutex : _FAST_MUTEX       <br \/>&#160;&#160; +0x1b0 Resource&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _ERESOURCE       <br \/>&#160;&#160; +0x218 ChangeBitMapResource : _ERESOURCE       <br \/>&#160;&#160; +0x280 VirtualVolumeFile : 0xfffffa80`0480aa10 _FILE_OBJECT       <br \/>&#160;&#160; +0x288 SectionObjectPointers : _SECTION_OBJECT_POINTERS       <br \/>&#160;&#160; +0x2a0 ClusterHint&#160;&#160;&#160;&#160;&#160; : 2       <br \/>&#160;&#160; +0x2a8 CurrentDevice&#160;&#160;&#160; : 0xfffffa80`047e8cd0 _DEVICE_OBJECT       <br \/>&#160;&#160; +0x2b0 VirtualEaFile&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x2b8 EaFcb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x2c0 FileObjectWithVcbLocked : (null)       <br \/>&#160;&#160; +0x2c8 DirNotifyList&#160;&#160;&#160; : _LIST_ENTRY [ 0xfffffa80`047a8dd8 - 0xfffffa80`047a8dd8 ]       <br \/>&#160;&#160; +0x2d8 NotifySync&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`056fec30       <br \/>&#160;&#160; +0x2e0 DirectoryFileCreationMutex : _FAST_MUTEX       <br \/>&#160;&#160; +0x318 VerifyThread&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x320 CleanVolumeDpc&#160;&#160; : _KDPC       <br \/>&#160;&#160; +0x360 CleanVolumeTimer : _KTIMER       <br \/>&#160;&#160; +0x3a0 LastFatMarkVolumeDirtyCall : _LARGE_INTEGER 0x0       <br \/>&#160;&#160; +0x3a8 Statistics&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`05b5ec80 _FILE_SYSTEM_STATISTICS       <br \/>&#160;&#160; +0x3b0 Tunnel&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : TUNNEL       <br \/>&#160;&#160; +0x408 ChangeCount&#160;&#160;&#160;&#160;&#160; : 0       <br \/>&#160;&#160; +0x410 SwapVpb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`05b5ec10 _VPB       <br \/>&#160;&#160; +0x418 AsyncCloseList&#160;&#160; : _LIST_ENTRY [ 0xfffffa80`047a8f28 - 0xfffffa80`047a8f28 ]       <br \/>&#160;&#160; +0x428 DelayedCloseList : _LIST_ENTRY [ 0xfffff8a0`0b4315c0 - 0xfffff8a0`0b4315c0 ]       <br \/>&#160;&#160; +0x438 AdvancedFcbHeaderMutex : _FAST_MUTEX       <br \/>&#160;&#160; +0x470 CloseContext&#160;&#160;&#160;&#160; : 0xfffff8a0`0b553a90 CLOSE_CONTEXT       <br \/>&#160;&#160; +0x478 CloseContextCount : 1<\/p>    <p><font size=\"2\">\u5f53\u524d\u7cfb\u7edf\u4e2d\u53ea\u6709\u4e00\u4e2aFAT32\u5377\uff0c\u5373\u6211\u4eec\u521a\u63d2\u5165\u7684SD\u5361\u3002\u4e0b\u9762\u6253\u5370\u51faVPB\u7684\u5185\u5bb9\uff1a<\/font><\/p>    <p><strong>0: kd&gt; dt _VPB 0xfffffa80`047e8830<\/strong>       <br \/>nt!_VPB       <br \/>&#160;&#160; +0x000 Type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 10       <br \/>&#160;&#160; +0x002 Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 96       <br \/>&#160;&#160; +0x004 Flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 1       <br \/>&#160;&#160; +0x006 VolumeLabelLength : 0x10       <br \/>&#160;&#160; +0x008 DeviceObject&#160;&#160;&#160;&#160; : <strong>0xfffffa80`047a8970<\/strong> _DEVICE_OBJECT       <br \/>&#160;&#160; +0x010 RealDevice&#160;&#160;&#160;&#160;&#160;&#160; : <strong>0xfffffa80`047e8cd0<\/strong> _DEVICE_OBJECT       <br \/>&#160;&#160; +0x018 SerialNumber&#160;&#160;&#160;&#160; : 0x51e712c6       <br \/>&#160;&#160; +0x01c ReferenceCount&#160;&#160; : 2       <br \/>&#160;&#160; +0x020 VolumeLabel&#160;&#160;&#160;&#160;&#160; : [32]&#160; &quot;CANON_DC&quot;<\/p>    <p><font size=\"2\">Vpb-&gt;Flags\u663e\u793a\u5377\u662f\u5df2\u6302\u8f7d\u7684\uff0c\u5373\u6807\u5fd7\u4f4dVBP_MOUNTED\u5df2\u88ab\u8bbe\u7f6e\u3002\u4eceVpb\u5185\u5bb9\u53ef\u77e5\uff0c\u6b64SD\u5361\u7684\u5377\u6807\u4e3a&quot;CANON_DC&quot;\uff0c\u5b9e\u9645\u4e0a\u5b83\u5c31\u662fCANON\u76f8\u673a\u7684\u5b58\u50a8\u5361\u3002DeviceObject\uff0c\u5373\u6587\u4ef6\u7cfb\u7edf\u903b\u8f91\u5377\u8bbe\u5907\u4e3a<strong>0xfffffa80`047a8970<\/strong>\uff1bRealDevice\uff0c\u5373\u5b58\u50a8\u6808\u4e0a\u6700\u5e95\u5c42\u7684\u8bbe\u5907\u4e3a<strong>0xfffffa80`047e8cd0<\/strong>\u3002<\/font><\/p>    <p><strong>0: kd&gt; !devobj 0xfffffa80`047e8cd0        <br \/><\/strong>Device object (fffffa80047e8cd0) is for:       <br \/>HarddiskVolume17 \\Driver\\volmgr DriverObject fffffa8004086e70       <br \/>Current Irp 00000000 RefCount 2 Type 00000007 Flags 00003050       <br \/><strong>Vpb fffffa80047e8830<\/strong> Dacl fffff9a109ae12b0 DevExt fffffa80047e8e20 DevObjExt fffffa80047e8f88 Dope fffffa800480c840 DevNode fffffa80047e8a00       <br \/>ExtensionFlags (0000000000)&#160; <br \/>AttachedDevice (Upper) fffffa80047e5ac0 \\Driver\\fvevol       <br \/>Device queue is not busy.<\/p>    <p><strong>0: kd&gt; !devobj 0xfffffa80`047a8970        <br \/><\/strong>Device object (fffffa80047a8970) is for:       <br \/>&#160; \\FileSystem\\fastfat DriverObject fffffa8005809e70       <br \/>Current Irp 00000000 RefCount 0 Type 00000008 Flags 00000000       <br \/>DevExt fffffa80047a8ac0 DevObjExt fffffa80047a8f90       <br \/>ExtensionFlags (0x00000800)&#160; <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Unknown flags 0x00000800<\/p>    <p><strong>0: kd&gt; dt _DEVICE_OBJECT 0xfffffa80`047e8cd0<\/strong>       <br \/>nt!_DEVICE_OBJECT       <br \/>&#160;&#160; +0x000 Type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 3       <br \/>&#160;&#160; +0x002 Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0x2b8       <br \/>&#160;&#160; +0x004 ReferenceCount&#160;&#160; : 2       <br \/>&#160;&#160; +0x008 DriverObject&#160;&#160;&#160;&#160; : 0xfffffa80`04086e70 _DRIVER_OBJECT       <br \/>&#160;&#160; +0x010 NextDevice&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`045ed440 _DEVICE_OBJECT       <br \/>&#160;&#160; +0x018 AttachedDevice&#160;&#160; : 0xfffffa80`047e5ac0 _DEVICE_OBJECT       <br \/>&#160;&#160; +0x020 CurrentIrp&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x028 Timer&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x030 Flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0x3050       <br \/>&#160;&#160; +0x034 Characteristics&#160; : 1       <br \/><strong>&#160;&#160; +0x038 Vpb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`047e8830 _VPB<\/strong>       <br \/>&#160;&#160; +0x040 DeviceExtension&#160; : 0xfffffa80`047e8e20       <br \/>&#160;&#160; +0x048 DeviceType&#160;&#160;&#160;&#160;&#160;&#160; : 7       <br \/>&#160;&#160; +0x04c StackSize&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 9 ''       <br \/>&#160;&#160; +0x050 Queue&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : &lt;unnamed-tag&gt;       <br \/>&#160;&#160; +0x098 AlignmentRequirement : 0       <br \/>&#160;&#160; +0x0a0 DeviceQueue&#160;&#160;&#160;&#160;&#160; : _KDEVICE_QUEUE       <br \/>&#160;&#160; +0x0c8 Dpc&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _KDPC       <br \/>&#160;&#160; +0x108 ActiveThreadCount : 0       <br \/>&#160;&#160; +0x110 SecurityDescriptor : 0xfffff8a0`099c1210       <br \/>&#160;&#160; +0x118 DeviceLock&#160;&#160;&#160;&#160;&#160;&#160; : _KEVENT       <br \/>&#160;&#160; +0x130 SectorSize&#160;&#160;&#160;&#160;&#160;&#160; : 0x200       <br \/>&#160;&#160; +0x132 Spare1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 1       <br \/>&#160;&#160; +0x138 DeviceObjectExtension : 0xfffffa80`047e8f88 _DEVOBJ_EXTENSION       <br \/>&#160;&#160; +0x140 Reserved&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null) <\/p>    <p><strong>0: kd&gt; dt _DEVICE_OBJECT 0xfffffa80`047a8970<\/strong>       <br \/>nt!_DEVICE_OBJECT       <br \/>&#160;&#160; +0x000 Type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 3       <br \/>&#160;&#160; +0x002 Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0x620       <br \/>&#160;&#160; +0x004 ReferenceCount&#160;&#160; : 0       <br \/>&#160;&#160; +0x008 DriverObject&#160;&#160;&#160;&#160; : 0xfffffa80`05809e70 _DRIVER_OBJECT       <br \/>&#160;&#160; +0x010 NextDevice&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`05bf6890 _DEVICE_OBJECT       <br \/>&#160;&#160; +0x018 AttachedDevice&#160;&#160; : 0xfffffa80`0480ab50 _DEVICE_OBJECT       <br \/>&#160;&#160; +0x020 CurrentIrp&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x028 Timer&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x030 Flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0       <br \/>&#160;&#160; +0x034 Characteristics&#160; : 0       <br \/>&#160;&#160; +0x038 Vpb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x040 DeviceExtension&#160; : 0xfffffa80`047a8ac0       <br \/>&#160;&#160; +0x048 DeviceType&#160;&#160;&#160;&#160;&#160;&#160; : 8       <br \/>&#160;&#160; +0x04c StackSize&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 12 ''       <br \/>&#160;&#160; +0x050 Queue&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : &lt;unnamed-tag&gt;       <br \/>&#160;&#160; +0x098 AlignmentRequirement : 0       <br \/>&#160;&#160; +0x0a0 DeviceQueue&#160;&#160;&#160;&#160;&#160; : _KDEVICE_QUEUE       <br \/>&#160;&#160; +0x0c8 Dpc&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _KDPC       <br \/>&#160;&#160; +0x108 ActiveThreadCount : 0       <br \/>&#160;&#160; +0x110 SecurityDescriptor : (null)       <br \/>&#160;&#160; +0x118 DeviceLock&#160;&#160;&#160;&#160;&#160;&#160; : _KEVENT       <br \/>&#160;&#160; +0x130 SectorSize&#160;&#160;&#160;&#160;&#160;&#160; : 0x200       <br \/>&#160;&#160; +0x132 Spare1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 1       <br \/>&#160;&#160; +0x138 DeviceObjectExtension : 0xfffffa80`047a8f90 _DEVOBJ_EXTENSION       <br \/>&#160;&#160; +0x140 Reserved&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null) <\/p>    <p><font size=\"2\">Vcb-&gt;Vpb \u4e0eVcb-&gt;Vbp-&gt;RealDevice-&gt;Vpb\u662f\u4e00\u81f4\u7684\u3002\u4e0b\u9762\u518d\u6765\u7814\u7a76\u4e00\u4e0b\u5b58\u50a8\u8bbe\u5907\u6808\u7684\u6700\u4e0a\u5c42\u7684DeviceObject\uff0c\u5373Vcb-&gt;TargetDeviceObject (0xfffffa80`053c7040):<\/font><\/p>    <p><strong>1: kd&gt; !devobj 0xfffffa80`053c7040<\/strong>       <br \/>Device object (fffffa80053c7040) is for:       <br \/>&#160; \\Driver\\volsnap DriverObject fffffa80045c79b0       <br \/>Current Irp 00000000 RefCount 0 Type 00000007 Flags 00002010       <br \/>DevExt fffffa80053c7190 DevObjExt fffffa80053c7d38       <br \/>ExtensionFlags (0x00000800)&#160; <br \/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Unknown flags 0x00000800       <br \/>AttachedTo (Lower) fffffa80047e5ac0 \\Driver\\fvevol       <br \/>Device queue is not busy.       <br \/><strong>1: kd&gt; dt _DEVICE_OBJECT 0xfffffa80`053c7040<\/strong>       <br \/>nt!_DEVICE_OBJECT       <br \/>&#160;&#160; +0x000 Type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 3       <br \/>&#160;&#160; +0x002 Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0xcf8       <br \/>&#160;&#160; +0x004 ReferenceCount&#160;&#160; : 0       <br \/>&#160;&#160; +0x008 DriverObject&#160;&#160;&#160;&#160; : 0xfffffa80`045c79b0 _DRIVER_OBJECT       <br \/>&#160;&#160; +0x010 NextDevice&#160;&#160;&#160;&#160;&#160;&#160; : 0xfffffa80`04649060 _DEVICE_OBJECT       <br \/>&#160;&#160; +0x018 AttachedDevice&#160;&#160; : (null)       <br \/>&#160;&#160; +0x020 CurrentIrp&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x028 Timer&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null)       <br \/>&#160;&#160; +0x030 Flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0x2010       <br \/>&#160;&#160; +0x034 Characteristics&#160; : 0x101       <br \/><strong>&#160;&#160; +0x038 Vpb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null) <\/strong>      <br \/>&#160;&#160; +0x040 DeviceExtension&#160; : 0xfffffa80`053c7190       <br \/><strong>&#160;&#160; +0x048 DeviceType&#160;&#160;&#160;&#160;&#160;&#160; : 7<\/strong>       <br \/>&#160;&#160; +0x04c StackSize&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 11 ''       <br \/>&#160;&#160; +0x050 Queue&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : &lt;unnamed-tag&gt;       <br \/>&#160;&#160; +0x098 AlignmentRequirement : 0       <br \/>&#160;&#160; +0x0a0 DeviceQueue&#160;&#160;&#160;&#160;&#160; : _KDEVICE_QUEUE       <br \/>&#160;&#160; +0x0c8 Dpc&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : _KDPC       <br \/>&#160;&#160; +0x108 ActiveThreadCount : 0       <br \/>&#160;&#160; +0x110 SecurityDescriptor : (null)       <br \/>&#160;&#160; +0x118 DeviceLock&#160;&#160;&#160;&#160;&#160;&#160; : _KEVENT       <br \/>&#160;&#160; +0x130 SectorSize&#160;&#160;&#160;&#160;&#160;&#160; : 0x200       <br \/>&#160;&#160; +0x132 Spare1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 0       <br \/>&#160;&#160; +0x138 DeviceObjectExtension : 0xfffffa80`053c7d38 _DEVOBJ_EXTENSION       <br \/>&#160;&#160; +0x140 Reserved&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : (null) <\/p>    <p><font size=\"2\">\u6709\u6ca1\u6709\u89c9\u5bdf\u51fa\u6709\u4ec0\u4e48\u5f02\u5e38\u72b6\u51b5\uff1fTargetDeviceObject\u7684DeviceType\u4e3aFILE_DEVICE_DISK (0x07)\uff0c\u4f46\u5b83\u7684Vpb\u9879\u5374\u662f\u7a7a\u7684\u3002\u6839\u636e\u4e0a\u9762\u5bf9IoCreateDevice\u7684\u5206\u6790\uff0c\u5bf9\u6240\u67094\u79cd\u8bbe\u5907\u7c7b\u578b\uff0c\u5728\u521b\u5efa\u8bbe\u5907\u65f6\u90fd\u4f1a\u5206\u914dVPB\uff0c\u96be\u9053\u662f\u88ab\u91ca\u653e\u4e86\uff1f<\/font><\/p>    <p><font size=\"2\">\u7ecf\u8fc7\u7814\u7a76\u624d\u53d1\u73b0\u5176\u4e2d\u53e6\u6709\u8e4a\u8df7\u3002TargetDeviceObject\u662f\u7531VolSnap\u521b\u5efa\u7684\uff0cVolSnap\u662fWindows Volume Shadow Copy Service\u7684\u6838\u5fc3\u7ec4\u4ef6\uff0cVolSnap\u4e3a\u6bcf\u4e2a\u5377\u8bbe\u5907\u90fd\u521b\u5efaFdo\u8bbe\u5907\u5e76\u5c06\u5176\u52a0\u5165\u8bbe\u5907\u6808\u4e2d\u3002\u4f46\u8e4a\u8df7\u7684\u5730\u65b9\u662f\uff0c\u5728\u521b\u5efa\u8bbe\u5907\u5bf9\u8c61\u65f6\uff0cVolSnap\u4f7f\u7528\u7684DeviceType\u5374\u662fFILE_DEVICE_UNKNOWN (0x22)\uff0c\u5e76\u5728\u5c06\u8bbe\u5907\u52a0\u5165\u5b58\u50a8\u8bbe\u5907\u6808\u540e\uff0c\u518d\u5c06TargetDeviceObject\u7684DeviceType\u4eceFILE_DEVICE_UNKOWN\u6539\u4e3aFILE_DEVICE_DISK\u7684\uff0c\u6240\u4ee5TargetDeviceObject\u7684Vpb\u9879\u4e3a\u7a7a\u3002<\/font><\/p>    <p><font size=\"2\">\u6709\u5174\u8da3\u5730\u8bdd\u53ef\u4ee5\u53cd\u6c47\u7f16\u4e00\u4e0bvolsnap!VolSnapAddDevice\u7684\u4ee3\u7801\u3002<\/font><\/p>    <p align=\"right\">\uff08to be continued\uff09<\/p>     <\/li><\/div>","protected":false},"excerpt":{"rendered":"<p>VPB\u662fWindows I\/O Manager\u5b50\u7cfb\u7edf\u7684\u4e00\u4e2a\u91cd\u8981\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5168\u79f0\u4e3a Volume Paramet [&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":[279,288,287,280],"views":4505,"_links":{"self":[{"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/posts\/601"}],"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=601"}],"version-history":[{"count":1,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/posts\/601\/revisions"}],"predecessor-version":[{"id":602,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=\/wp\/v2\/posts\/601\/revisions\/602"}],"wp:attachment":[{"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.dynox.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}