<script type="text/javascript"></script> <script type="text/javascript"></script>
Return Values
If the function dequeues a completion packet for a successful I/O operation from the completion port, the return value is nonzero. The function stores information in the variables pointed to by the
lpNumberOfBytesTransferred
,
lpCompletionKey
, and
lpOverlapped
parameters.
如果函数从完成端口出列一个成功
I/O
操作的完成包,返回值为非
0
。函数在指向
lpNumberOfBytesTransferred, lpCompletionKey, and lpOverlapped
的参数中存储相关信息。
If *
lpOverlapped
is NULL and the function does not dequeue a completion packet from the completion port, the return value is zero. The function does not store information in the variables pointed to by the
lpNumberOfBytes
and
lpCompletionKey
parameters. To get extended error information, call GetLastError. If the function did not dequeue a completion packet because the wait timed out, GetLastError returns WAIT_TIMEOUT.
如果
*lpOverlapped
为空并且函数没有从完成端口出列完成包,返回值则为
0
。函数则不会在
lpNumberOfBytes
and
lpCompletionKey
所指向的参数中存储信息。调用
GetLastError
可以得到一个扩展错误信息。如果函数由于等待超时而未能出列完成包,
GetLastError
返回
WAIT_TIMEOUT.
If *lpOverlapped is not NULL and the function dequeues a completion packet for a failed I/O operation from the completion port, the return value is zero. The function stores information in the variables pointed to by lpNumberOfBytes, lpCompletionKey, and lpOverlapped. To get extended error information, call GetLastError
.
如果
*lpOverlapped
不为空并且函数从完成端口出列一个失败
I/O
操作的完成包,返回值为
0
。函数在指向
lpNumberOfBytesTransferred, lpCompletionKey, and lpOverlapped
的参数指针中存储相关信息。调用
GetLastError
可以得到扩展错误信息
If a socket handle associated with a completion port is closed, GetQueuedCompletionStatus returns ERROR_SUCCESS, with lpNumberOfBytes equal zero.
如果关联到一个完成端口的一个
socket
句柄被关闭了,则
GetQueuedCompletionStatus
返回
ERROR_SUCCESS,
并且
lpNumberOfBytes
等于
0
Remarks(
注意
)
This function associates a thread with the specified completion port. A thread can be associated with at most one completion port.
这个函数关联到指定的完成端口的一个线程,一个线程可以关联到最多一个完成端口(一个线程只能为一个完成端口提供服务)
The I/O system can be instructed to send completion notification packets to completion ports, where they are queued. The
CreateIoCompletionPort
function provides a mechanism for this.
I/O
系统能够发送完成消息包到完成端口,并使之队列化,
CreateIoCompletionPort
函数提供这样的机制
When you perform an input/output operation with a file handle that has an associated input/output completion port, the I/O system sends a completion notification packet to the completion port when the I/O operation comple tes. The completion port places the completion packet in a first-in-first-out queue. The GetQueuedCompletionStatus function retrieves these queued completion packets.
当在一个与完成端口关联的文件句柄上执行一个输入
/
输出操作,
I/O
操作完成的时候,
I/O
系统发送一个完成通知包到完成端口。完成端口把这个完成通知包放入到一个先进先出的队列中。
GetQueuedCompletionStatus
函数可以得到这些队列化的完成包
A server application may have several threads calling GetQueuedCompletionStatus for the same completion port. As input operations complete, the operating system queues completion packets to the completion port. If threads are actively waiting in a call to this function, queued requests complete their call. For more information, see
I/O Completion Ports
.
一个应用服务可以有多个线程调用
GetQueuedCompletionStatus
为同一个完成端口服务。输入操作完成,操作系统把排好队的完成包交给完成端口。如果线程正在调用这个函数的等待被激发。他们的调用请求也会被排队完成。更多信息请查看
I/O Completion Ports.
You can call the
PostQueuedCompletionStatus
function to post an completion packet to an completion port. The completion packet will satisfy an outstanding call to the GetQueuedCompletionStatus function.
你能够调用
PostQueuedCompletionStatus
函数投递一个完成包到一个完成端口,完成包将确保一个可以退出的调用
GetQueuedCompletionStatus
函数
发表评论 取消回复