您的位置:首页 > 其它

SHP文件格式分析

2010-03-13 08:51 295 查看
研究MO中很重要的一部分就是SHP格式分析,对于底层开始时很重要的。

根据韩鹏老师的书,特将自己的读取内容后分析如下。

SHP结构说明

文件头
记录头记录内容
1)文件头的结构

文件头是长度固定的(100BYTE)共9个int型和7个double型。

起始位置名称数值类型位序
File Code9994intbig
Unused0intbig
Unused0intbig
12Unused0intbig
16Unused0intbig
20Unused0intbig
24文件长度文件的实际长度intbig
28版本号1000intLittle
32几何类型几何类型intLittle
36Xmin最小值doubleLittle
44Ymin最小值doubleLittle
52Xmax最小值doubleLittle
60Ymax最小值doubleLittle
68×Zmin最小值doubleLittle
76×Zmax最小值doubleLittle
84×Mmin最小的Measure值doubleLittle
92×Mmax最大的Measure值doubleLittle
2)实体信息

实体信息包括:记录头和记录内容

记录头包括:记录号和坐标记录长度

位序记录类型备注
记录号bigint从1开始
坐标长度bigint
记录内容:因不同的几何要素类型不同而不同,主要有:点、线、面。

现在我们介绍线状。

记录项数值数据类型长度个数位序
几何类型3(表示线状目标)int41Little
坐标范围double324Little
子线段个数
NumParts
int41Little
坐标个数
NumPoints
int41Little
Parts数组int4*NumPartsNumPartsLittle
Points数组记录所有坐标信息Points根据点个数确定NumPointsLittle
通过读取内存里面的内容分析如下:

00000591 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000592 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000593 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000594 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000595 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x27
00000596 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xd8
00000597 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa
00000598 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xf5
File Code 9994 正序读取
00000599 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000600 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000601 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000602 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000603 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000604 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000605 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000606 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Unused1 0
00000607 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000608 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000609 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000610 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000611 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000612 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000613 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000614 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Unused2 0
00000615 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000616 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000617 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000618 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000619 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000620 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000621 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000622 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Unused3 0
00000623 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000624 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000625 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000626 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000627 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000628 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000629 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000630 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Unused4 0
00000631 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000632 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000633 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000634 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000635 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000636 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000637 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000638 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Unused5 0
00000639 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000640 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000641 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000642 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000643 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x2
00000644 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfd
00000645 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x1a
00000646 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xe5
文件的实际长度 538 正序读取
00000647 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xe8
00000648 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x17
00000649 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x3
00000650 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfc
00000651 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000652 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000653 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000654 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
版本号 1000 实际读取的时候为倒序读取(以下均为倒序读取)
00000655 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x3
00000656 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfc
00000657 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000658 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000659 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000660 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000661 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000662 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
几何类型 3 代表线 倒序读取
00000663 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xed
00000664 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x12
00000665 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x80
00000666 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x7f
00000667 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xeb
00000668 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x14
00000669 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x8a
00000670 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x75

00000671 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x19
00000672 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xe6
00000673 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xb8
00000674 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x47
00000675 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x59
00000676 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xa6
00000677 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000678 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
Xmin
00000679 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x95
00000680 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x6a
00000681 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x28
00000682 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xd7
00000683 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x7b
00000684 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x84
00000685 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x4b
00000686 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xb4

00000687 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x39
00000688 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xc6
00000689 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x8f
00000690 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x70
00000691 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000692 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
00000693 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000694 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
Ymin
00000695 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x1e
00000696 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xe1
00000697 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xc3
00000698 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x3c
00000699 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x63
00000700 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x9c
00000701 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x3f
00000702 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xc0
00000703 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x8b
00000704 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x74
00000705 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xbf
00000706 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x40
00000707 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x59
00000708 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xa6
00000709 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000710 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
Xmax
00000711 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xc2
00000712 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x3d
00000713 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x34
00000714 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xcb
00000715 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xc
00000716 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xf3
00000717 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x1f
00000718 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xe0
00000719 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x11
00000720 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xee
00000721 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa3
00000722 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5c
00000723 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000724 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
00000725 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000726 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
Ymax
00000727 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000728 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000729 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000730 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000731 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000732 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000733 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000734 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000735 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000736 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000737 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000738 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000739 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000740 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000741 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000742 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Zmin
00000743 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000744 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000745 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000746 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000747 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000748 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000749 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000750 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff

00000751 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000752 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000753 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000754 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000755 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000756 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000757 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000758 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Zmax
00000759 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000760 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000761 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000762 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000763 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000764 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000765 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000766 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000767 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000768 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000769 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000770 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000771 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000772 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000773 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000774 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Mmin
00000775 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000776 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000777 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000778 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000779 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000780 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000781 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000782 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff

00000783 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000784 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000785 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000786 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000787 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000788 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000789 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000790 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
Mmax
00000791 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000792 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000793 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000794 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000795 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000796 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000797 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x1
00000798 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfe
RecordNumber 1 正序读
00000799 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000800 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000801 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000802 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000803 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000804 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000805 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x28
00000806 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xd7
//ContentLength 40 正序读
00000807 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x3
00000808 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfc
00000809 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000810 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000811 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000812 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000813 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000814 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
//几何类型 3 倒序读
00000815 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x84
00000816 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x7b
00000817 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xf0
00000818 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xf
00000819 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x68
00000820 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x97
00000821 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xe3
00000822 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x1c
00000823 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x88
00000824 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x77
00000825 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xb8
00000826 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x47
00000827 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x59
00000828 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xa6
00000829 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000830 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//BOX 1
00000831 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x76
00000832 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x89
00000833 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa9
00000834 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x56
00000835 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x11
00000836 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xee
00000837 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xfa
00000838 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5
00000839 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x99
00000840 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x66
00000841 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa0
00000842 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5f
00000843 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000844 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
00000845 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000846 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//BOX 2
00000847 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x7c
00000848 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x83
00000849 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x44
00000850 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbb
00000851 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x4c
00000852 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xb3
00000853 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x89
00000854 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x76
00000855 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x24
00000856 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xdb
00000857 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xb9
00000858 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x46
00000859 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x59
00000860 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xa6
00000861 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000862 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//BOX 3
00000863 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x9c
00000864 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x63
00000865 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x6b
00000866 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x94
00000867 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x98
00000868 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x67
00000869 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa1
00000870 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5e
00000871 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xf1
00000872 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xe
00000873 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa2
00000874 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5d
00000875 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000876 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
00000877 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000878 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//BOX 4
00000879 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x1
00000880 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfe
00000881 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000882 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000883 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000884 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000885 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000886 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
//NumParts 1 倒序读
00000887 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x2
00000888 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xfd
00000889 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000890 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000891 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000892 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000893 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000894 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
//NumPoints 2 倒序读
00000895 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000896 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000897 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000898 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000899 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000900 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
00000901 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x0
00000902 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xff
//Parts数组 全0
00000903 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x7c
00000904 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x83
00000905 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x44
00000906 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbb
00000907 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x4c
00000908 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xb3
00000909 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x89
00000910 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x76

00000911 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x24
00000912 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xdb
00000913 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xb9
00000914 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x46
00000915 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x59
00000916 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xa6
00000917 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000918 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//X
00000919 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x9c
00000920 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x63
00000921 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x6b
00000922 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x94
00000923 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x98
00000924 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x67
00000925 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa1
00000926 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5e

00000927 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xf1
00000928 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xe
00000929 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa2
00000930 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5d
00000931 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000932 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
00000933 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000934 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//Y
00000935 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x84
00000936 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x7b
00000937 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xf0
00000938 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xf
00000939 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x68
00000940 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x97
00000941 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xe3
00000942 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x1c

00000943 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x88
00000944 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x77
00000945 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xb8
00000946 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x47
00000947 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x59
00000948 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xa6
00000949 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000950 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//X
00000951 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x76
00000952 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x89
00000953 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa9
00000954 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x56
00000955 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x11
00000956 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xee
00000957 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xfa
00000958 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5

00000959 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x99
00000960 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x66
00000961 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0xa0
00000962 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0x5f
00000963 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000964 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
00000965 15:59:44 ((PUCHAR) CompletionCtx->MyBuffer)[Offset] is 0x40
00000966 15:59:44 (PUCHAR) CompletionCtx->OldBuffer)[Offset] is 0xbf
//Y

至此 所有的点数据读取完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: