OVERLAPPED结构是什么意思?怎么用?
看了一些书和代码,还是不明白这个OVERLAPPED结构到底是什么个意思,以及怎么用它。
代码中只是自已改里面的信息,系统好像从不改变它?
此外还觉得这个OVERLAPPED好像,仅仅是由系统来维护它和文件的对应关系,
类似C++里 LPOVERLAPPED = map[HANDLE];?
别的事情它就不做了?不过这么说也不对,OVERLAPPED结构里不是还有个hEvent,当XX时系统就自动激发它吗?
那本书、文章或网上资料里对这方面阐述比较清楚?
或者,哪位高手用三言两语把它说明白?
谢谢!!
问题点数:20、回复次数:9Top
1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-09-04 14:05:01 得分 0
This structure contains the file offset of the beginning of the lock range.
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
DWORD Offset;
DWORD OffsetHigh;
HANDLE hEvent;
} OVERLAPPED;
Members
Internal
Not used.
InternalHigh
Not used.
Offset
File offset of the beginning of the lock range.
OffsetHigh
High order word of the byte offset of the beginning of the lock range.
hEvent
Not used.
RequirementsTop
2 楼csoapy(就是不结贴)回复于 2006-09-04 14:24:17 得分 0
this is form msdn.
but i have not understood it because it give me few information about OVERLAPPED.
Just it says, what a OVERLAPPED struct is, but not include other information: how to use it or what's original intention of designing it, for instance .
thank u.Top
3 楼csoapy(就是不结贴)回复于 2006-09-04 14:25:05 得分 0
not 'form msdn', but 'from msdn'.Top
4 楼hollysky(爱神)回复于 2006-09-04 14:41:58 得分 0
一般是异步IO用的Top
5 楼hollysky(爱神)回复于 2006-09-04 14:44:33 得分 0
你看一下相关的运用:
CreateFile, ReadFile, GetOverlappedResult, 等等Top
6 楼shefg_great()回复于 2006-09-04 14:53:41 得分 0
在《Win32多线程程序设计》和《Windows核心编程》中都有详细的解释和举例说明。
OVERLAPPED结构主要在一些重叠IO等异步操作中起作用。
即:你需要操作系统传递一批数据,于是填了一个overlapped的订单,订单上写着从哪里(数据的偏移位置)开始传输,于是你去干别的事去了。系统完成传输就打个电话(激活hEvent)叫你验收,你看到overlapped订单上系统写着的传输的数据数量验收接收的数据。
以上是一个经典的例子,你需要作更多的实验熟悉它,如:用重叠IO读取文件或完成端口。记住运用多线程。Top
7 楼csoapy(就是不结贴)回复于 2006-09-04 16:57:59 得分 0
精彩!
看来我就是实际做的太少了,也许就像游泳,光看是不行的。Top
8 楼king110_1()回复于 2006-10-30 08:21:05 得分 0
学习Top
9 楼lazyter1(layter)回复于 2006-11-01 13:37:52 得分 0
socket用的比较多,也比较难。我也在学习Top




