windows-nt/Source/XPSP1/NT/base/fs/rdr2/rxce/rxtdi.h
2020-09-26 16:20:57 +08:00

162 lines
4.7 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++ 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_