|
|
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs)
//
// Copyright (c) 1985-2000 Microsoft Corporation
//
// This file is part of the Microsoft Research IPv6 Network Protocol Stack.
// You should have received a copy of the Microsoft End-User License Agreement
// for this software along with this release; see the file "license.txt".
// If not, please see http://www.research.microsoft.com/msripv6/license.htm,
// or write to Microsoft Research, One Microsoft Way, Redmond, WA 98052-6399.
//
// Abstract:
//
// Locally definied TDI function prototypes.
//
#ifndef TDILOCAL_INCLUDED
#define TDILOCAL_INCLUDED 1
extern TDI_STATUS TdiOpenAddress(PTDI_REQUEST Request, TRANSPORT_ADDRESS UNALIGNED *AddrList, uint protocol, void *Reuse, PSECURITY_DESCRIPTOR AddrSD);
extern TDI_STATUS TdiCloseAddress(PTDI_REQUEST Request);
extern TDI_STATUS TdiOpenConnection(PTDI_REQUEST Request, PVOID Context);
extern TDI_STATUS TdiCloseConnection(PTDI_REQUEST Request);
extern TDI_STATUS TdiAssociateAddress(PTDI_REQUEST Request, HANDLE AddrHandle);
extern TDI_STATUS TdiCancelDisAssociateAddress(PTDI_REQUEST Request);
extern TDI_STATUS TdiDisAssociateAddress(PTDI_REQUEST Request);
extern TDI_STATUS TdiConnect(PTDI_REQUEST Request, void *Timeout, PTDI_CONNECTION_INFORMATION RequestAddr, PTDI_CONNECTION_INFORMATION ReturnAddr);
extern TDI_STATUS TdiListen(PTDI_REQUEST Request, ushort Flags, PTDI_CONNECTION_INFORMATION AcceptableAddr, PTDI_CONNECTION_INFORMATION ConnectedAddr);
extern TDI_STATUS TdiAccept(PTDI_REQUEST Request, PTDI_CONNECTION_INFORMATION AcceptInfo, PTDI_CONNECTION_INFORMATION ConnectedInfo);
extern TDI_STATUS TdiDisconnect(PTDI_REQUEST Request, void *TO, ushort Flags, PTDI_CONNECTION_INFORMATION DiscConnInfo, PTDI_CONNECTION_INFORMATION ReturnInfo, TCPAbortReq *AbortReq);
extern TDI_STATUS TdiSend(PTDI_REQUEST Request, ushort Flags, uint SendLength, PNDIS_BUFFER SendBuffer);
extern TDI_STATUS TdiReceive(PTDI_REQUEST Request, ushort *Flags, ULONG *RcvLength, PNDIS_BUFFER Buffer);
extern TDI_STATUS TdiSendDatagram(PTDI_REQUEST Request, PTDI_CONNECTION_INFORMATION ConnInfo, uint DataSize, ULONG *BytesSent, PNDIS_BUFFER Buffer);
VOID TdiCancelSendDatagram(AddrObj *SrcAO, PVOID Context, PKSPIN_LOCK EndpointLock, KIRQL CancelIrql);
extern TDI_STATUS TdiReceiveDatagram(PTDI_REQUEST Request, PTDI_CONNECTION_INFORMATION ConnInfo, PTDI_CONNECTION_INFORMATION ReturnInfo, uint RcvSize, uint *BytesRcvd, PNDIS_BUFFER Buffer);
VOID TdiCancelReceiveDatagram(AddrObj *SrcAO, PVOID Context, PKSPIN_LOCK EndpointLock, KIRQL CancelIrql);
extern TDI_STATUS TdiSetEvent(PVOID Handle, int Type, PVOID Handler, PVOID Context);
extern TDI_STATUS TdiQueryInformation(PTDI_REQUEST Request, uint QueryType, PNDIS_BUFFER Buffer, uint *BytesReturned, uint IsConn);
extern TDI_STATUS TdiSetInformation(PTDI_REQUEST Request, uint SetType, PNDIS_BUFFER Buffer, uint BufferSize, uint IsConn);
extern TDI_STATUS TdiQueryInformationEx(PTDI_REQUEST Request, struct TDIObjectID *ID, PNDIS_BUFFER Buffer, uint *Size, void *Context, uint ContextSize);
extern TDI_STATUS TdiSetInformationEx(PTDI_REQUEST Request, struct TDIObjectID *ID, void *Buffer, uint Size);
extern TDI_STATUS TdiAction(PTDI_REQUEST Request, uint ActionType, PNDIS_BUFFER Buffer, uint BufferSize);
#endif // TDILOCAL_INCLUDED
|