162 lines
4.7 KiB
C
162 lines
4.7 KiB
C
/*++ BUILD Version: 0009 // Increment this if a change has global effects
|
||
Copyright (c) 1987-1993 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
rxtdi.h
|
||
|
||
Abstract:
|
||
|
||
This is the include file that defines all the Transport driver related
|
||
functions that the rest of the connection engine relies on. these have to
|
||
be implemented across all OS platforms.
|
||
|
||
Revision History:
|
||
|
||
Balan Sethu Raman (SethuR) 06-Feb-95 Created
|
||
|
||
Notes:
|
||
|
||
The Connection engine is designed to map and emulate the TDI specs. as closely
|
||
as possible. This implies that on NT we will have a very efficient mechanism
|
||
which fully exploits the underlying TDI implementation.
|
||
|
||
--*/
|
||
|
||
#ifndef _RXTDI_H_
|
||
#define _RXTDI_H_
|
||
|
||
#include "nb30.h" // NETBIOS specific data structures
|
||
|
||
//
|
||
// Some of these routines should be made inlines. The number of them that need to be made
|
||
// inline is a space/time tradeoff that could very well be different across OS platforms.
|
||
// As a first cut in order to facilitate debugging all of these routines have not been inlined.
|
||
//
|
||
|
||
extern ULONG
|
||
ComputeTransportAddressLength(
|
||
PTRANSPORT_ADDRESS pTransportAddress);
|
||
|
||
extern NTSTATUS
|
||
RxTdiBindToTransport(
|
||
IN OUT PRXCE_TRANSPORT pTransport);
|
||
|
||
extern NTSTATUS
|
||
RxTdiUnbindFromTransport(
|
||
IN OUT PRXCE_TRANSPORT pTransport);
|
||
|
||
extern NTSTATUS
|
||
RxTdiOpenAddress(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PTRANSPORT_ADDRESS pTransportAddress,
|
||
IN OUT PRXCE_ADDRESS pAddress);
|
||
|
||
extern NTSTATUS
|
||
RxTdiCloseAddress(
|
||
IN OUT PRXCE_ADDRESS pAddress);
|
||
|
||
extern NTSTATUS
|
||
RxTdiSetEventHandlers(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress);
|
||
|
||
|
||
#define RXCE_QUERY_BROADCAST_ADDRESS TDI_QUERY_BROADCAST_ADDRESS
|
||
#define RXCE_QUERY_PROVIDER_INFORMATION TDI_QUERY_PROVIDER_INFORMATION
|
||
#define RXCE_QUERY_PROVIDER_INFO TDI_QUERY_PROVIDER_INFO
|
||
#define RXCE_QUERY_ADDRESS_INFO TDI_QUERY_ADDRESS_INFO
|
||
#define RXCE_QUERY_CONNECTION_INFO TDI_QUERY_CONNECTION_INFO
|
||
#define RXCE_QUERY_PROVIDER_STATISTICS TDI_QUERY_PROVIDER_STATISTICS
|
||
#define RXCE_QUERY_DATAGRAM_INFO TDI_QUERY_DATAGRAM_INFO
|
||
#define RXCE_QUERY_DATA_LINK_ADDRESS TDI_QUERY_DATA_LINK_ADDRESS
|
||
#define RXCE_QUERY_NETWORK_ADDRESS TDI_QUERY_NETWORK_ADDRESS
|
||
#define RXCE_QUERY_MAX_DATAGRAM_INFO TDI_QUERY_MAX_DATAGRAM_INFO
|
||
|
||
extern NTSTATUS
|
||
RxTdiQueryInformation(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN PRXCE_CONNECTION pConnection,
|
||
IN PRXCE_VC pVc,
|
||
IN ULONG QueryType,
|
||
IN PVOID QueryBuffer,
|
||
IN ULONG QueryBufferLength);
|
||
|
||
extern NTSTATUS
|
||
RxTdiQueryAdapterStatus(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN OUT PADAPTER_STATUS pAdapterStatus);
|
||
|
||
extern NTSTATUS
|
||
RxTdiConnect(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN OUT PRXCE_CONNECTION pConnection,
|
||
IN OUT PRXCE_VC pVc);
|
||
|
||
extern NTSTATUS
|
||
RxTdiInitiateAsynchronousConnect(
|
||
PRX_CREATE_CONNECTION_PARAMETERS_BLOCK pParameters);
|
||
|
||
extern NTSTATUS
|
||
RxTdiCancelAsynchronousConnect(
|
||
PRX_CREATE_CONNECTION_PARAMETERS_BLOCK pParameters);
|
||
|
||
extern NTSTATUS
|
||
RxTdiCleanupAsynchronousConnect(
|
||
PRX_CREATE_CONNECTION_PARAMETERS_BLOCK pParameters);
|
||
|
||
extern NTSTATUS
|
||
RxTdiReconnect(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN OUT PRXCE_CONNECTION pConnection,
|
||
IN OUT PRXCE_VC pVc);
|
||
|
||
//
|
||
// Disconnect options
|
||
//
|
||
|
||
#define RXCE_DISCONNECT_ABORT TDI_DISCONNECT_ABORT
|
||
#define RXCE_DISCONNECT_RELEASE TDI_DISCONNECT_RELEASE
|
||
#define RXCE_DISCONNECT_WAIT TDI_DISCONNECT_WAIT
|
||
#define RXCE_DISCONNECT_ASYNC TDI_DISCONNECT_ASYNC
|
||
|
||
extern NTSTATUS
|
||
RxTdiDisconnect(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN PRXCE_CONNECTION pConnection,
|
||
IN PRXCE_VC pVc,
|
||
IN ULONG DisconnectFlags);
|
||
|
||
extern NTSTATUS
|
||
RxTdiCancelConnect(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN PRXCE_CONNECTION pConnection);
|
||
|
||
extern NTSTATUS
|
||
RxTdiSend(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN PRXCE_CONNECTION pConnection,
|
||
IN PRXCE_VC pVc,
|
||
IN ULONG SendOptions,
|
||
IN PMDL pMdl,
|
||
IN ULONG SendLength,
|
||
IN PVOID pCompletionContext);
|
||
|
||
extern NTSTATUS
|
||
RxTdiSendDatagram(
|
||
IN PRXCE_TRANSPORT pTransport,
|
||
IN PRXCE_ADDRESS pAddress,
|
||
IN PRXCE_CONNECTION_INFORMATION pConnectionInformation,
|
||
IN ULONG SendOptions,
|
||
IN PMDL pMdl,
|
||
IN ULONG SendLength,
|
||
IN PVOID pCompletionContext);
|
||
|
||
#endif // _RXTDI_H_
|
||
|