windows-nt/Source/XPSP1/NT/ds/nw/vwipxspx/dll/util.h
2020-09-26 16:20:57 +08:00

234 lines
2.8 KiB
C

/*++
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
);