CreateNamedPipe

CreateNamedPipe

VB声明

Declare Function CreateNamedPipe Lib "kernel32" Alias "CreateNamedPipeA" (ByVal lpName As String, ByVal dwOpenMode As Long, ByVal dwPipeMode As Long, ByVal nMaxInstances As Long, ByVal nOutBufferSize As Long, ByVal nInBufferSize As Long, ByVal nDefaultTimeOut As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

说明

创建一个命名管道。返回的句柄由管道的服务器端使用

返回值

Long,如执行成功,返回管道的句柄。INVALID_HANDLE_VALUE表示失败。会设置GetLastError

参数表

参数

类型及说明

lpName

String,指定管道名,采用的形式是:\\.\管道\管道名。最多可达256个字符的长度,而且不用区分大小写。如果存在指定名字的一个管道,则创建那个管道的一个新实例

dwOpenMode

Long,下述常数组的一个组合

下述常数之一(对于管道的所有实例都要一样):

PIPE_ACCESS_DUPLEX

管道是双向的

PIPE_ACCESS_INBOUND

数据从客户端流到服务器端

PIPE_ACCESS_OUTBOUND

数据从服务器端流到客户端

下述常数的任意组合

FILE_FLAG_WRITE_THROUGH

在网络中建立的字节型管道内,强迫数据在每次读写操作的时候通过网络传输。否则传输就可能延迟

FILE_FLAG_OVERLAPPED

允许(但不要求)用这个管道进行异步(重叠式)操作

常数WRITE_DAC, WRITE_OWNER 和 ACCESS_ SYSTEM_SECURITY提供了附加的安全选项

dwPipeMode

Long,下述常数组的一个组合:

下述常数之一(管道的所有实例都必须指定相同的常数)

PIPE_TYPE_BYTE

数据作为一个连续的字节数据流写入管道

PIPE_TYPE_MESSAGE

数据用数据块(名为“消息”或“报文”)的形式写入管道

下述常数之一:

PIPE_READMODE_PIPE

数据以单独字节的形式从管道中读出

PIPE_READMODE_MESSAGE

数据以名为“消息”的数据块形式从管道中读出(要求指定PIPE_TYPE_MESSAGE)

下述常数之一:

PIPE_WAIT

同步操作在等待的时候挂起线程

PIPE_NOWAIT(不推荐!)

同步操作立即返回。这样可为异步传输提供一种落后的实现方法,已由Win32的重叠式传输机制取代了

nMaxInstances

Long,这个管道能够创建的最大实例数量。必须是1到常数PIPE_UNLIMITED_INSTANCES间的一个值。它对于管道的所有实例来说都应是相同的

nOutBufferSize

Long,建议的输出缓冲区长度;零表示用默认设置

nInBufferSize

Long,建议的输入缓冲区长度;零表示用默认设置

nDefaultTimeOut

Long,管道的默认等待超时。对一个管道的所有实例来说都应相同

lpSecurityAttributes

SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或者传递零值(将参数声明为ByVal As Long,并传递零值),以便使用不允许继承的一个默认描述符

适用平台

Windows NT

Top