能力值:
( LV2,RANK:10 )
|
-
-
176 楼
不错 好好研究一下
|
能力值:
( LV2,RANK:10 )
|
-
-
177 楼
学习一下,看看。
|
能力值:
( LV2,RANK:10 )
|
-
-
178 楼
这个方式在非net平台可以完美使用,但是如何程序是用.net编写的,并且发送数据时,用的是数据流的write方式,那么这个dll一点用也没有。请教楼主。
下面就是问题所在。
http://bbs.pediy.com/showthread.php?t=159820
|
能力值:
( LV2,RANK:10 )
|
-
-
179 楼
typedef struct _AFD_WSABUF {
UINT len;
PCHAR buf;
} AFD_WSABUF, *PAFD_WSABUF;
typedef struct _AFD_CREATE_PACKET {
DWORD EndpointFlags;
DWORD GroupID;
DWORD SizeOfTransportName;
WCHAR TransportName[1];
} AFD_CREATE_PACKET, *PAFD_CREATE_PACKET;
typedef struct _AFD_INFO {
ULONG InformationClass;
union {
ULONG Ulong;
LARGE_INTEGER LargeInteger;
BOOLEAN Boolean;
} Information;
ULONG Padding;
} AFD_INFO, *PAFD_INFO;
typedef struct _AFD_BIND_DATA {
ULONG ShareType;
#if 1
SOCKADDR Address;
#else
TRANSPORT_ADDRESS Address;
#endif
} AFD_BIND_DATA, *PAFD_BIND_DATA;
typedef struct _AFD_LISTEN_DATA {
BOOLEAN UseSAN;
ULONG Backlog;
BOOLEAN UseDelayedAcceptance;
} AFD_LISTEN_DATA, *PAFD_LISTEN_DATA;
typedef struct _AFD_HANDLE_ {
SOCKET Handle;
ULONG Events;
NTSTATUS Status;
} AFD_HANDLE, *PAFD_HANDLE;
typedef struct _AFD_POLL_INFO {
LARGE_INTEGER Timeout;
ULONG HandleCount;
BOOLEAN Exclusive;
AFD_HANDLE Handles[1];
} AFD_POLL_INFO, *PAFD_POLL_INFO;
typedef struct _AFD_ACCEPT_DATA {
BOOLEAN UseSAN;
ULONG SequenceNumber;
HANDLE ListenHandle;
} AFD_ACCEPT_DATA, *PAFD_ACCEPT_DATA;
typedef struct _AFD_RECEIVED_ACCEPT_DATA {
ULONG SequenceNumber;
TRANSPORT_ADDRESS Address;
} AFD_RECEIVED_ACCEPT_DATA, *PAFD_RECEIVED_ACCEPT_DATA;
typedef struct _AFD_PENDING_ACCEPT_DATA {
ULONG SequenceNumber;
ULONG SizeOfData;
ULONG ReturnSize;
} AFD_PENDING_ACCEPT_DATA, *PAFD_PENDING_ACCEPT_DATA;
typedef struct _AFD_DEFER_ACCEPT_DATA {
ULONG SequenceNumber;
BOOLEAN RejectConnection;
} AFD_DEFER_ACCEPT_DATA, *PAFD_DEFER_ACCEPT_DATA;
typedef struct _AFD_RECV_INFO {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
} AFD_RECV_INFO , *PAFD_RECV_INFO ;
typedef struct _AFD_RECV_INFO_UDP {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
PVOID Address;
PINT AddressLength;
} AFD_RECV_INFO_UDP, *PAFD_RECV_INFO_UDP;
typedef struct _AFD_SEND_INFO {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
} AFD_SEND_INFO , *PAFD_SEND_INFO ;
typedef struct _AFD_SEND_INFO_UDP {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
#if 1
ULONG UnknownGap[9];
ULONG SizeOfRemoteAddress;
PVOID RemoteAddress;
#else
TDI_REQUEST_SEND_DATAGRAM TdiRequest;
TDI_CONNECTION_INFORMATION TdiConnection;
#endif
} AFD_SEND_INFO_UDP, *PAFD_SEND_INFO_UDP;
typedef struct _AFD_CONNECT_INFO {
BOOLEAN UseSAN;
ULONG Root;
ULONG Unknown;
#if 1
SOCKADDR RemoteAddress;
#else
TRANSPORT_ADDRESS RemoteAddress;
#endif
} AFD_CONNECT_INFO , *PAFD_CONNECT_INFO ;
typedef struct _AFD_EVENT_SELECT_INFO {
HANDLE EventObject;
ULONG Events;
} AFD_EVENT_SELECT_INFO, *PAFD_EVENT_SELECT_INFO;
typedef struct _AFD_ENUM_NETWORK_EVENTS_INFO {
HANDLE Event;
ULONG PollEvents;
NTSTATUS EventStatus[AFD_MAX_EVENTS];
} AFD_ENUM_NETWORK_EVENTS_INFO, *PAFD_ENUM_NETWORK_EVENTS_INFO;
typedef struct _AFD_DISCONNECT_INFO {
ULONG DisconnectType;
LARGE_INTEGER Timeout;
} AFD_DISCONNECT_INFO, *PAFD_DISCONNECT_INFO;
typedef struct _AFD_VALIDATE_GROUP_DATA
{
LONG GroupId;
TRANSPORT_ADDRESS Address;
} AFD_VALIDATE_GROUP_DATA, *PAFD_VALIDATE_GROUP_DATA;
typedef struct _AFD_TDI_HANDLE_DATA
{
HANDLE TdiAddressHandle;
HANDLE TdiConnectionHandle;
} AFD_TDI_HANDLE_DATA, *PAFD_TDI_HANDLE_DATA;
|
|
|