mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
233 lines
2.8 KiB
233 lines
2.8 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
util.h
|
|
|
|
Abstract:
|
|
|
|
Contains macros, prototypes and structures for util.c
|
|
|
|
Author:
|
|
|
|
Richard L Firth (rfirth) 25-Oct-1993
|
|
|
|
Revision History:
|
|
|
|
25-Oct-1993 rfirth
|
|
Created
|
|
|
|
--*/
|
|
|
|
//
|
|
// external data
|
|
//
|
|
|
|
extern CRITICAL_SECTION SerializationCritSec;
|
|
|
|
//
|
|
// one-line function macros
|
|
//
|
|
|
|
#define RequestMutex() EnterCriticalSection(&SerializationCritSec)
|
|
#define ReleaseMutex() LeaveCriticalSection(&SerializationCritSec)
|
|
|
|
//
|
|
// function prototypes
|
|
//
|
|
|
|
int
|
|
GetInternetAddress(
|
|
IN OUT LPSOCKADDR_IPX InternetAddress
|
|
);
|
|
|
|
int
|
|
GetMaxPacketSize(
|
|
OUT LPWORD MaxPacketSize
|
|
);
|
|
|
|
LPXECB
|
|
RetrieveEcb(
|
|
IN BYTE Type
|
|
);
|
|
|
|
LPXECB
|
|
RetrieveXEcb(
|
|
IN BYTE Type,
|
|
IN LPECB pEcb,
|
|
IN ECB_ADDRESS EcbAddress
|
|
);
|
|
|
|
VOID
|
|
ScheduleEvent(
|
|
IN LPXECB pXecb,
|
|
IN WORD Ticks
|
|
);
|
|
|
|
VOID
|
|
ScanTimerList(
|
|
VOID
|
|
);
|
|
|
|
BYTE
|
|
CancelTimerEvent(
|
|
IN LPXECB pXecb
|
|
);
|
|
|
|
VOID
|
|
CancelTimedEvents(
|
|
IN WORD SocketNumber,
|
|
IN WORD Owner,
|
|
IN DWORD TaskId
|
|
);
|
|
|
|
BYTE
|
|
CancelAsyncEvent(
|
|
IN LPXECB pXecb
|
|
);
|
|
|
|
BYTE
|
|
CancelSocketEvent(
|
|
IN LPXECB pXecb
|
|
);
|
|
|
|
BYTE
|
|
CancelConnectionEvent(
|
|
IN LPXECB pXecb
|
|
);
|
|
|
|
VOID
|
|
QueueEcb(
|
|
IN LPXECB pXecb,
|
|
IN LPXECB_QUEUE Queue,
|
|
IN QUEUE_ID QueueId
|
|
);
|
|
|
|
LPXECB
|
|
DequeueEcb(
|
|
IN LPXECB pXecb,
|
|
IN LPXECB_QUEUE Queue
|
|
);
|
|
|
|
VOID
|
|
CancelSocketQueue(
|
|
IN LPXECB_QUEUE pXecbQueue
|
|
);
|
|
|
|
VOID
|
|
CancelConnectionQueue(
|
|
IN LPXECB_QUEUE pXecbQueue
|
|
);
|
|
|
|
VOID
|
|
AbortQueue(
|
|
IN LPXECB_QUEUE pXecbQueue,
|
|
IN BYTE CompletionCode
|
|
);
|
|
|
|
VOID
|
|
AbortConnectionEvent(
|
|
IN LPXECB pXecb,
|
|
IN BYTE CompletionCode
|
|
);
|
|
|
|
VOID
|
|
StartIpxSend(
|
|
IN LPXECB pEcb,
|
|
IN LPSOCKET_INFO pSocketInfo
|
|
);
|
|
|
|
BOOL
|
|
GetIoBuffer(
|
|
IN OUT LPXECB pXecb,
|
|
IN BOOL Send,
|
|
IN WORD HeaderLength
|
|
);
|
|
|
|
VOID
|
|
GatherData(
|
|
IN LPXECB pXecb,
|
|
IN WORD HeaderLength
|
|
);
|
|
|
|
VOID
|
|
ScatterData(
|
|
IN LPXECB pXecb
|
|
);
|
|
|
|
VOID
|
|
IpxReceiveFirst(
|
|
IN LPXECB pXecb,
|
|
IN LPSOCKET_INFO pSocketInfo
|
|
);
|
|
|
|
VOID
|
|
IpxReceiveNext(
|
|
IN LPSOCKET_INFO pSocketInfo
|
|
);
|
|
|
|
VOID
|
|
IpxSendNext(
|
|
IN LPSOCKET_INFO pSocketInfo
|
|
);
|
|
|
|
VOID
|
|
CompleteOrQueueIo(
|
|
IN LPXECB pXecb,
|
|
IN BYTE CompletionCode
|
|
);
|
|
|
|
VOID
|
|
CompleteIo(
|
|
IN LPXECB pXecb,
|
|
IN BYTE CompletionCode
|
|
);
|
|
|
|
VOID
|
|
CompleteOrQueueEcb(
|
|
IN LPXECB pXecb,
|
|
IN BYTE CompletionCode
|
|
);
|
|
|
|
VOID
|
|
CompleteEcb(
|
|
IN LPXECB pEcb,
|
|
IN BYTE CompletionCode
|
|
);
|
|
|
|
VOID
|
|
EsrCallback(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
VWinEsrCallback(
|
|
WORD *pSegment,
|
|
WORD *pOffset,
|
|
BYTE *pFlags
|
|
);
|
|
|
|
VOID
|
|
FifoAddHead(
|
|
IN LPFIFO pFifo,
|
|
IN LPFIFO pElement
|
|
);
|
|
|
|
VOID
|
|
FifoAdd(
|
|
IN LPFIFO pFifo,
|
|
IN LPFIFO pElement
|
|
);
|
|
|
|
LPFIFO
|
|
FifoRemove(
|
|
IN LPFIFO pFifo,
|
|
IN LPFIFO pElement
|
|
);
|
|
|
|
LPFIFO
|
|
FifoNext(
|
|
IN LPFIFO pFifo
|
|
);
|