From: Filip Navara Date: Tue, 2 Mar 2004 18:18:15 +0000 (+0000) Subject: - Build AFD, TCPIP and TDI with w32api headers. X-Git-Tag: backups/videoprt_pnp_14032004@12472~175 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=daaf2a72b81e4bb156bf7bcfcc21fa5ee07ef1ff - Build AFD, TCPIP and TDI with w32api headers. - Removed the old TDI headers from include/net. svn path=/trunk/; revision=8508 --- diff --git a/reactos/drivers/net/afd/afd/opnclose.c b/reactos/drivers/net/afd/afd/opnclose.c index 57527360d09..f3bb929d8e2 100644 --- a/reactos/drivers/net/afd/afd/opnclose.c +++ b/reactos/drivers/net/afd/afd/opnclose.c @@ -143,8 +143,13 @@ AfdCreate( FCB->HelperContext = SocketInfo->HelperContext; FCB->NotificationEvents = SocketInfo->NotificationEvents; - if (RtlCreateUnicodeString(&FCB->TdiDeviceName, SocketInfo->TdiDeviceName.Buffer)) { + FCB->TdiDeviceName.Length = 0; + FCB->TdiDeviceName.MaximumLength = SocketInfo->TdiDeviceName.MaximumLength; + FCB->TdiDeviceName.Buffer = ExAllocatePool( + NonPagedPool, + FCB->TdiDeviceName.MaximumLength); + if (FCB->TdiDeviceName.Buffer) { RtlCopyUnicodeString(&FCB->TdiDeviceName, &SocketInfo->TdiDeviceName); AFD_DbgPrint(MAX_TRACE, ("TDI device name is (%wZ).\n", &FCB->TdiDeviceName)); diff --git a/reactos/drivers/net/afd/afd/tdi.c b/reactos/drivers/net/afd/afd/tdi.c index 6b69bf9a6a2..ad5602cc550 100644 --- a/reactos/drivers/net/afd/afd/tdi.c +++ b/reactos/drivers/net/afd/afd/tdi.c @@ -585,6 +585,54 @@ NTSTATUS TdiQueryDeviceControl( } +NTSTATUS TdiQueryInformation( + PFILE_OBJECT FileObject, + LONG QueryType, + PMDL MdlBuffer) +/* + * FUNCTION: Query for information + * ARGUMENTS: + * FileObject = Pointer to file object + * QueryType = Query type + * MdlBuffer = Pointer to MDL buffer specific for query type + * RETURNS: + * Status of operation + */ +{ + PDEVICE_OBJECT DeviceObject; + IO_STATUS_BLOCK Iosb; + NTSTATUS Status; + KEVENT Event; + PIRP Irp; + + DeviceObject = IoGetRelatedDeviceObject(FileObject); + + KeInitializeEvent(&Event, NotificationEvent, FALSE); + + Irp = TdiBuildInternalDeviceControlIrp(IOCTL_TCP_QUERY_INFORMATION, /* Sub function */ + DeviceObject, /* Device object */ + ConnectionObject, /* File object */ + &Event, /* Event */ + &Iosb); /* Status */ + if (!Irp) { + return STATUS_INSUFFICIENT_RESOURCES; + } + + TdiBuildQueryInformation( + Irp, + DeviceObject, + FileObject, + NULL, + NULL, + QueryType, + MdlBuffer); + + Status = TdiCall(Irp, DeviceObject, &Event, &Iosb); + + return Status; +} + + NTSTATUS TdiQueryInformationEx( PFILE_OBJECT FileObject, ULONG Entity, diff --git a/reactos/drivers/net/afd/include/afd.h b/reactos/drivers/net/afd/include/afd.h index b685487c261..3c1fcb3cf83 100644 --- a/reactos/drivers/net/afd/include/afd.h +++ b/reactos/drivers/net/afd/include/afd.h @@ -10,11 +10,14 @@ #include #include #include -#include -#include +#include +#include #include #include +#define IP_MIB_STATS_ID 1 +#define IP_MIB_ADDRTABLE_ENTRY_ID 0x102 + /* Forward declarations */ struct _AFDFCB; diff --git a/reactos/drivers/net/afd/makefile b/reactos/drivers/net/afd/makefile index ee35ce2bf9b..5503939ca1b 100644 --- a/reactos/drivers/net/afd/makefile +++ b/reactos/drivers/net/afd/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.9 2004/02/07 04:50:44 arty Exp $ +# $Id: makefile,v 1.10 2004/03/02 18:18:13 navaraf Exp $ PATH_TO_TOP = ../../.. @@ -6,7 +6,7 @@ TARGET_TYPE = driver TARGET_NAME = afd -TARGET_CFLAGS = -I./include -DDBG -Werror -Wall +TARGET_CFLAGS = -I./include -DDBG -D__USE_W32API -Werror -Wall TARGET_OBJECTS = \ afd/afd.o \ diff --git a/reactos/drivers/net/ndis/include/ndissys.h b/reactos/drivers/net/ndis/include/ndissys.h index 40828718c31..80bd1158031 100644 --- a/reactos/drivers/net/ndis/include/ndissys.h +++ b/reactos/drivers/net/ndis/include/ndissys.h @@ -19,25 +19,12 @@ #include #else /* _MSC_VER */ #include +#include #include #endif /* _MSC_VER */ #include - -#ifndef _MSC_VER -/* FIXME: The following should be moved to ntddk.h */ - -/* - * ULONG MmGetMdlByteCount( - * IN PMDL Mdl) - */ -#define MmGetMdlByteCount(Mdl) \ - ((Mdl)->ByteCount) - -#endif - - /* Exported functions */ #ifdef _MSC_VER #define EXPORT __declspec(dllexport) diff --git a/reactos/drivers/net/ndis/ndis/50gone.c b/reactos/drivers/net/ndis/ndis/50gone.c index 59520699893..b9d27cfe2d9 100644 --- a/reactos/drivers/net/ndis/ndis/50gone.c +++ b/reactos/drivers/net/ndis/ndis/50gone.c @@ -451,6 +451,8 @@ NdisSetupDmaTransfer( } +#undef NdisUpdateSharedMemory + /* * @unimplemented */ diff --git a/reactos/drivers/net/ndis/ndis/main.c b/reactos/drivers/net/ndis/ndis/main.c index ff0d94b8938..53d6ebf6a99 100644 --- a/reactos/drivers/net/ndis/ndis/main.c +++ b/reactos/drivers/net/ndis/ndis/main.c @@ -89,10 +89,7 @@ NdisWriteErrorLogEntry( IN NDIS_HANDLE NdisAdapterHandle, IN NDIS_ERROR_CODE ErrorCode, IN ULONG NumberOfErrorValues, - IN ULONG ERROR_LOG_MAXIMUM_SIZE) -/* IN ULONG ...) - * ERROR_LOG_MAXIMUM_SIZE = ... in MSDN - */ + ...) /* * FUNCTION: Write a syslog error * ARGUMENTS: diff --git a/reactos/drivers/net/tcpip/datalink/lan.c b/reactos/drivers/net/tcpip/datalink/lan.c index f418b08076c..24a84d0fd6a 100644 --- a/reactos/drivers/net/tcpip/datalink/lan.c +++ b/reactos/drivers/net/tcpip/datalink/lan.c @@ -1037,9 +1037,9 @@ NTSTATUS LANRegisterProtocol( ProtChars.CloseAdapterCompleteHandler = ProtocolCloseAdapterComplete; ProtChars.ResetCompleteHandler = ProtocolResetComplete; ProtChars.RequestCompleteHandler = ProtocolRequestComplete; - ProtChars.u2.SendCompleteHandler = ProtocolSendComplete; - ProtChars.u3.TransferDataCompleteHandler = ProtocolTransferDataComplete; - ProtChars.u4.ReceiveHandler = ProtocolReceive; + ProtChars.SendCompleteHandler = ProtocolSendComplete; + ProtChars.TransferDataCompleteHandler = ProtocolTransferDataComplete; + ProtChars.ReceiveHandler = ProtocolReceive; ProtChars.ReceiveCompleteHandler = ProtocolReceiveComplete; ProtChars.StatusHandler = ProtocolStatus; ProtChars.StatusCompleteHandler = ProtocolStatusComplete; diff --git a/reactos/drivers/net/tcpip/include/address.h b/reactos/drivers/net/tcpip/include/address.h index 555c95af356..d3febb8f9e5 100644 --- a/reactos/drivers/net/tcpip/include/address.h +++ b/reactos/drivers/net/tcpip/include/address.h @@ -73,8 +73,7 @@ PADDRESS_FILE AddrSearchFirst( PADDRESS_FILE AddrSearchNext( PAF_SEARCH SearchContext); -ULONG inet_addr( - PCSTR AddrString); +unsigned long PASCAL inet_addr(const char*); #endif /* __ADDRESS_H */ diff --git a/reactos/drivers/net/tcpip/include/info.h b/reactos/drivers/net/tcpip/include/info.h index a1b4f679ac4..948d13787a7 100644 --- a/reactos/drivers/net/tcpip/include/info.h +++ b/reactos/drivers/net/tcpip/include/info.h @@ -45,9 +45,13 @@ typedef struct IPADDR_ENTRY { } IPADDR_ENTRY, *PIPADDR_ENTRY; #define IP_MIB_STATS_ID 1 +#ifndef IP_MIB_ADDRTABLE_ENTRY_ID #define IP_MIB_ADDRTABLE_ENTRY_ID 0x102 +#endif +#ifndef MAX_PHYSADDR_SIZE #define MAX_PHYSADDR_SIZE 8 +#endif /* Only UDP is supported */ diff --git a/reactos/drivers/net/tcpip/include/ip.h b/reactos/drivers/net/tcpip/include/ip.h index 7c8be7189a4..e7e6983ad90 100644 --- a/reactos/drivers/net/tcpip/include/ip.h +++ b/reactos/drivers/net/tcpip/include/ip.h @@ -184,7 +184,9 @@ typedef VOID (*IP_PROTOCOL_HANDLER)( #define LOOPBACK_ADDRMASK_IPv4 ((IPv4_RAW_ADDRESS)DH2N(0xFFFFFF00)) /* Protocol definitions */ +#ifndef IPPROTO_RAW #define IPPROTO_RAW 0 /* Raw IP */ +#endif #define IPPROTO_ICMP 1 /* Internet Control Message Protocol */ #define IPPROTO_IGMP 2 /* Internet Group Management Protocol */ #define IPPROTO_TCP 6 /* Transmission Control Protocol */ diff --git a/reactos/drivers/net/tcpip/include/tcpip.h b/reactos/drivers/net/tcpip/include/tcpip.h index 20876f50ebe..6a4de2ccdf9 100644 --- a/reactos/drivers/net/tcpip/include/tcpip.h +++ b/reactos/drivers/net/tcpip/include/tcpip.h @@ -23,9 +23,9 @@ #include #else #include -#include -#include -#include +#include +#include +#include #endif #include diff --git a/reactos/drivers/net/tcpip/makefile b/reactos/drivers/net/tcpip/makefile index 3e85e8fe05d..2a501cb50c9 100644 --- a/reactos/drivers/net/tcpip/makefile +++ b/reactos/drivers/net/tcpip/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.14 2004/02/22 09:59:17 chorns Exp $ +# $Id: makefile,v 1.15 2004/03/02 18:18:14 navaraf Exp $ PATH_TO_TOP = ../../.. @@ -8,7 +8,7 @@ TARGET_TYPE = export_driver TARGET_NAME = tcpip -TARGET_CFLAGS = -I./include -DDBG=1 -DNDIS40 +TARGET_CFLAGS = -I./include -DDBG=1 -DNDIS40 -D__USE_W32API TARGET_DDKLIBS = ndis.a diff --git a/reactos/drivers/net/tcpip/tcpip/address.c b/reactos/drivers/net/tcpip/tcpip/address.c index 96962d59fec..76f032fb9d2 100644 --- a/reactos/drivers/net/tcpip/tcpip/address.c +++ b/reactos/drivers/net/tcpip/tcpip/address.c @@ -414,7 +414,7 @@ PADDRESS_FILE AddrSearchNext( return NULL; } -ULONG inet_addr(PCSTR AddrString) +unsigned long PASCAL inet_addr(const char *AddrString) /* * Convert an ansi string dotted-quad address to a ulong * NOTES: diff --git a/reactos/drivers/net/tcpip/tcpip/dispatch.c b/reactos/drivers/net/tcpip/tcpip/dispatch.c index 7e91f53770e..c3cfd162e6f 100644 --- a/reactos/drivers/net/tcpip/tcpip/dispatch.c +++ b/reactos/drivers/net/tcpip/tcpip/dispatch.c @@ -444,9 +444,74 @@ NTSTATUS DispTdiDisconnect( * Status of operation */ { + PTDI_REQUEST_KERNEL_QUERY_INFORMATION Parameters; + PTRANSPORT_CONTEXT TranContext; + PIO_STACK_LOCATION IrpSp; + TI_DbgPrint(DEBUG_IRP, ("Called.\n")); - return STATUS_NOT_IMPLEMENTED; + IrpSp = IoGetCurrentIrpStackLocation(Irp); + Parameters = (PTDI_REQUEST_KERNEL_QUERY_INFORMATION)&IrpSp->Parameters; + + TranContext = IrpSp->FileObject->FsContext; + if (!TranContext) { + TI_DbgPrint(MID_TRACE, ("Bad transport context.\n")); + return STATUS_INVALID_CONNECTION; + } + + switch (Parameters->QueryType) + { + case TDI_QUERY_ADDRESS_INFO: + { + PTDI_ADDRESS_INFO AddressInfo; + PADDRESS_FILE AddrFile; + PTA_IP_ADDRESS Address; + + AddressInfo = (PTDI_ADDRESS_INFO)MmGetSystemAddressForMdl(Irp->MdlAddress); + + switch ((ULONG)IrpSp->FileObject->FsContext2) { + case TDI_TRANSPORT_ADDRESS_FILE: + AddrFile = (PADDRESS_FILE)TranContext->Handle.AddressHandle; + break; + + case TDI_CONNECTION_FILE: + AddrFile = ((PCONNECTION_ENDPOINT)TranContext->Handle.ConnectionContext)->AddressFile; + break; + + default: + TI_DbgPrint(MIN_TRACE, ("Invalid transport context\n")); + return STATUS_INVALID_PARAMETER; + } + + if (!AddrFile) { + TI_DbgPrint(MID_TRACE, ("No address file object.\n")); + return STATUS_INVALID_PARAMETER; + } + + if (MmGetMdlByteCount(Irp->MdlAddress) < + (sizeof(TDI_ADDRESS_INFO) + sizeof(TDI_ADDRESS_IP))) { + TI_DbgPrint(MID_TRACE, ("MDL buffer too small.\n")); + return STATUS_BUFFER_OVERFLOW; + } + + /* FIXME: Is this count really the one we should return? */ + AddressInfo->ActivityCount = AddrFile->RefCount; + + Address = (PTA_IP_ADDRESS)&AddressInfo->Address; + Address->TAAddressCount = 1; + Address->Address[0].AddressLength = TDI_ADDRESS_LENGTH_IP; + Address->Address[0].AddressType = TDI_ADDRESS_TYPE_IP; + Address->Address[0].Address[0].sin_port = AddrFile->Port; + Address->Address[0].Address[0].in_addr = AddrFile->ADE->Address->Address.IPv4Address; + RtlZeroMemory( + &Address->Address[0].Address[0].sin_zero, + sizeof(Address->Address[0].Address[0].sin_zero)); + + return STATUS_SUCCESS; + } + } + + return STATUS_NOT_IMPLEMENTED; } diff --git a/reactos/drivers/net/tcpip/tcpip/routines.c b/reactos/drivers/net/tcpip/tcpip/routines.c index b786a6c7a53..a45223ec1c4 100644 --- a/reactos/drivers/net/tcpip/tcpip/routines.c +++ b/reactos/drivers/net/tcpip/tcpip/routines.c @@ -341,7 +341,7 @@ UINT CopyPacketToBufferChain( return 0; /* Skip SrcOffset bytes in the source packet */ - NdisGetFirstBufferFromPacket(SrcPacket, &SrcBuffer, (PVOID)&SrcData, &SrcSize, &Total); + NdisGetFirstBufferFromPacket(SrcPacket, &SrcBuffer, &SrcData, &SrcSize, &Total); if (SkipToOffset(SrcBuffer, SrcOffset, &SrcData, &SrcSize) == -1) return 0; diff --git a/reactos/drivers/net/tdi/tdi/dereg.c b/reactos/drivers/net/tdi/tdi/dereg.c index 946ca883c79..db43cf6e91c 100644 --- a/reactos/drivers/net/tdi/tdi/dereg.c +++ b/reactos/drivers/net/tdi/tdi/dereg.c @@ -1,8 +1,8 @@ -/* $Id: dereg.c,v 1.7 2004/01/28 20:55:50 ekohl Exp $ +/* $Id: dereg.c,v 1.8 2004/03/02 18:18:14 navaraf Exp $ * */ #include -#include +#include /* De-/Register Action IDs for TdiDeRegister */ diff --git a/reactos/drivers/net/tdi/tdi/handler.c b/reactos/drivers/net/tdi/tdi/handler.c index cb3d35fe2be..439f8a55db2 100644 --- a/reactos/drivers/net/tdi/tdi/handler.c +++ b/reactos/drivers/net/tdi/tdi/handler.c @@ -1,9 +1,9 @@ -/* $Id: handler.c,v 1.6 2004/01/28 20:55:50 ekohl Exp $ +/* $Id: handler.c,v 1.7 2004/03/02 18:18:14 navaraf Exp $ * * DESCRIPTION: Default TDI event handlers. */ #include -#include +#include /* diff --git a/reactos/drivers/net/tdi/tdi/stubs.c b/reactos/drivers/net/tdi/tdi/stubs.c index 3c212b8f272..0ae3de6ca31 100644 --- a/reactos/drivers/net/tdi/tdi/stubs.c +++ b/reactos/drivers/net/tdi/tdi/stubs.c @@ -1,9 +1,9 @@ -/* $Id: stubs.c,v 1.8 2004/01/28 20:55:50 ekohl Exp $ +/* $Id: stubs.c,v 1.9 2004/03/02 18:18:14 navaraf Exp $ * */ #include -#include +#include /* * @unimplemented diff --git a/reactos/include/net/miniport.h b/reactos/include/net/miniport.h deleted file mode 100644 index 68622921ba6..00000000000 --- a/reactos/include/net/miniport.h +++ /dev/null @@ -1,851 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS NDIS library - * FILE: include/net/miniport.h - * PURPOSE: Type definitions available only to NDIS miniport drivers - */ -#if 0 -#ifndef __MINIPORT_H -#define __MINIPORT_H - -#ifdef _MSC_VER -#include -#else /* _MSC_VER */ -#include -#endif /* _MSC_VER */ - -/* Base types */ - -#define IN -#define OUT -#define OPTIONAL - -#define ANYSIZE_ARRAY 1 - -#define CONST const - -#ifdef _MSC_VER - -#ifdef i386 -#define STDCALL _stdcall -#define CDECL _cdecl -#else /* i386 */ -#define STDCALL -#define CDECL -#endif /* i386 */ - -#else /* _MSC_VER */ - -#ifdef i386 -#define STDCALL __attribute__ ((stdcall)) -#define CDECL __attribute__ ((cdecl)) -#else /* i386 */ -#define STDCALL -#define CDECL -#endif /* i386 */ - -#endif /* _MSC_VER */ - -typedef void VOID, *PVOID; -typedef char CHAR, *PCHAR; -typedef unsigned char UCHAR, *PUCHAR; -typedef short SHORT, *PSHORT; -typedef unsigned short USHORT, *PUSHORT; -typedef long LONG,*PLONG; -typedef unsigned long ULONG,*PULONG; -typedef double DOUBLE, *PDOUBLE; -typedef struct _QUAD { - double DoNotUseThisField; -} QUAD,*PQUAD; -typedef QUAD UQUAD, *PUQUAD; -typedef signed int INT, *PINT; -typedef unsigned int UINT, *PUINT; -typedef double LONGLONG, *PLONGLONG; -typedef double ULONGLONG, *PULONGLONG; - -typedef UCHAR BOOLEAN, *PBOOLEAN; -typedef ULONG DWORD, *PDWORD; - -/* Cardinal types */ -typedef CHAR CCHAR, *PCCHAR; -typedef SHORT CSHORT, *PCSHORT; -typedef ULONG CLONG, *PCLONG; - -/* UNICODE (wide character) types */ -#ifndef __cplusplus -typedef short unsigned int wchar_t; -#endif /* __cplusplus */ -typedef wchar_t WCHAR; -typedef WCHAR *PWCHAR; -typedef WCHAR *LPWCH, *PWCH; -typedef CONST WCHAR *LPCWCH, *PCWCH; -typedef WCHAR *NWPSTR; -typedef WCHAR *LPWSTR, *PWSTR; -typedef CONST WCHAR *LPCWSTR, *PCWSTR; - -/* ANSI (multi-byte character) types */ -typedef CHAR *LPCH, *PCH; -typedef CONST CHAR *LPCCH, *PCCH; -typedef CHAR *NPSTR; -typedef CHAR *LPSTR, *PSTR; -typedef CONST CHAR *LPCSTR, *PCSTR; - -/* Neutral ANSI/UNICODE types */ -#ifdef UNICODE - -typedef WCHAR TCHAR, *PTCHAR; -typedef WCHAR TUCHAR, *PTUCHAR; - -typedef LPWSTR LPTCH, PTCH; -typedef LPWSTR PTSTR, LPTSTR; -typedef LPCWSTR LPCTSTR; -typedef LPWSTR LP; -#define _TEXT(string) L##string -#define _T(string) L##string - -#else /* UNICODE */ - -typedef CHAR TCHAR, *PTCHAR; -typedef UCHAR TUCHAR, *PTUCHAR; - -typedef LPSTR LPTCH, PTCH; -typedef LPSTR PTSTR, LPTSTR; -typedef LPCSTR LPCTSTR; -#define _TEXT(string) string -#define _T(string) string - -#endif /* UNICODE */ - -#define TEXT(string) __TEXT(string) - - -typedef union _LARGE_INTEGER { - struct { - ULONG LowPart; - LONG HighPart; - }; - struct { - ULONG LowPart; - LONG HighPart; - } u; - LONGLONG QuadPart; -} LARGE_INTEGER; - -typedef LARGE_INTEGER *PLARGE_INTEGER; - -typedef union _ULARGE_INTEGER { - struct { - ULONG LowPart; - ULONG HighPart; - }; - struct { - ULONG LowPart; - ULONG HighPart; - } u; - ULONGLONG QuadPart; -} ULARGE_INTEGER; - -typedef ULARGE_INTEGER *PULARGE_INTEGER; - - -typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS; - - - -/* NT status type and macros for checking status */ -typedef LONG NTSTATUS; -typedef NTSTATUS *PNTSTATUS; - -#ifdef _MSC_VER -#define NT_SUCCESS(Status) ((ULONG)(Status) >= 0) -#endif /* _MSC_VER */ -#define NT_INFORMATION(Status) ((ULONG)(Status) >> 30 == 1) -#define NT_WARNING(Status) ((ULONG)(Status) >> 30 == 2) -#define NT_ERROR(Status) ((ULONG)(Status) >> 30 == 3) - -#define APPLICATION_ERROR_MASK 0x20000000 -#define ERROR_SEVERITY_SUCCESS 0x00000000 -#define ERROR_SEVERITY_INFORMATIONAL 0x40000000 -#define ERROR_SEVERITY_WARNING 0x80000000 -#define ERROR_SEVERITY_ERROR 0xC0000000 - - - -/* Basic constants */ - -#define FALSE 0 -#define TRUE 1 - -#define NULL ((PVOID)0) - - - -/* Counted strings */ - -typedef struct _STRING -{ - USHORT Length; - USHORT MaximumLength; - PCHAR Buffer; -} STRING, *PSTRING; - -typedef STRING ANSI_STRING, *PANSI_STRING; -typedef STRING OEM_STRING, *POEM_STRING; - -#define ANSI_NULL ((CHAR)0) - -typedef struct _CSTRING -{ - USHORT Length; - USHORT MaximumLength; - CONST CHAR *Buffer; -} CSTRING, *PCSTRING; - -typedef CSTRING CANSI_STRING, *PCANSI_STRING; - - -typedef struct _UNICODE_STRING -{ - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; - -typedef struct _CUNICODE_STRING -{ - USHORT Length; - USHORT MaximumLength; - CONST PWSTR Buffer; -} CUNICODE_STRING, *PCUNICODE_STRING; - -#define UNICODE_NULL ((WCHAR)0) - - - -/* Linked lists */ - -typedef struct _LIST_ENTRY -{ - struct _LIST_ENTRY *Flink; - struct _LIST_ENTRY *Blink; -} LIST_ENTRY, *PLIST_ENTRY; - -typedef struct _SINGLE_LIST_ENTRY -{ - struct _SINGLE_LIST_ENTRY *Next; -} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; - - -/* - * VOID InitializeListHead( - * PLIST_ENTRY ListHead); - */ -#define InitializeListHead(ListHead) \ -{ \ - (ListHead)->Flink = (ListHead); \ - (ListHead)->Blink = (ListHead); \ -} - - -/* - * VOID InsertHeadList( - * LIST_ENTRY ListHead, - * PLIST_ENTRY Entry); - */ -#define InsertHeadList(ListHead, ListEntry) \ -{ \ - PLIST_ENTRY OldFlink; \ - OldFlink = (ListHead)->Flink; \ - (ListEntry)->Flink = OldFlink; \ - (ListEntry)->Blink = (ListHead); \ - OldFlink->Blink = (ListEntry); \ - (ListHead)->Flink = (ListEntry); \ -} - - -/* - * VOID InsertTailList( - * PLIST_ENTRY ListHead, - * PLIST_ENTRY Entry); - */ -#define InsertTailList(ListHead, ListEntry) \ -{ \ - PLIST_ENTRY OldBlink; \ - OldBlink = (ListHead)->Blink; \ - (ListEntry)->Flink = (ListHead); \ - (ListEntry)->Blink = OldBlink; \ - OldBlink->Flink = (ListEntry); \ - (ListHead)->Blink = (ListEntry); \ -} - -/* - * BOOLEAN IsListEmpty( - * PLIST_ENTRY ListHead); - */ -#define IsListEmpty(ListHead) \ - ((ListHead)->Flink == (ListHead)) - - -/* - * PSINGLE_LIST_ENTRY PopEntryList( - * PSINGLE_LIST_ENTRY ListHead); - */ -#define PopEntryList(ListHead) \ - (ListHead)->Next; \ -{ \ - PSINGLE_LIST_ENTRY FirstEntry; \ - \ - FirstEntry = (ListHead)->Next; \ - if (FirstEntry != NULL) \ - { \ - (ListHead)->Next = FirstEntry->Next; \ - } \ -} - - -/* - * VOID PushEntryList( - * PSINGLE_LIST_ENTRY ListHead, - * PSINGLE_LIST_ENTRY Entry); - */ -#define PushEntryList(ListHead, Entry) \ - (Entry)->Next = (ListHead)->Next; \ - (ListHead)->Next = (Entry) - - -/* - * VOID RemoveEntryList( - * PLIST_ENTRY Entry); - */ -#define RemoveEntryList(ListEntry) \ -{ \ - PLIST_ENTRY OldFlink; \ - PLIST_ENTRY OldBlink; \ - OldFlink = (ListEntry)->Flink; \ - OldBlink = (ListEntry)->Blink; \ - OldFlink->Blink = OldBlink; \ - OldBlink->Flink = OldFlink; \ -} - - -/* - * PLIST_ENTRY RemoveHeadList( - * PLIST_ENTRY ListHead); - */ -#define RemoveHeadList(ListHead) \ - (ListHead)->Flink; \ -{ \ - RemoveEntryList((ListHead)->Flink) \ -} - - -/* - * PLIST_ENTRY RemoveTailList( - * PLIST_ENTRY ListHead); - */ -#define RemoveTailList(ListHead) \ - (ListHead)->Blink; \ -{ \ - RemoveEntryList((ListHead)->Blink) \ -} - - -/* Hardware */ - -typedef UCHAR KIRQL, *PKIRQL; - -typedef struct _KSPIN_LOCK -{ - ULONG Lock; -} KSPIN_LOCK, *PKSPIN_LOCK; - - -typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; -typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT; -typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT; -typedef struct _FILE_OBJECT *PFILE_OBJECT; - -typedef struct _KINTERRUPT *PKINTERRUPT; - - -/* Memory Descriptor List */ -typedef struct _MDL { - struct _MDL *Next; - CSHORT Size; - CSHORT MdlFlags; - struct _EPROCESS *Process; - PVOID MappedSystemVa; - PVOID StartVa; - ULONG ByteCount; - ULONG ByteOffset; -} MDL, *PMDL; - -#define MDL_MAPPED_TO_SYSTEM_VA 0x0001 -#define MDL_PAGES_LOCKED 0x0002 -#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004 -#define MDL_ALLOCATED_FIXED_SIZE 0x0008 -#define MDL_PARTIAL 0x0010 -#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020 -#define MDL_IO_PAGE_READ 0x0040 -#define MDL_WRITE_OPERATION 0x0080 -#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100 -#define MDL_LOCK_HELD 0x0200 -#define MDL_PHYSICAL_VIEW 0x0400 -#define MDL_IO_SPACE 0x0800 -#define MDL_NETWORK_HEADER 0x1000 -#define MDL_MAPPING_CAN_FAIL 0x2000 -#define MDL_ALLOCATED_MUST_SUCCEED 0x4000 - - -#define MDL_MAPPING_FLAGS (MDL_MAPPED_TO_SYSTEM_VA | \ - MDL_PAGES_LOCKED | \ - MDL_SOURCE_IS_NONPAGED_POOL | \ - MDL_PARTIAL_HAS_BEEN_MAPPED | \ - MDL_PARENT_MAPPED_SYSTEM_VA | \ - MDL_LOCK_HELD | \ - MDL_SYSTEM_VA | \ - MDL_IO_SPACE ) - - -typedef struct _DISPATCHER_HEADER -{ - UCHAR Type; - UCHAR Absolute; - UCHAR Size; - UCHAR Inserted; - LONG SignalState; - LIST_ENTRY WaitListHead; -} DISPATCHER_HEADER; - -typedef struct _KEVENT -{ - DISPATCHER_HEADER Header; -} KEVENT, *PKEVENT; - - -typedef struct _KTIMER -{ - DISPATCHER_HEADER Header; - ULARGE_INTEGER DueTime; - LIST_ENTRY TimerListEntry; - struct _KDPC *Dpc; - LONG Period; -} KTIMER, *PKTIMER; - - -typedef enum _KDPC_IMPORTANCE -{ - LowImportance, - MediumImportance, - HighImportance -} KDPC_IMPORTANCE; - -/* Forward declaration */ -struct _KDPC; - -typedef VOID (*PKDEFERRED_ROUTINE)( - IN struct _KDPC *Dpc, - IN PVOID DeferredContext, - IN PVOID SystemArgument1, - IN PVOID SystemArgument2); - -/* Deferred Procedure Call */ - -typedef struct _KDPC { - CSHORT Type; - UCHAR Number; - UCHAR Importance; - LIST_ENTRY DpcListEntry; - PKDEFERRED_ROUTINE DeferredRoutine; - PVOID DeferredContext; - PVOID SystemArgument1; - PVOID SystemArgument2; - PULONG Lock; -} KDPC, *PKDPC; - - -typedef enum _INTERFACE_TYPE -{ - InterfaceTypeUndefined = -1, - Internal, - Isa, - Eisa, - MicroChannel, - TurboChannel, - PCIBus, - VMEBus, - NuBus, - PCMCIABus, - CBus, - MPIBus, - MPSABus, - ProcessorInternal, - InternalPowerBus, - PNPISABus, - MaximumInterfaceType -} INTERFACE_TYPE, *PINTERFACE_TYPE; - - -typedef enum _DMA_WIDTH -{ - Width8Bits, - Width16Bits, - Width32Bits, - MaximumDmaWidth -} DMA_WIDTH, *PDMA_WIDTH; - -typedef enum _DMA_SPEED -{ - Compatible, - TypeA, - TypeB, - TypeC, - TypeF, - MaximumDmaSpeed -} DMA_SPEED, *PDMA_SPEED; - - -typedef enum _KINTERRUPT_MODE -{ - LevelSensitive, - Latched -} KINTERRUPT_MODE; - - -typedef struct _DMA_CONFIGURATION_BYTE0 -{ - UCHAR Channel:3; - UCHAR Reserved:3; - UCHAR Shared:1; - UCHAR MoreEntries:1; -} DMA_CONFIGURATION_BYTE0; - -typedef struct _DMA_CONFIGURATION_BYTE1 -{ - UCHAR Reserved0:2; - UCHAR TransferSize:2; - UCHAR Timing:2; - UCHAR Reserved1:2; -} DMA_CONFIGURATION_BYTE1; - - -typedef struct _CM_MCA_POS_DATA -{ - USHORT AdapterId; - UCHAR PosData1; - UCHAR PosData2; - UCHAR PosData3; - UCHAR PosData4; -} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA; - -typedef struct _EISA_MEMORY_TYPE -{ - UCHAR ReadWrite:1; - UCHAR Cached:1; - UCHAR Reserved0:1; - UCHAR Type:2; - UCHAR Shared:1; - UCHAR Reserved1:1; - UCHAR MoreEntries:1; -} EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE; - -typedef struct _EISA_MEMORY_CONFIGURATION -{ - EISA_MEMORY_TYPE ConfigurationByte; - UCHAR DataSize; - USHORT AddressLowWord; - UCHAR AddressHighByte; - USHORT MemorySize; -} EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION; - - -typedef struct _EISA_IRQ_DESCRIPTOR -{ - UCHAR Interrupt:4; - UCHAR Reserved:1; - UCHAR LevelTriggered:1; - UCHAR Shared:1; - UCHAR MoreEntries:1; -} EISA_IRQ_DESCRIPTOR, *PEISA_IRQ_DESCRIPTOR; - -typedef struct _EISA_IRQ_CONFIGURATION -{ - EISA_IRQ_DESCRIPTOR ConfigurationByte; - UCHAR Reserved; -} EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION; - -typedef struct _EISA_DMA_CONFIGURATION -{ - DMA_CONFIGURATION_BYTE0 ConfigurationByte0; - DMA_CONFIGURATION_BYTE1 ConfigurationByte1; -} EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION; - - -typedef struct _EISA_PORT_DESCRIPTOR -{ - UCHAR NumberPorts:5; - UCHAR Reserved:1; - UCHAR Shared:1; - UCHAR MoreEntries:1; -} EISA_PORT_DESCRIPTOR, *PEISA_PORT_DESCRIPTOR; - -typedef struct _EISA_PORT_CONFIGURATION -{ - EISA_PORT_DESCRIPTOR Configuration; - USHORT PortAddress; -} EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION; - -typedef struct _CM_EISA_SLOT_INFORMATION -{ - UCHAR ReturnCode; - UCHAR ReturnFlags; - UCHAR MajorRevision; - UCHAR MinorRevision; - USHORT Checksum; - UCHAR NumberFunctions; - UCHAR FunctionInformation; - ULONG CompressedId; -} CM_EISA_SLOT_INFORMATION, *PCM_EISA_SLOT_INFORMATION; - -typedef struct _CM_EISA_FUNCTION_INFORMATION -{ - ULONG CompressedId; - UCHAR IdSlotFlags1; - UCHAR IdSlotFlags2; - UCHAR MinorRevision; - UCHAR MajorRevision; - UCHAR Selections[26]; - UCHAR FunctionFlags; - UCHAR TypeString[80]; - EISA_MEMORY_CONFIGURATION EisaMemory[9]; - EISA_IRQ_CONFIGURATION EisaIrq[7]; - EISA_DMA_CONFIGURATION EisaDma[4]; - EISA_PORT_CONFIGURATION EisaPort[20]; - UCHAR InitializationData[60]; -} CM_EISA_FUNCTION_INFORMATION, *PCM_EISA_FUNCTION_INFORMATION; - - -typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR -{ - UCHAR Type; - UCHAR ShareDisposition; - USHORT Flags; - union { - struct { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Generic; - - struct { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Port; - - struct { - ULONG Level; - ULONG Vector; - ULONG Affinity; - } Interrupt; - - struct { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Memory; - - struct { - ULONG Channel; - ULONG Port; - ULONG Reserved1; - } Dma; - - struct { - ULONG Data[3]; - } DevicePrivate; - - struct { - ULONG Start; - ULONG Length; - ULONG Reserved; - } BusNumber; - - struct { - ULONG DataSize; - ULONG Reserved1; - ULONG Reserved2; - } DeviceSpecificData; - } u; -} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; - -typedef struct _CM_PARTIAL_RESOURCE_LIST -{ - USHORT Version; - USHORT Revision; - ULONG Count; - CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; -} CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST; - -typedef struct _CM_FULL_RESOURCE_DESCRIPTOR -{ - INTERFACE_TYPE InterfaceType; - ULONG BusNumber; - CM_PARTIAL_RESOURCE_LIST PartialResourceList; -} CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR; - -typedef struct _CM_RESOURCE_LIST -{ - ULONG Count; - CM_FULL_RESOURCE_DESCRIPTOR List[1]; -} CM_RESOURCE_LIST, *PCM_RESOURCE_LIST; - - - -/* Operating System services */ - -/* Debugging */ - -ULONG CDECL DbgPrint( - PCH Format, - ...); - -#ifdef DBG - -VOID -STDCALL -RtlAssert( - PVOID FailedAssertion, - PVOID FileName, - ULONG LineNumber, - PCHAR Message); - -#define ASSERT(exp) \ - if (!(exp)) \ - RtlAssert(#exp, __FILE__, __LINE__, NULL) - -#define ASSERTMSG(msg, exp) \ - if (!(exp)) \ - RtlAssert(#exp, __FILE__, __LINE__, msg) - -#else /* DBG */ - -#define ASSERT(exp) -#define ASSERTMSG(msg, exp) - -#endif /* DBG */ - - -/* Runtime library */ - -#define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination), (Source), (Length))) -#define RtlMoveMemory(Destination,Source,Length) memmove((Destination), (Source), (Length)) -#define RtlCopyMemory(Destination,Source,Length) memcpy((Destination), (Source), (Length)) -#define RtlFillMemory(Destination,Length,Fill) memset((Destination), (Fill),(Length)) -#define RtlZeroMemory(Destination,Length) memset((Destination), 0, (Length)) - - -/* Core kernel functions */ - -VOID -STDCALL -KeStallExecutionProcessor( - ULONG MicroSeconds); - - -/* I/O functions */ - -VOID -STDCALL -READ_PORT_BUFFER_UCHAR( - PUCHAR Port, - PUCHAR Value, - ULONG Count); - -VOID -STDCALL -READ_PORT_BUFFER_ULONG( - PULONG Port, - PULONG Value, - ULONG Count); - -VOID -STDCALL -READ_PORT_BUFFER_USHORT( - PUSHORT Port, - PUSHORT Value, - ULONG Count); - -UCHAR -STDCALL -READ_PORT_UCHAR( - PUCHAR Port); - -ULONG -STDCALL -READ_PORT_ULONG( - PULONG Port); - -USHORT -STDCALL -READ_PORT_USHORT( - PUSHORT Port); - -VOID -STDCALL -WRITE_PORT_BUFFER_UCHAR( - PUCHAR Port, - PUCHAR Value, - ULONG Count); - -VOID -STDCALL -WRITE_PORT_BUFFER_ULONG( - PULONG Port, - PULONG Value, - ULONG Count); - -VOID -STDCALL -WRITE_PORT_BUFFER_USHORT( - PUSHORT Port, - PUSHORT Value, - ULONG Count); - -VOID -STDCALL -WRITE_PORT_UCHAR( - PUCHAR Port, - UCHAR Value); - -VOID -STDCALL -WRITE_PORT_ULONG( - PULONG Port, - ULONG Value); - -VOID -STDCALL -WRITE_PORT_USHORT( - PUSHORT Port, - USHORT Value); - -VOID -STDCALL -WRITE_REGISTER_UCHAR( - PUCHAR Register, - UCHAR Value); - -VOID -STDCALL -WRITE_REGISTER_ULONG( - PULONG Register, - ULONG Value); - -VOID -STDCALL -WRITE_REGISTER_USHORT( - PUSHORT Register, - USHORT Value); - -#endif /* __MINIPORT_H */ - -/* EOF */ -#endif diff --git a/reactos/include/net/ndis.h b/reactos/include/net/ndis.h index 4b1fedf9e4a..79d2fdb043e 100644 --- a/reactos/include/net/ndis.h +++ b/reactos/include/net/ndis.h @@ -52,7 +52,7 @@ extern "C" { #include "ntddk.h" #include "ntddndis.h" -#include "netpnp.h" +#include #ifdef NDIS50 #undef NDIS40 @@ -2626,10 +2626,7 @@ NdisWriteErrorLogEntry( IN NDIS_HANDLE NdisAdapterHandle, IN NDIS_ERROR_CODE ErrorCode, IN ULONG NumberOfErrorValues, - IN ULONG ERROR_LOG_MAXIMUM_SIZE); -/* IN ULONG ...); - * ERROR_LOG_MAXIMUM_SIZE = ... in MSDN - */ + ...); /* * VOID diff --git a/reactos/include/net/netevent.h b/reactos/include/net/netevent.h deleted file mode 100644 index 0cf66e03217..00000000000 --- a/reactos/include/net/netevent.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * netevent.h - * - * Network events - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NETEVENT_H -#define __NETEVENT_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#define EVENT_TRANSPORT_REGISTER_FAILED 0xC000232CL - -#define EVENT_TRANSPORT_ADAPTER_NOT_FOUND 0xC000232EL - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __NETEVENT_H */ diff --git a/reactos/include/net/netpnp.h b/reactos/include/net/netpnp.h deleted file mode 100644 index 32f305d0323..00000000000 --- a/reactos/include/net/netpnp.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * netpnp.h - * - * Network Plug and Play event support - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NETPNP_H -#define __NETPNP_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -typedef enum _NET_PNP_EVENT_CODE { - NetEventSetPower, - NetEventQueryPower, - NetEventQueryRemoveDevice, - NetEventCancelRemoveDevice, - NetEventReconfigure, - NetEventBindList, - NetEventBindsComplete, - NetEventPnPCapabilities, - NetEventMaximum -} NET_PNP_EVENT_CODE, *PNET_PNP_EVENT_CODE; - -typedef struct _NET_PNP_EVENT { - NET_PNP_EVENT_CODE NetEvent; - PVOID Buffer; - ULONG BufferLength; - ULONG_PTR NdisReserved[4]; - ULONG_PTR TransportReserved[4]; - ULONG_PTR TdiReserved[4]; - ULONG_PTR TdiClientReserved[4]; -} NET_PNP_EVENT, *PNET_PNP_EVENT; - -typedef enum _NET_DEVICE_POWER_STATE { - NetDeviceStateUnspecified, - NetDeviceStateD0, - NetDeviceStateD1, - NetDeviceStateD2, - NetDeviceStateD3, - NetDeviceStateMaximum -} NET_DEVICE_POWER_STATE, *PNET_DEVICE_POWER_STATE; - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* __NETPNP_H */ diff --git a/reactos/include/net/ntddtdi.h b/reactos/include/net/ntddtdi.h deleted file mode 100644 index 5ff5ad0643f..00000000000 --- a/reactos/include/net/ntddtdi.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * ntddtdi.h - * - * TDI IOCTL interface - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NTDDTDI_H -#define __NTDDTDI_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -#include "ntddk.h" - - -#define DD_TDI_DEVICE_NAME "\\Device\\UNKNOWN" -#define DD_TDI_DEVICE_NAME_U L"\\Device\\UNKNOWN" - -#define _TDI_CONTROL_CODE(Request, Method) \ - CTL_CODE(FILE_DEVICE_TRANSPORT, Request, Method, FILE_ANY_ACCESS) - -#define IOCTL_TDI_ACCEPT _TDI_CONTROL_CODE(0, METHOD_BUFFERED) -#define IOCTL_TDI_CONNECT _TDI_CONTROL_CODE(1, METHOD_BUFFERED) -#define IOCTL_TDI_DISCONNECT _TDI_CONTROL_CODE(2, METHOD_BUFFERED) -#define IOCTL_TDI_LISTEN _TDI_CONTROL_CODE(3, METHOD_BUFFERED) -#define IOCTL_TDI_QUERY_INFORMATION _TDI_CONTROL_CODE(4, METHOD_OUT_DIRECT) -#define IOCTL_TDI_RECEIVE _TDI_CONTROL_CODE(5, METHOD_OUT_DIRECT) -#define IOCTL_TDI_RECEIVE_DATAGRAM _TDI_CONTROL_CODE(6, METHOD_OUT_DIRECT) -#define IOCTL_TDI_SEND _TDI_CONTROL_CODE(7, METHOD_IN_DIRECT) -#define IOCTL_TDI_SEND_DATAGRAM _TDI_CONTROL_CODE(8, METHOD_IN_DIRECT) -#define IOCTL_TDI_SET_EVENT_HANDLER _TDI_CONTROL_CODE(9, METHOD_BUFFERED) -#define IOCTL_TDI_SET_INFORMATION _TDI_CONTROL_CODE(10, METHOD_IN_DIRECT) -#define IOCTL_TDI_ASSOCIATE_ADDRESS _TDI_CONTROL_CODE(11, METHOD_BUFFERED) -#define IOCTL_TDI_DISASSOCIATE_ADDRESS _TDI_CONTROL_CODE(12, METHOD_BUFFERED) -#define IOCTL_TDI_ACTION _TDI_CONTROL_CODE(13, METHOD_OUT_DIRECT) - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* __NTDDTDI_H */ diff --git a/reactos/include/net/tdi.h b/reactos/include/net/tdi.h deleted file mode 100644 index f667fe7c423..00000000000 --- a/reactos/include/net/tdi.h +++ /dev/null @@ -1,641 +0,0 @@ -/* - * tdi.h - * - * TDI user mode definitions - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __TDI_H -#define __TDI_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -#include "ntddk.h" -#include "ntddtdi.h" -#include "tdistat.h" -#include "netpnp.h" - -/* FIXME: Missed some definitions in ntddk.h */ - -/* Could be defined elsewhere - * #ifndef INT - * typedef signed int INT, *PINT; - * #endif - */ - - -/* TDI transport driver dispatch routines */ - -NTSTATUS TdiDispatchCleanup( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp); - -NTSTATUS TdiDispatchClose( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp); - -NTSTATUS TdiDispatchCreate( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp); - -NTSTATUS TdiDispatchDeviceControl( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp, - IN PIO_STACK_LOCATION IrpSp); - -BOOLEAN TdiDispatchFastDeviceControl( - IN PFILE_OBJECT FileObject, - IN BOOLEAN Wait, - IN PVOID InputBuffer, - IN ULONG InputBufferLength, - IN OUT PVOID OutputBuffer, - IN ULONG OutputBufferLength, - IN ULONG IoControlCode, - OUT PIO_STATUS_BLOCK IoStatus); - -NTSTATUS TdiDispatchInternalDeviceControl( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp); - - - -/* Basic types */ - -typedef LONG TDI_STATUS; -typedef PVOID CONNECTION_CONTEXT; - -typedef struct _TDI_CONNECTION_INFORMATION { - LONG UserDataLength; - PVOID UserData; - LONG OptionsLength; - PVOID Options; - LONG RemoteAddressLength; - PVOID RemoteAddress; -} TDI_CONNECTION_INFORMATION, *PTDI_CONNECTION_INFORMATION; - -typedef struct _TDI_REQUEST { - union { - HANDLE AddressHandle; - CONNECTION_CONTEXT ConnectionContext; - HANDLE ControlChannel; - } Handle; - PVOID RequestNotifyObject; - PVOID RequestContext; - TDI_STATUS TdiStatus; -} TDI_REQUEST, *PTDI_REQUEST; - -typedef struct _TDI_REQUEST_STATUS { - TDI_STATUS Status; - PVOID RequestContext; - ULONG BytesTransferred; -} TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS; - -typedef struct _TA_ADDRESS { - USHORT AddressLength; - USHORT AddressType; - UCHAR Address[1]; -} TA_ADDRESS, *PTA_ADDRESS; - -#define TDI_ADDRESS_TYPE_UNSPEC 0 -#define TDI_ADDRESS_TYPE_UNIX 1 -#define TDI_ADDRESS_TYPE_IP 2 -#define TDI_ADDRESS_TYPE_IMPLINK 3 -#define TDI_ADDRESS_TYPE_PUP 4 -#define TDI_ADDRESS_TYPE_CHAOS 5 -#define TDI_ADDRESS_TYPE_NS 6 -#define TDI_ADDRESS_TYPE_IPX 6 -#define TDI_ADDRESS_TYPE_NBS 7 -#define TDI_ADDRESS_TYPE_ECMA 8 -#define TDI_ADDRESS_TYPE_DATAKIT 9 -#define TDI_ADDRESS_TYPE_CCITT 10 -#define TDI_ADDRESS_TYPE_SNA 11 -#define TDI_ADDRESS_TYPE_DECnet 12 -#define TDI_ADDRESS_TYPE_DLI 13 -#define TDI_ADDRESS_TYPE_LAT 14 -#define TDI_ADDRESS_TYPE_HYLINK 15 -#define TDI_ADDRESS_TYPE_APPLETALK 16 -#define TDI_ADDRESS_TYPE_NETBIOS 17 -#define TDI_ADDRESS_TYPE_8022 18 -#define TDI_ADDRESS_TYPE_OSI_TSAP 19 -#define TDI_ADDRESS_TYPE_NETONE 20 -#define TDI_ADDRESS_TYPE_VNS 21 -#define TDI_ADDRESS_TYPE_NETBIOS_EX 22 -#define TDI_ADDRESS_TYPE_IP6 23 -#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24 - -#define TdiTransportAddress "TransportAddress" -#define TdiConnectionContext "ConnectionContext" -#define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) - 1) -#define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) - 1) -#define TDI_ADDRESS_HEADER_LEN (2 * sizeof(USHORT)) - -typedef struct _TRANSPORT_ADDRESS { - LONG TAAddressCount; - TA_ADDRESS Address[1]; -} TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS; - -typedef struct _TDI_ADDRESS_INFO { - ULONG ActivityCount; - TRANSPORT_ADDRESS Address; -} TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO; - -typedef struct _TDI_ACTION_HEADER { - ULONG TransportId; - USHORT ActionCode; - USHORT Reserved; -} TDI_ACTION_HEADER, *PTDI_ACTION_HEADER; - -typedef struct _TDI_ADDRESS_8022 { - UCHAR MACAddress[6]; -} TDI_ADDRESS_8022, *PTDI_ADDRESS_8022; - -#define TDI_ADDRESS_LENGTH_8022 sizeof(TDI_ADDRESS_8022); - -typedef struct _TDI_ADDRESS_APPLETALK { - USHORT Network; - UCHAR Node; - UCHAR Socket; -} TDI_ADDRESS_APPLETALK, *PTDI_ADDRESS_APPLETALK; - -#define TDI_ADDRESS_LENGTH_APPLETALK sizeof(TDI_ADDRESS_APPLETALK) - -typedef struct _TDI_ADDRESS_IP { - USHORT sin_port; - ULONG in_addr; - UCHAR sin_zero[8]; -} TDI_ADDRESS_IP, *PTDI_ADDRESS_IP; - -#define TDI_ADDRESS_LENGTH_IP sizeof(TDI_ADDRESS_IP) - -typedef struct _TDI_ADDRESS_IPX { - ULONG NetworkAddress; - UCHAR NodeAddress[6]; - USHORT Socket; -} TDI_ADDRESS_IPX, *PTDI_ADDRESS_IPX; - -#define TDI_ADDRESS_LENGTH_IPX sizeof(TDI_ADDRESS_IPX) - -/* TDI_ADDRESS_NETBIOS.NetbiosNameType constants */ -#define TDI_ADDRESS_NETBIOS_TYPE_UNIQUE 0x0000 -#define TDI_ADDRESS_NETBIOS_TYPE_GROUP 0x0001 -#define TDI_ADDRESS_NETBIOS_TYPE_QUICK_UNIQUE 0x0002 -#define TDI_ADDRESS_NETBIOS_TYPE_QUICK_GROUP 0x0003 - -typedef struct _TDI_ADDRESS_NETBIOS { - USHORT NetbiosNameType; - UCHAR NetbiosName[16]; -} TDI_ADDRESS_NETBIOS, *PTDI_ADDRESS_NETBIOS; - -#define TDI_ADDRESS_LENGTH_NETBIOS sizeof(TDI_ADDRESS_NETBIOS) - -typedef struct _TDI_ADDRESS_NETBIOS_EX { - UCHAR EndpointName[16]; - TDI_ADDRESS_NETBIOS NetbiosAddress; -} TDI_ADDRESS_NETBIOS_EX, *PTDI_ADDRESS_NETBIOS_EX; - -#define TDI_ADDRESS_LENGTH_NETBIOS_EX sizeof(TDI_ADDRESS_NETBIOS_EX) - -/* TDI_ADDRESS_NETONE.NetoneNameType constants */ -#define TDI_ADDRESS_NETONE_TYPE_UNIQUE 0x0000 -#define TDI_ADDRESS_NETONE_TYPE_ROTORED 0x0001 - -typedef struct _TDI_ADDRESS_NETONE { - USHORT NetoneNameType; - UCHAR NetoneName[20]; -} TDI_ADDRESS_NETONE, *PTDI_ADDRESS_NETONE; - -#define TDI_ADDRESS_LENGTH_NETONE sizeof(TDI_ADDRESS_NETONE) - -typedef struct _TDI_ADDRESS_NS -{ - ULONG NetworkAddress; - UCHAR NodeAddress[6]; - USHORT Socket; -} TDI_ADDRESS_NS, *PTDI_ADDRESS_NS; - -#define TDI_ADDRESS_LENGTH_NS sizeof(TDI_ADDRESS_NS) - -#define ISO_MAX_ADDR_LENGTH 64 - -/* TDI_ADDRESS_OSI_TSAP.tp_addr_type constants */ -#define ISO_HIERARCHICAL 0 -#define ISO_NON_HIERARCHICAL 1 - -typedef struct _TDI_ADDRESS_OSI_TSAP { - USHORT tp_addr_type; - USHORT tp_taddr_len; - USHORT tp_tsel_len; - UCHAR tp_addr[ISO_MAX_ADDR_LENGTH]; -} TDI_ADDRESS_OSI_TSAP, *PTDI_ADDRESS_OSI_TSAP; - -#define TDI_ADDRESS_LENGTH_OSI_TSAP sizeof(TDI_ADDRESS_OSI_TSAP) - -typedef struct _TDI_ADDRESS_VNS { - UCHAR net_address[4]; - UCHAR subnet_addr[2]; - UCHAR port[2]; - UCHAR hops; - UCHAR filler[5]; -} TDI_ADDRESS_VNS, *PTDI_ADDRESS_VNS; - -#define TDI_ADDRESS_LENGTH_VNS sizeof(TDI_ADDRESS_VNS) - -typedef struct _TDI_ADDRESS_IP6 { - USHORT sin6_port; - ULONG sin6_flowinfo; - USHORT sin6_addr[8]; - ULONG sin6_scope_id; -} TDI_ADDRESS_IP6, *PTDI_ADDRESS_IP6; - -#define TDI_ADDRESS_LENGTH_IP6 sizeof(TDI_ADDRESS_IP6) - -enum eNameBufferType { - NBT_READONLY = 0, - NBT_WRITEONLY, - NBT_READWRITE, - NBT_WRITTEN -}; - -typedef struct _TDI_ADDRESS_NETBIOS_UNICODE_EX { - USHORT NetbiosNameType; - enum eNameBufferType NameBufferType; - UNICODE_STRING EndpointName; - UNICODE_STRING RemoteName; - WCHAR EndpointBuffer[17]; - WCHAR RemoteNameBuffer[1]; -} TDI_ADDRESS_NETBIOS_UNICODE_EX, *PTDI_ADDRESS_NETBIOS_UNICODE_EX; - - -typedef struct _TDI_CONNECT_REQUEST { - TDI_REQUEST Request; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; - PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; - LARGE_INTEGER Timeout; -} TDI_REQUEST_CONNECT, *PTDI_REQUEST_CONNECT; - -typedef struct _TDI_REQUEST_ACCEPT { - TDI_REQUEST Request; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; - PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; -} TDI_REQUEST_ACCEPT, *PTDI_REQUEST_ACCEPT; - -typedef struct _TDI_REQUEST_LISTEN { - TDI_REQUEST Request; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; - PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; - USHORT ListenFlags; -} TDI_REQUEST_LISTEN, *PTDI_REQUEST_LISTEN; - -typedef struct _TDI_DISCONNECT_REQUEST { - TDI_REQUEST Request; - LARGE_INTEGER Timeout; -} TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT; - -typedef struct _TDI_REQUEST_SEND { - TDI_REQUEST Request; - USHORT SendFlags; -} TDI_REQUEST_SEND, *PTDI_REQUEST_SEND; - -typedef struct _TDI_REQUEST_RECEIVE { - TDI_REQUEST Request; - USHORT ReceiveFlags; -} TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE; - -typedef struct _TDI_REQUEST_SEND_DATAGRAM { - TDI_REQUEST Request; - PTDI_CONNECTION_INFORMATION SendDatagramInformation; -} TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM; - -typedef struct _TDI_REQUEST_RECEIVE_DATAGRAM { - TDI_REQUEST Request; - PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation; - PTDI_CONNECTION_INFORMATION ReturnInformation; - USHORT ReceiveFlags; -} TDI_REQUEST_RECEIVE_DATAGRAM, *PTDI_REQUEST_RECEIVE_DATAGRAM; - -typedef struct _TDI_REQUEST_SET_EVENT { - TDI_REQUEST Request; - LONG EventType; - PVOID EventHandler; - PVOID EventContext; -} TDI_REQUEST_SET_EVENT_HANDLER, *PTDI_REQUEST_SET_EVENT_HANDLER; - -#define TDI_RECEIVE_BROADCAST 0x00000004 -#define TDI_RECEIVE_MULTICAST 0x00000008 -#define TDI_RECEIVE_PARTIAL 0x00000010 -#define TDI_RECEIVE_NORMAL 0x00000020 -#define TDI_RECEIVE_EXPEDITED 0x00000040 -#define TDI_RECEIVE_PEEK 0x00000080 -#define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100 -#define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200 -#define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400 -#define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800 -#define TDI_RECEIVE_CONTROL_INFO 0x00001000 - -/* Listen flags */ -#define TDI_QUERY_ACCEPT 0x00000001 - -/* Options used for both SendOptions and ReceiveIndicators */ -#define TDI_SEND_EXPEDITED 0x0020 -#define TDI_SEND_PARTIAL 0x0040 -#define TDI_SEND_NO_RESPONSE_EXPECTED 0x0080 -#define TDI_SEND_NON_BLOCKING 0x0100 -#define TDI_SEND_AND_DISCONNECT 0x0200 - -/* Disconnect Flags */ -#define TDI_DISCONNECT_WAIT 0x0001 -#define TDI_DISCONNECT_ABORT 0x0002 -#define TDI_DISCONNECT_RELEASE 0x0004 - -/* TdiRequest structure for TdiQueryInformation request */ -typedef struct _TDI_REQUEST_QUERY_INFORMATION { - TDI_REQUEST Request; - ULONG QueryType; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; -} TDI_REQUEST_QUERY_INFORMATION, *PTDI_REQUEST_QUERY_INFORMATION; - -/* TdiRequest structure for TdiSetInformation request */ -typedef struct _TDI_REQUEST_SET_INFORMATION { - TDI_REQUEST Request; - ULONG SetType; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; -} TDI_REQUEST_SET_INFORMATION, *PTDI_REQUEST_SET_INFORMATION; - -typedef TDI_REQUEST_SET_INFORMATION TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION; - -typedef union _TDI_REQUEST_TYPE { - TDI_REQUEST_ACCEPT TdiAccept; - TDI_REQUEST_CONNECT TdiConnect; - TDI_REQUEST_DISCONNECT TdiDisconnect; - TDI_REQUEST_LISTEN TdiListen; - TDI_REQUEST_QUERY_INFORMATION TdiQueryInformation; - TDI_REQUEST_RECEIVE TdiReceive; - TDI_REQUEST_RECEIVE_DATAGRAM TdiReceiveDatagram; - TDI_REQUEST_SEND TdiSend; - TDI_REQUEST_SEND_DATAGRAM TdiSendDatagram; - TDI_REQUEST_SET_EVENT_HANDLER TdiSetEventHandler; - TDI_REQUEST_SET_INFORMATION TdiSetInformation; -} TDI_REQUEST_TYPE, *PTDI_REQUEST_TYPE; - - -/* Query information types */ - -/* Generic query info types that must be supported by all transports */ -#define TDI_QUERY_BROADCAST_ADDRESS 0x00000001 -#define TDI_QUERY_PROVIDER_INFO 0x00000002 -#define TDI_QUERY_ADDRESS_INFO 0x00000003 -#define TDI_QUERY_CONNECTION_INFO 0x00000004 -#define TDI_QUERY_PROVIDER_STATISTICS 0x00000005 -#define TDI_QUERY_DATAGRAM_INFO 0x00000006 -#define TDI_QUERY_DATA_LINK_ADDRESS 0x00000007 -#define TDI_QUERY_NETWORK_ADDRESS 0x00000008 -#define TDI_QUERY_MAX_DATAGRAM_INFO 0x00000009 - -/* Netbios specific query information types */ -#define TDI_QUERY_ADAPTER_STATUS 0x00000100 -#define TDI_QUERY_SESSION_STATUS 0x00000200 -#define TDI_QUERY_FIND_NAME 0x00000300 - -typedef struct _TA_APPLETALK_ADDR { - LONG TAAddressCount; - struct _AddrAtalk { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_APPLETALK Address[1]; - } Address[1]; -} TA_APPLETALK_ADDRESS, *PTA_APPLETALK_ADDRESS; - -typedef struct _TA_ADDRESS_IP { - LONG TAAddressCount; - struct _AddrIp { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_IP Address[1]; - } Address[1]; -} TA_IP_ADDRESS, *PTA_IP_ADDRESS; - -typedef struct _TA_ADDRESS_IPX { - LONG TAAddressCount; - struct _AddrIpx { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_IPX Address[1]; - } Address[1]; -} TA_IPX_ADDRESS, *PTA_IPX_ADDRESS; - -typedef struct _TA_NETBIOS_ADDRESS { - LONG TAAddressCount; - struct _Addr{ - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_NETBIOS Address[1]; - } Address[1]; -} TA_NETBIOS_ADDRESS, *PTA_NETBIOS_ADDRESS; - -typedef struct _TA_ADDRESS_NS { - LONG TAAddressCount; - struct _AddrNs { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_NS Address[1]; - } Address[1]; -} TA_NS_ADDRESS, *PTA_NS_ADDRESS; - -typedef struct _TA_ADDRESS_VNS { - LONG TAAddressCount; - struct _AddrVns { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_VNS Address[1]; - } Address[1]; -} TA_VNS_ADDRESS, *PTA_VNS_ADDRESS; - -typedef struct _TA_ADDRESS_IP6 { - LONG TAAddressCount; - struct _AddrIp6 { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_IP6 Address[1]; - } Address [1]; -} TA_IP6_ADDRESS, *PTA_IP6_ADDRESS; - -typedef struct _TA_ADDRESS_NETBIOS_UNICODE_EX { - LONG TAAddressCount; - struct _AddrNetbiosWCharEx { - USHORT AddressLength; - USHORT AddressType; - TDI_ADDRESS_NETBIOS_UNICODE_EX Address[1]; - } Address [1]; -} TA_NETBIOS_UNICODE_EX_ADDRESS, *PTA_NETBIOS_UNICODE_EX_ADDRESS; - - -/* Structures used for TdiQueryInformation and TdiSetInformation */ - -typedef struct _TDI_ENDPOINT_INFO { - ULONG State; - ULONG Event; - ULONG TransmittedTsdus; - ULONG ReceivedTsdus; - ULONG TransmissionErrors; - ULONG ReceiveErrors; - ULONG MinimumLookaheadData; - ULONG MaximumLookaheadData; - ULONG PriorityLevel; - ULONG SecurityLevel; - ULONG SecurityCompartment; -} TDI_ENDPOINT_INFO, *PTDI_ENDPOINT_INFO; - -typedef struct _TDI_CONNECTION_INFO { - ULONG State; - ULONG Event; - ULONG TransmittedTsdus; - ULONG ReceivedTsdus; - ULONG TransmissionErrors; - ULONG ReceiveErrors; - LARGE_INTEGER Throughput; - LARGE_INTEGER Delay; - ULONG SendBufferSize; - ULONG ReceiveBufferSize; - BOOLEAN Unreliable; -} TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO; - -typedef struct _TDI_DATAGRAM_INFO { - ULONG MaximumDatagramBytes; - ULONG MaximumDatagramCount; -} TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO; - -typedef struct _TDI_MAX_DATAGRAM_INFO { - ULONG MaxDatagramSize; -} TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO; - -typedef struct _TDI_PROVIDER_INFO { - ULONG Version; - ULONG MaxSendSize; - ULONG MaxConnectionUserData; - ULONG MaxDatagramSize; - ULONG ServiceFlags; - ULONG MinimumLookaheadData; - ULONG MaximumLookaheadData; - ULONG NumberOfResources; - LARGE_INTEGER StartTime; -} TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO; - -#define TDI_SERVICE_CONNECTION_MODE 0x00000001 -#define TDI_SERVICE_ORDERLY_RELEASE 0x00000002 -#define TDI_SERVICE_CONNECTIONLESS_MODE 0x00000004 -#define TDI_SERVICE_ERROR_FREE_DELIVERY 0x00000008 -#define TDI_SERVICE_SECURITY_LEVEL 0x00000010 -#define TDI_SERVICE_BROADCAST_SUPPORTED 0x00000020 -#define TDI_SERVICE_MULTICAST_SUPPORTED 0x00000040 -#define TDI_SERVICE_DELAYED_ACCEPTANCE 0x00000080 -#define TDI_SERVICE_EXPEDITED_DATA 0x00000100 -#define TDI_SERVICE_INTERNAL_BUFFERING 0x00000200 -#define TDI_SERVICE_ROUTE_DIRECTED 0x00000400 -#define TDI_SERVICE_NO_ZERO_LENGTH 0x00000800 -#define TDI_SERVICE_POINT_TO_POINT 0x00001000 -#define TDI_SERVICE_MESSAGE_MODE 0x00002000 -#define TDI_SERVICE_HALF_DUPLEX 0x00004000 -#define TDI_SERVICE_DGRAM_CONNECTION 0x00008000 -#define TDI_SERVICE_FORCE_ACCESS_CHECK 0x00010000 -#define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000 -#define TDI_SERVICE_DIRECT_ACCEPT 0x00040000 -#define TDI_SERVICE_ACCEPT_LOCAL_ADDR 0x00080000 - -typedef struct _TDI_PROVIDER_RESOURCE_STATS { - ULONG ResourceId; - ULONG MaximumResourceUsed; - ULONG AverageResourceUsed; - ULONG ResourceExhausted; -} TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS; - -typedef struct _TDI_PROVIDER_STATISTICS { - ULONG Version; - ULONG OpenConnections; - ULONG ConnectionsAfterNoRetry; - ULONG ConnectionsAfterRetry; - ULONG LocalDisconnects; - ULONG RemoteDisconnects; - ULONG LinkFailures; - ULONG AdapterFailures; - ULONG SessionTimeouts; - ULONG CancelledConnections; - ULONG RemoteResourceFailures; - ULONG LocalResourceFailures; - ULONG NotFoundFailures; - ULONG NoListenFailures; - ULONG DatagramsSent; - LARGE_INTEGER DatagramBytesSent; - ULONG DatagramsReceived; - LARGE_INTEGER DatagramBytesReceived; - ULONG PacketsSent; - ULONG PacketsReceived; - ULONG DataFramesSent; - LARGE_INTEGER DataFrameBytesSent; - ULONG DataFramesReceived; - LARGE_INTEGER DataFrameBytesReceived; - ULONG DataFramesResent; - LARGE_INTEGER DataFrameBytesResent; - ULONG DataFramesRejected; - LARGE_INTEGER DataFrameBytesRejected; - ULONG ResponseTimerExpirations; - ULONG AckTimerExpirations; - ULONG MaximumSendWindow; - ULONG AverageSendWindow; - ULONG PiggybackAckQueued; - ULONG PiggybackAckTimeouts; - LARGE_INTEGER WastedPacketSpace; - ULONG WastedSpacePackets; - ULONG NumberOfResources; - TDI_PROVIDER_RESOURCE_STATS ResourceStats[1]; -} TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS; - -#define TDI_EVENT_CONNECT 0 -#define TDI_EVENT_DISCONNECT 1 -#define TDI_EVENT_ERROR 2 -#define TDI_EVENT_RECEIVE 3 -#define TDI_EVENT_RECEIVE_DATAGRAM 4 -#define TDI_EVENT_RECEIVE_EXPEDITED 5 -#define TDI_EVENT_SEND_POSSIBLE 6 - -typedef struct _TDI_REQUEST_ASSOCIATE { - TDI_REQUEST Request; - HANDLE AddressHandle; -} TDI_REQUEST_ASSOCIATE_ADDRESS, *PTDI_REQUEST_ASSOCIATE_ADDRESS; - -#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN' -#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN' -#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN' -#define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN' -#define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN' -#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN' - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* __TDI_H */ diff --git a/reactos/include/net/tdiinfo.h b/reactos/include/net/tdiinfo.h deleted file mode 100644 index c9e4ac040ba..00000000000 --- a/reactos/include/net/tdiinfo.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * tdiinfo.h - * - * TDI set and query information interface - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __TDIINFO_H -#define __TDIINFO_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -#include "ntddk.h" - -#ifndef TDI_SUCCESS -#define TDI_SUCCESS 0 -#endif/*TDI_SUCCESS*/ - -typedef struct TDIEntityID { - ULONG tei_entity; - ULONG tei_instance; -} TDIEntityID; - -#define MAX_TDI_ENTITIES 512 -#define INVALID_ENTITY_INSTANCE -1 -#define GENERIC_ENTITY 0 -#define ENTITY_LIST_ID 0 -#define ENTITY_TYPE_ID 1 - -#define AT_ENTITY 0x280 -#define CL_NL_ENTITY 0x301 -#define CL_TL_ENTITY 0x401 -#define CO_NL_ENTITY 0x300 -#define CO_TL_ENTITY 0x400 -#define ER_ENTITY 0x380 -#define IF_ENTITY 0x200 - -#define AT_ARP 0x280 -#define AT_NULL 0x282 -#define CL_TL_NBF 0x401 -#define CL_TL_UDP 0x403 -#define CL_NL_IPX 0x301 -#define CL_NL_IP 0x303 -#define CO_TL_NBF 0x400 -#define CO_TL_SPX 0x402 -#define CO_TL_TCP 0x404 -#define CO_TL_SPP 0x406 -#define ER_ICMP 0x380 -#define IF_GENERIC 0x200 -#define IF_MIB 0x202 - -/* ID to use for requesting an IFEntry for an interface */ -#define IF_MIB_STATS_ID 1 - -/* ID to use for requesting an IPSNMPInfo for an interface */ -#define IP_MIB_STATS_ID 1 /* Hmm. I'm not sure I like this */ - -/* ID to use for requesting the route table */ -#define IP_MIB_ROUTETABLE_ENTRY_ID 0x101 -#define IP_MIB_ADDRTABLE_ENTRY_ID 102 - -/* TDIObjectID.toi_class constants */ -#define INFO_CLASS_GENERIC 0x100 -#define INFO_CLASS_PROTOCOL 0x200 -#define INFO_CLASS_IMPLEMENTATION 0x300 - -/* TDIObjectID.toi_type constants */ -#define INFO_TYPE_PROVIDER 0x100 -#define INFO_TYPE_ADDRESS_OBJECT 0x200 -#define INFO_TYPE_CONNECTION 0x300 - -typedef struct _TDIObjectID { - TDIEntityID toi_entity; - ULONG toi_class; - ULONG toi_type; - ULONG toi_id; -} TDIObjectID; - -#define MAX_PHYSADDR_SIZE 010 - -/* Basic interface information like from SIOCGIF* */ -/* 0x5c bytes without description tail */ -typedef struct _IFEntry { - ULONG if_index; - ULONG if_type; - ULONG if_mtu; - ULONG if_speed; - ULONG if_physaddrlen; - UCHAR if_physaddr[MAX_PHYSADDR_SIZE]; - ULONG if_adminstatus; - ULONG if_operstatus; - ULONG if_lastchange; - ULONG if_inoctets; - ULONG if_inucastpkts; - ULONG if_innucastpkts; - ULONG if_indiscards; - ULONG if_inerrors; - ULONG if_inunknownprotos; - ULONG if_outoctets; - ULONG if_outucastpkts; - ULONG if_outnucastpkts; - ULONG if_outdiscards; - ULONG if_outerrors; - ULONG if_outqlen; - ULONG if_descrlen; - UCHAR if_descr[1]; -} IFEntry; - -/* Control information like from /proc/sys/net/ipv4/... */ -/* 0x58 bytes */ -#if 1 -typedef struct _IPSNMPInfo { - ULONG ipsi_index; - ULONG ipsi_forwarding; - ULONG ipsi_defaultttl; - ULONG ipsi_inreceives; - ULONG ipsi_inhdrerrors; - ULONG ipsi_inaddrerrors; - ULONG ipsi_inunknownprotos; - ULONG ipsi_indiscards; - ULONG ipsi_indelivers; - ULONG ipsi_outrequests; - ULONG ipsi_routingdiscards; - ULONG ipsi_outdiscards; - ULONG ipsi_outnoroutes; - ULONG ipsi_reasmtimeout; - ULONG ipsi_reasmreqds; - ULONG ipsi_reasmoks; - ULONG ipsi_reasmfails; - ULONG ipsi_fragoks; - ULONG ipsi_fragfails; - ULONG ipsi_fragcreates; - ULONG ipsi_numif; - ULONG ipsi_numaddr; - ULONG ipsi_numroutes; -} IPSNMPInfo; -#else -typedef struct _IPSNMPInfo { - ULONG ipsi_forwarding; - ULONG ipsi_defaultttl; - ULONG ipsi_inreceives; - ULONG ipsi_inhdrerrors; - ULONG ipsi_inaddrerrors; - ULONG ipsi_inunknownprotos; - ULONG ipsi_indiscards; - ULONG ipsi_indelivers; - ULONG ipsi_outrequests; - ULONG ipsi_routingdiscards; - ULONG ipsi_outdiscards; - ULONG ipsi_outnoroutes; - ULONG ipsi_reasmtimeout; - ULONG ipsi_reasmreqds; - ULONG ipsi_reasmoks; - ULONG ipsi_reasmfails; - ULONG ipsi_fragoks; - ULONG ipsi_fragfails; - ULONG ipsi_fragcreates; - ULONG ipsi_numif; - ULONG ipsi_numaddr; - ULONG ipsi_numroutes; -} IPSNMPInfo; -#endif - -// BEGIN ORIGINAL SOURCE INFORMATION -- -// Gets ip info for the current interface list. - -// Tom Sanfilippo -// tsanfilippo@earthlink.net -// December 12, 1999 - -// Thanks are due to Thomas F. Divine -// for pointing out the updated wshsmple in the NT4DDK. -// The headers in that sample allowed the input parameters -// to finally be discovered. -// END ORIGINAL SOURCE INFORMATION -- - -typedef struct _IPRouteEntry { - ULONG ire_dest; - ULONG ire_index; //matches if_index in IFEntry and iae_index in IPAddrEntry - ULONG ire_metric; - ULONG ire_unk1; //?? - ULONG ire_unk2; //?? - ULONG ire_unk3; //?? - ULONG ire_gw; - ULONG ire_unk4; //?? - ULONG ire_unk5; //?? - ULONG ire_unk6; //?? - ULONG ire_mask; - ULONG ire_unk7; //?? - ULONG ire_unk8; //?? -} IPRouteEntry; - -typedef struct _IPAddrEntry { - ULONG iae_addr; - ULONG iae_index; - ULONG iae_mask; - ULONG iae_bcastaddr; - ULONG iae_reasmsize; - ULONG iae_context; - ULONG iae_pad; -} IPAddrEntry; - -#define CONTEXT_SIZE 16 -#define MAX_ADAPTER_DESCRIPTION_LENGTH 64 /* guess */ - -typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX { - TDIObjectID ID; - UCHAR Context[CONTEXT_SIZE]; -} TCP_REQUEST_QUERY_INFORMATION_EX, *PTCP_REQUEST_QUERY_INFORMATION_EX; - -#if defined(_WIN64) -typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX32 { - TDIObjectID ID; - ULONG32 Context[CONTEXT_SIZE / sizeof(ULONG32)]; -} TCP_REQUEST_QUERY_INFORMATION_EX32, *PTCP_REQUEST_QUERY_INFORMATION_EX32; -#endif /* _WIN64 */ - -typedef struct _TCP_REQUEST_SET_INFORMATION_EX { - TDIObjectID ID; - UINT BufferSize; - UCHAR Buffer[1]; -} TCP_REQUEST_SET_INFORMATION_EX, *PTCP_REQUEST_SET_INFORMATION_EX; - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* __TDIINFO_H */ diff --git a/reactos/include/net/tdikrnl.h b/reactos/include/net/tdikrnl.h deleted file mode 100644 index 2d2c52ace71..00000000000 --- a/reactos/include/net/tdikrnl.h +++ /dev/null @@ -1,1173 +0,0 @@ -/* - * tdikrnl.h - * - * TDI kernel mode definitions - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __TDIKRNL_H -#define __TDIKRNL_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -#include "ntddk.h" -#include "tdi.h" - -#ifndef STDCALL -#define STDCALL -#endif -#define DDKAPI STDCALL - -#if defined(_TDI_) -// #define TDIKRNLAPI DECLSPEC_EXPORT - #define TDIKRNLAPI -#else -// #define TDIKRNLAPI DECLSPEC_IMPORT - #define TDIKRNLAPI -#endif - - -typedef struct _TDI_REQUEST_KERNEL { - ULONG RequestFlags; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; - PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; - PVOID RequestSpecific; -} TDI_REQUEST_KERNEL, *PTDI_REQUEST_KERNEL; - -/* Request codes */ -#define TDI_ASSOCIATE_ADDRESS 0x01 -#define TDI_DISASSOCIATE_ADDRESS 0x02 -#define TDI_CONNECT 0x03 -#define TDI_LISTEN 0x04 -#define TDI_ACCEPT 0x05 -#define TDI_DISCONNECT 0x06 -#define TDI_SEND 0x07 -#define TDI_RECEIVE 0x08 -#define TDI_SEND_DATAGRAM 0x09 -#define TDI_RECEIVE_DATAGRAM 0x0A -#define TDI_SET_EVENT_HANDLER 0x0B -#define TDI_QUERY_INFORMATION 0x0C -#define TDI_SET_INFORMATION 0x0D -#define TDI_ACTION 0x0E - -#define TDI_DIRECT_SEND 0x27 -#define TDI_DIRECT_SEND_DATAGRAM 0x29 - -#define TDI_TRANSPORT_ADDRESS_FILE 1 -#define TDI_CONNECTION_FILE 2 -#define TDI_CONTROL_CHANNEL_FILE 3 - -/* Internal TDI IOCTLS */ -#define IOCTL_TDI_QUERY_DIRECT_SEND_HANDLER _TDI_CONTROL_CODE(0x80, METHOD_NEITHER) -#define IOCTL_TDI_QUERY_DIRECT_SENDDG_HANDLER _TDI_CONTROL_CODE(0x81, METHOD_NEITHER) - -/* TdiAssociateAddress */ -typedef struct _TDI_REQUEST_KERNEL_ASSOCIATE { - HANDLE AddressHandle; -} TDI_REQUEST_KERNEL_ASSOCIATE, *PTDI_REQUEST_KERNEL_ASSOCIATE; - -/* TdiDisassociateAddress */ -typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISASSOCIATE, - *PTDI_REQUEST_KERNEL_DISASSOCIATE; - -/* TdiAccept */ -typedef struct _TDI_REQUEST_KERNEL_ACCEPT { - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; - PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; -} TDI_REQUEST_KERNEL_ACCEPT, *PTDI_REQUEST_KERNEL_ACCEPT; - -/* TdiConnect */ -typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_CONNECT, - *PTDI_REQUEST_KERNEL_CONNECT; - -/* TdiDisconnect */ -typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISCONNECT, - *PTDI_REQUEST_KERNEL_DISCONNECT; - -/* TdiListen */ -typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_LISTEN, - *PTDI_REQUEST_KERNEL_LISTEN; - -/* TdiReceive */ -typedef struct _TDI_REQUEST_KERNEL_RECEIVE { - ULONG ReceiveLength; - ULONG ReceiveFlags; -} TDI_REQUEST_KERNEL_RECEIVE, *PTDI_REQUEST_KERNEL_RECEIVE; - -/* TdiReceiveDatagram */ -typedef struct _TDI_REQUEST_KERNEL_RECEIVEDG { - ULONG ReceiveLength; - PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation; - PTDI_CONNECTION_INFORMATION ReturnDatagramInformation; - ULONG ReceiveFlags; -} TDI_REQUEST_KERNEL_RECEIVEDG, *PTDI_REQUEST_KERNEL_RECEIVEDG; - -/* TdiSend */ -typedef struct _TDI_REQUEST_KERNEL_SEND { - ULONG SendLength; - ULONG SendFlags; -} TDI_REQUEST_KERNEL_SEND, *PTDI_REQUEST_KERNEL_SEND; - -/* TdiSendDatagram */ -typedef struct _TDI_REQUEST_KERNEL_SENDDG { - ULONG SendLength; - PTDI_CONNECTION_INFORMATION SendDatagramInformation; -} TDI_REQUEST_KERNEL_SENDDG, *PTDI_REQUEST_KERNEL_SENDDG; - -/* TdiSetEventHandler */ -typedef struct _TDI_REQUEST_KERNEL_SET_EVENT { - LONG EventType; - PVOID EventHandler; - PVOID EventContext; -} TDI_REQUEST_KERNEL_SET_EVENT, *PTDI_REQUEST_KERNEL_SET_EVENT; - -/* TdiQueryInformation */ -typedef struct _TDI_REQUEST_KERNEL_QUERY_INFO { - LONG QueryType; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; -} TDI_REQUEST_KERNEL_QUERY_INFORMATION, *PTDI_REQUEST_KERNEL_QUERY_INFORMATION; - -/* TdiSetInformation */ -typedef struct _TDI_REQUEST_KERNEL_SET_INFO { - LONG SetType; - PTDI_CONNECTION_INFORMATION RequestConnectionInformation; -} TDI_REQUEST_KERNEL_SET_INFORMATION, *PTDI_REQUEST_KERNEL_SET_INFORMATION; - - -/* Event types */ -#define TDI_EVENT_CONNECT 0 -#define TDI_EVENT_DISCONNECT 1 -#define TDI_EVENT_ERROR 2 -#define TDI_EVENT_RECEIVE 3 -#define TDI_EVENT_RECEIVE_DATAGRAM 4 -#define TDI_EVENT_RECEIVE_EXPEDITED 5 -#define TDI_EVENT_SEND_POSSIBLE 6 -#define TDI_EVENT_CHAINED_RECEIVE 7 -#define TDI_EVENT_CHAINED_RECEIVE_DATAGRAM 8 -#define TDI_EVENT_CHAINED_RECEIVE_EXPEDITED 9 -#define TDI_EVENT_ERROR_EX 10 - -typedef NTSTATUS -(*PTDI_IND_CONNECT)( - IN PVOID TdiEventContext, - IN LONG RemoteAddressLength, - IN PVOID RemoteAddress, - IN LONG UserDataLength, - IN PVOID UserData, - IN LONG OptionsLength, - IN PVOID Options, - OUT CONNECTION_CONTEXT *ConnectionContext, - OUT PIRP *AcceptIrp); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultConnectHandler( - IN PVOID TdiEventContext, - IN LONG RemoteAddressLength, - IN PVOID RemoteAddress, - IN LONG UserDataLength, - IN PVOID UserData, - IN LONG OptionsLength, - IN PVOID Options, - OUT CONNECTION_CONTEXT *ConnectionContext, - OUT PIRP *AcceptIrp); - -typedef NTSTATUS -(*PTDI_IND_DISCONNECT)( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN LONG DisconnectDataLength, - IN PVOID DisconnectData, - IN LONG DisconnectInformationLength, - IN PVOID DisconnectInformation, - IN ULONG DisconnectFlags); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultDisconnectHandler( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN LONG DisconnectDataLength, - IN PVOID DisconnectData, - IN LONG DisconnectInformationLength, - IN PVOID DisconnectInformation, - IN ULONG DisconnectFlags); - -typedef NTSTATUS -(*PTDI_IND_ERROR)( - IN PVOID TdiEventContext, - IN NTSTATUS Status); - -typedef NTSTATUS DDKAPI -(*PTDI_IND_ERROR_EX)( - IN PVOID TdiEventContext, - IN NTSTATUS Status, - IN PVOID Buffer); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultErrorHandler( - IN PVOID TdiEventContext, - IN NTSTATUS Status); - -typedef NTSTATUS -(*PTDI_IND_RECEIVE)( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG BytesIndicated, - IN ULONG BytesAvailable, - OUT ULONG *BytesTaken, - IN PVOID Tsdu, - OUT PIRP *IoRequestPacket); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultReceiveHandler( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG BytesIndicated, - IN ULONG BytesAvailable, - OUT ULONG *BytesTaken, - IN PVOID Tsdu, - OUT PIRP *IoRequestPacket); - -typedef NTSTATUS -(*PTDI_IND_RECEIVE_DATAGRAM)( - IN PVOID TdiEventContext, - IN LONG SourceAddressLength, - IN PVOID SourceAddress, - IN LONG OptionsLength, - IN PVOID Options, - IN ULONG ReceiveDatagramFlags, - IN ULONG BytesIndicated, - IN ULONG BytesAvailable, - OUT ULONG *BytesTaken, - IN PVOID Tsdu, - OUT PIRP *IoRequestPacket); - -TDIKRNLAPI -NTSTATUS DDKAPI -TdiDefaultRcvDatagramHandler( - IN PVOID TdiEventContext, - IN LONG SourceAddressLength, - IN PVOID SourceAddress, - IN LONG OptionsLength, - IN PVOID Options, - IN ULONG ReceiveDatagramFlags, - IN ULONG BytesIndicated, - IN ULONG BytesAvailable, - OUT ULONG *BytesTaken, - IN PVOID Tsdu, - OUT PIRP *IoRequestPacket); - -typedef NTSTATUS -(*PTDI_IND_RECEIVE_EXPEDITED)( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG BytesIndicated, - IN ULONG BytesAvailable, - OUT ULONG *BytesTaken, - IN PVOID Tsdu, - OUT PIRP *IoRequestPacket); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultRcvExpeditedHandler( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG BytesIndicated, - IN ULONG BytesAvailable, - OUT ULONG *BytesTaken, - IN PVOID Tsdu, - OUT PIRP *IoRequestPacket); - -typedef NTSTATUS -(*PTDI_IND_CHAINED_RECEIVE)( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG ReceiveLength, - IN ULONG StartingOffset, - IN PMDL Tsdu, - IN PVOID TsduDescriptor); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultChainedReceiveHandler( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG ReceiveLength, - IN ULONG StartingOffset, - IN PMDL Tsdu, - IN PVOID TsduDescriptor); - -typedef NTSTATUS -(*PTDI_IND_CHAINED_RECEIVE_DATAGRAM)( - IN PVOID TdiEventContext, - IN LONG SourceAddressLength, - IN PVOID SourceAddress, - IN LONG OptionsLength, - IN PVOID Options, - IN ULONG ReceiveDatagramFlags, - IN ULONG ReceiveDatagramLength, - IN ULONG StartingOffset, - IN PMDL Tsdu, - IN PVOID TsduDescriptor); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultChainedRcvDatagramHandler( - IN PVOID TdiEventContext, - IN LONG SourceAddressLength, - IN PVOID SourceAddress, - IN LONG OptionsLength, - IN PVOID Options, - IN ULONG ReceiveDatagramFlags, - IN ULONG ReceiveDatagramLength, - IN ULONG StartingOffset, - IN PMDL Tsdu, - IN PVOID TsduDescriptor); - -typedef NTSTATUS -(*PTDI_IND_CHAINED_RECEIVE_EXPEDITED)( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG ReceiveLength, - IN ULONG StartingOffset, - IN PMDL Tsdu, - IN PVOID TsduDescriptor); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultChainedRcvExpeditedHandler( - IN PVOID TdiEventContext, - IN CONNECTION_CONTEXT ConnectionContext, - IN ULONG ReceiveFlags, - IN ULONG ReceiveLength, - IN ULONG StartingOffset, - IN PMDL Tsdu, - IN PVOID TsduDescriptor); - -typedef NTSTATUS -(*PTDI_IND_SEND_POSSIBLE)( - IN PVOID TdiEventContext, - IN PVOID ConnectionContext, - IN ULONG BytesAvailable); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDefaultSendPossibleHandler( - IN PVOID TdiEventContext, - IN PVOID ConnectionContext, - IN ULONG BytesAvailable); - - - -/* Macros and functions to build IRPs */ - -#define TdiBuildBaseIrp( \ - bIrp, bDevObj, bFileObj, bCompRoutine, bContxt, bIrpSp, bMinor) \ -{ \ - bIrpSp->MajorFunction = IRP_MJ_INTERNAL_DEVICE_CONTROL; \ - bIrpSp->MinorFunction = (bMinor); \ - bIrpSp->DeviceObject = (bDevObj); \ - bIrpSp->FileObject = (bFileObj); \ - if (bCompRoutine) \ - IoSetCompletionRoutine(bIrp, bCompRoutine, bContxt, TRUE, TRUE, TRUE) \ - else \ - IoSetCompletionRoutine(bIrp, NULL, NULL, FALSE, FALSE, FALSE); \ -} - -/* - * VOID - * TdiBuildAccept( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PTDI_CONNECTION_INFORMATION RequestConnectionInfo, - * OUT PTDI_CONNECTION_INFORMATION ReturnConnectionInfo); - */ -#define TdiBuildAccept( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - RequestConnectionInfo, ReturnConnectionInfo) \ - { \ - PTDI_REQUEST_KERNEL_ACCEPT _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_ACCEPT); \ - \ - _Request = (PTDI_REQUEST_KERNEL_ACCEPT)&_IrpSp->Parameters; \ - _Request->RequestConnectionInformation = (RequestConnectionInfo); \ - _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ -} - -/* - * VOID - * TdiBuildAction( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PMDL MdlAddr); - */ -#define TdiBuildAction( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr) \ -{ \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_ACTION); \ - \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* - * VOID - * TdiBuildAssociateAddress( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN HANDLE AddrHandle); - */ -#define TdiBuildAssociateAddress( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, AddrHandle) \ -{ \ - PTDI_REQUEST_KERNEL_ASSOCIATE _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_ASSOCIATE_ADDRESS); \ - \ - _Request = (PTDI_REQUEST_KERNEL_ASSOCIATE)&_IrpSp->Parameters; \ - _Request->AddressHandle = (HANDLE)(AddrHandle); \ -} - -/* - * VOID - * TdiBuildConnect( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PLARGE_INTEGER Time, - * IN PTDI_CONNECTION_INFORMATION RequestConnectionInfo, - * OUT PTDI_CONNECTION_INFORMATION ReturnConnectionInfo); - */ -#define TdiBuildConnect( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - Time, RequestConnectionInfo, ReturnConnectionInfo) \ -{ \ - PTDI_REQUEST_KERNEL _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_CONNECT); \ - \ - _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters; \ - _Request->RequestConnectionInformation = (RequestConnectionInfo); \ - _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ - _Request->RequestSpecific = (PVOID)(Time); \ -} - -/* - * VOID - * TdiBuildDisassociateAddress( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt); - */ -#define TdiBuildDisassociateAddress( \ - Irp, DevObj, FileObj, CompRoutine, Contxt) \ -{ \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_DISASSOCIATE_ADDRESS); \ -} - -/* - * VOID - * TdiBuildDisconnect( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PLARGE_INTEGER Time, - * IN PULONG Flags, - * IN PTDI_CONNECTION_INFORMATION RequestConnectionInfo, - * OUT PTDI_CONNECTION_INFORMATION ReturnConnectionInfo); - */ -#define TdiBuildDisconnect( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, Time, \ - Flags, RequestConnectionInfo, ReturnConnectionInfo) \ -{ \ - PTDI_REQUEST_KERNEL _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_DISCONNECT); \ - \ - _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters; \ - _Request->RequestConnectionInformation = (RequestConnectionInfo); \ - _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ - _Request->RequestSpecific = (PVOID)(Time); \ - _Request->RequestFlags = (Flags); \ -} - -/* - * PIRP - * TdiBuildInternalDeviceControlIrp( - * IN CCHAR IrpSubFunction, - * IN PDEVICE_OBJECT DeviceObject, - * IN PFILE_OBJECT FileObject, - * IN PKEVENT Event, - * IN PIO_STATUS_BLOCK IoStatusBlock); - */ -#define TdiBuildInternalDeviceControlIrp( \ - IrpSubFunction, DeviceObject, \ - FileObject, Event, IoStatusBlock) \ - IoBuildDeviceIoControlRequest( \ - 0x00000003, DeviceObject, \ - NULL, 0, NULL, 0, \ - TRUE, Event, IoStatusBlock) - -/* - * VOID - * TdiBuildListen( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN ULONG Flags, - * IN PTDI_CONNECTION_INFORMATION RequestConnectionInfo, - * OUT PTDI_CONNECTION_INFORMATION ReturnConnectionInfo); - */ -#define TdiBuildListen( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - Flags, RequestConnectionInfo, ReturnConnectionInfo) \ -{ \ - PTDI_REQUEST_KERNEL _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_LISTEN); \ - \ - _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters; \ - _Request->RequestConnectionInformation = (RequestConnectionInfo); \ - _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ - _Request->RequestFlags = (Flags); \ -} - -TDIKRNLAPI -VOID -DDKAPI -TdiBuildNetbiosAddress( - IN PUCHAR NetbiosName, - IN BOOLEAN IsGroupName, - IN OUT PTA_NETBIOS_ADDRESS NetworkName); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiBuildNetbiosAddressEa( - IN PUCHAR Buffer, - IN BOOLEAN IsGroupName, - IN PUCHAR NetbiosName); - -/* - * VOID - * TdiBuildQueryInformation( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN UINT QType, - * IN PMDL MdlAddr); - */ -#define TdiBuildQueryInformation( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, QType, MdlAddr) \ -{ \ - PTDI_REQUEST_KERNEL_QUERY_INFORMATION _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_QUERY_INFORMATION); \ - \ - _Request = (PTDI_REQUEST_KERNEL_QUERY_INFORMATION)&_IrpSp->Parameters; \ - _Request->RequestConnectionInformation = NULL; \ - _Request->QueryType = (ULONG)(QType); \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* - * VOID - * TdiBuildReceive( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PMDL MdlAddr, - * IN ULONG InFlags, - * IN ULONG ReceiveLen); - */ -#define TdiBuildReceive( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - MdlAddr, InFlags, ReceiveLen) \ -{ \ - PTDI_REQUEST_KERNEL_RECEIVE _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_RECEIVE); \ - \ - _Request = (PTDI_REQUEST_KERNEL_RECEIVE)&_IrpSp->Parameters; \ - _Request->ReceiveFlags = (InFlags); \ - _Request->ReceiveLength = (ReceiveLen); \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* - * VOID - * TdiBuildReceiveDatagram( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PMDL MdlAddr, - * IN ULONG ReceiveLen, - * IN PTDI_CONNECTION_INFORMATION ReceiveDatagramInfo, - * OUT PTDI_CONNECTION_INFORMATION ReturnInfo, - * ULONG InFlags); - */ -#define TdiBuildReceiveDatagram( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, \ - ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags) \ -{ \ - PTDI_REQUEST_KERNEL_RECEIVEDG _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_RECEIVE_DATAGRAM); \ - \ - _Request = (PTDI_REQUEST_KERNEL_RECEIVEDG)&_IrpSp->Parameters; \ - _Request->ReceiveDatagramInformation = (ReceiveDatagramInfo); \ - _Request->ReturnDatagramInformation = (ReturnInfo); \ - _Request->ReceiveLength = (ReceiveLen); \ - _Request->ReceiveFlags = (InFlags); \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* - * VOID - * TdiBuildSend( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PMDL MdlAddr, - * IN ULONG InFlags, - * IN ULONG SendLen); - */ -#define TdiBuildSend( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - MdlAddr, InFlags, SendLen) \ -{ \ - PTDI_REQUEST_KERNEL_SEND _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_SEND); \ - \ - _Request = (PTDI_REQUEST_KERNEL_SEND)&_IrpSp->Parameters; \ - _Request->SendFlags = (InFlags); \ - _Request->SendLength = (SendLen); \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* - * VOID - * TdiBuildSendDatagram( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN PMDL MdlAddr, - * IN ULONG SendLen, - * IN PTDI_CONNECTION_INFORMATION SendDatagramInfo); - */ -#define TdiBuildSendDatagram( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - MdlAddr, SendLen, SendDatagramInfo) \ -{ \ - PTDI_REQUEST_KERNEL_SENDDG _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_SEND_DATAGRAM); \ - \ - _Request = (PTDI_REQUEST_KERNEL_SENDDG)&_IrpSp->Parameters; \ - _Request->SendDatagramInformation = (SendDatagramInfo); \ - _Request->SendLength = (SendLen); \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* - * VOID - * TdiBuildSetEventHandler( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN INT InEventType, - * IN PVOID InEventHandler, - * IN PVOID InEventContext); - */ -#define TdiBuildSetEventHandler( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, \ - InEventType, InEventHandler, InEventContext) \ -{ \ - PTDI_REQUEST_KERNEL_SET_EVENT _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_SET_EVENT_HANDLER); \ - \ - _Request = (PTDI_REQUEST_KERNEL_SET_EVENT)&_IrpSp->Parameters; \ - _Request->EventType = (InEventType); \ - _Request->EventHandler = (PVOID)(InEventHandler); \ - _Request->EventContext = (PVOID)(InEventContext); \ -} - -/* - * VOID - * TdiBuildSetInformation( - * IN PIRP Irp, - * IN PDEVICE_OBJECT DevObj, - * IN PFILE_OBJECT FileObj, - * IN PVOID CompRoutine, - * IN PVOID Contxt, - * IN UINT SType, - * IN PMDL MdlAddr); - */ -#define TdiBuildSetInformation( \ - Irp, DevObj, FileObj, CompRoutine, Contxt, SType, MdlAddr) \ -{ \ - PTDI_REQUEST_KERNEL_SET_INFORMATION _Request; \ - PIO_STACK_LOCATION _IrpSp; \ - \ - _IrpSp = IoGetNextIrpStackLocation(Irp); \ - \ - TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ - Contxt, _IrpSp, TDI_SET_INFORMATION); \ - \ - _Request = (PTDI_REQUEST_KERNEL_SET_INFORMATION)&_IrpSp->Parameters; \ - _Request->RequestConnectionInformation = NULL; \ - _Request->SetType = (ULONG)(SType); \ - (Irp)->MdlAddress = (MdlAddr); \ -} - -/* TDI20_CLIENT_INTERFACE_INFO.TdiVersion constants */ -#define TDI_CURRENT_MAJOR_VERSION 2 -#define TDI_CURRENT_MINOR_VERSION 0 - -#define TDI_CURRENT_VERSION ((TDI_CURRENT_MINOR_VERSION) << 8 \ - | (TDI_CURRENT_MAJOR_VERSION)) - -#define TDI_VERSION_ONE 0x0001 - -typedef enum _TDI_PNP_OPCODE { - TDI_PNP_OP_MIN, - TDI_PNP_OP_ADD, - TDI_PNP_OP_DEL, - TDI_PNP_OP_UPDATE, - TDI_PNP_OP_PROVIDERREADY, - TDI_PNP_OP_NETREADY, - TDI_PNP_OP_ADD_IGNORE_BINDING, - TDI_PNP_OP_DELETE_IGNORE_BINDING, - TDI_PNP_OP_MAX -} TDI_PNP_OPCODE; - -/* TDI_PNP_CONTEXT.ContextType */ -#define TDI_PNP_CONTEXT_TYPE_IF_NAME 0x1 -#define TDI_PNP_CONTEXT_TYPE_IF_ADDR 0x2 -#define TDI_PNP_CONTEXT_TYPE_PDO 0x3 -#define TDI_PNP_CONTEXT_TYPE_FIRST_OR_LAST_IF 0x4 - -typedef struct _TDI_PNP_CONTEXT { - USHORT ContextSize; - USHORT ContextType; - UCHAR ContextData[1]; -} TDI_PNP_CONTEXT, *PTDI_PNP_CONTEXT; - -typedef VOID DDKAPI -(*TDI_ADD_ADDRESS_HANDLER)( - IN PTA_ADDRESS Address); - -typedef VOID DDKAPI -(*TDI_ADD_ADDRESS_HANDLER_V2)( - IN PTA_ADDRESS Address, - IN PUNICODE_STRING DeviceName, - IN PTDI_PNP_CONTEXT Context); - -typedef VOID DDKAPI -(*TDI_BINDING_HANDLER)( - IN TDI_PNP_OPCODE PnPOpcode, - IN PUNICODE_STRING DeviceName, - IN PWSTR MultiSZBindList); - -typedef VOID DDKAPI -(*TDI_BIND_HANDLER)( - IN PUNICODE_STRING DeviceName); - -typedef VOID DDKAPI -(*TDI_DEL_ADDRESS_HANDLER)( - IN PTA_ADDRESS Address); - -typedef VOID DDKAPI -(*TDI_DEL_ADDRESS_HANDLER_V2)( - IN PTA_ADDRESS Address, - IN PUNICODE_STRING DeviceName, - IN PTDI_PNP_CONTEXT Context); - -typedef NTSTATUS DDKAPI -(*TDI_PNP_POWER_HANDLER)( - IN PUNICODE_STRING DeviceName, - IN PNET_PNP_EVENT PowerEvent, - IN PTDI_PNP_CONTEXT Context1, - IN PTDI_PNP_CONTEXT Context2); - -typedef VOID DDKAPI -(*TDI_UNBIND_HANDLER)( - IN PUNICODE_STRING DeviceName); - -typedef VOID DDKAPI -(*ProviderPnPPowerComplete)( - IN PNET_PNP_EVENT NetEvent, - IN NTSTATUS ProviderStatus); - -typedef struct _TDI20_CLIENT_INTERFACE_INFO { - _ANONYMOUS_UNION union { - _ANONYMOUS_STRUCT struct { - UCHAR MajorTdiVersion; - UCHAR MinorTdiVersion; - } DUMMYSTRUCTNAME; - USHORT TdiVersion; - } DUMMYUNIONNAME; - USHORT Unused; - PUNICODE_STRING ClientName; - TDI_PNP_POWER_HANDLER PnPPowerHandler; - _ANONYMOUS_UNION union { - TDI_BINDING_HANDLER BindingHandler; - _ANONYMOUS_STRUCT struct { - TDI_BIND_HANDLER BindHandler; - TDI_UNBIND_HANDLER UnBindHandler; - } DUMMYSTRUCTNAME; - }DUMMYUNIONNAME2; - _ANONYMOUS_UNION union { - _ANONYMOUS_STRUCT struct { - TDI_ADD_ADDRESS_HANDLER_V2 AddAddressHandlerV2; - TDI_DEL_ADDRESS_HANDLER_V2 DelAddressHandlerV2; - } DUMMYSTRUCTNAME; - _ANONYMOUS_STRUCT struct { - TDI_ADD_ADDRESS_HANDLER AddAddressHandler; - TDI_DEL_ADDRESS_HANDLER DelAddressHandler; - } DUMMYSTRUCTNAME2; - } DUMMYUNIONNAME3; -} TDI20_CLIENT_INTERFACE_INFO, *PTDI20_CLIENT_INTERFACE_INFO; - -typedef TDI20_CLIENT_INTERFACE_INFO TDI_CLIENT_INTERFACE_INFO; -typedef TDI_CLIENT_INTERFACE_INFO *PTDI_CLIENT_INTERFACE_INFO; - - -/* TDI functions */ - -/* - * VOID - * TdiCompleteRequest( - * IN PIRP Irp, - * IN NTSTATUS Status); - */ -#define TdiCompleteRequest(Irp, Status) \ -{ \ - (Irp)->IoStatus.Status = (Status); \ - IoCompleteRequest((Irp), IO_NETWORK_INCREMENT); \ -} - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiCopyBufferToMdl( - IN PVOID SourceBuffer, - IN ULONG SourceOffset, - IN ULONG SourceBytesToCopy, - IN PMDL DestinationMdlChain, - IN ULONG DestinationOffset, - IN PULONG BytesCopied); - -/* - * VOID - * TdiCopyLookaheadData( - * IN PVOID Destination, - * IN PVOID Source, - * IN ULONG Length, - * IN ULONG ReceiveFlags); - */ -#define TdiCopyLookaheadData(Destination, Source, Length, ReceiveFlags) \ - RtlCopyMemory(Destination, Source, Length) - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiCopyMdlChainToMdlChain ( - IN PMDL SourceMdlChain, - IN ULONG SourceOffset, - IN PMDL DestinationMdlChain, - IN ULONG DestinationOffset, - OUT PULONG BytesCopied); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiCopyMdlToBuffer( - IN PMDL SourceMdlChain, - IN ULONG SourceOffset, - IN PVOID DestinationBuffer, - IN ULONG DestinationOffset, - IN ULONG DestinationBufferSize, - OUT PULONG BytesCopied); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDeregisterAddressChangeHandler( - IN HANDLE BindingHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDeregisterDeviceObject( - IN HANDLE DevRegistrationHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDeregisterNetAddress( - IN HANDLE AddrRegistrationHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDeregisterPnPHandlers( - IN HANDLE BindingHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiDeregisterProvider( - IN HANDLE ProviderHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiEnumerateAddresses( - IN HANDLE BindingHandle); - -TDIKRNLAPI -VOID -DDKAPI -TdiInitialize( - VOID); - -TDIKRNLAPI -VOID -DDKAPI -TdiMapBuffer( - IN PMDL MdlChain); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiMapUserRequest( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp, - IN PIO_STACK_LOCATION IrpSp); - -TDIKRNLAPI -BOOLEAN -DDKAPI -TdiMatchPdoWithChainedReceiveContext( - IN PVOID TsduDescriptor, - IN PVOID PDO); - -TDIKRNLAPI -VOID -DDKAPI -TdiPnPPowerComplete( - IN HANDLE BindingHandle, - IN PNET_PNP_EVENT PowerEvent, - IN NTSTATUS Status); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiPnPPowerRequest( - IN PUNICODE_STRING DeviceName, - IN PNET_PNP_EVENT PowerEvent, - IN PTDI_PNP_CONTEXT Context1, - IN PTDI_PNP_CONTEXT Context2, - IN ProviderPnPPowerComplete ProtocolCompletionHandler); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiProviderReady( - IN HANDLE ProviderHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiRegisterAddressChangeHandler( - IN TDI_ADD_ADDRESS_HANDLER AddHandler, - IN TDI_DEL_ADDRESS_HANDLER DeleteHandler, - OUT HANDLE *BindingHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiRegisterDeviceObject( - IN PUNICODE_STRING DeviceName, - OUT HANDLE *DevRegistrationHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiRegisterNetAddress( - IN PTA_ADDRESS Address, - IN PUNICODE_STRING DeviceName, - IN PTDI_PNP_CONTEXT Context, - OUT HANDLE *AddrRegistrationHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiRegisterNotificationHandler( - IN TDI_BIND_HANDLER BindHandler, - IN TDI_UNBIND_HANDLER UnbindHandler, - OUT HANDLE *BindingHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiRegisterPnPHandlers( - IN PTDI_CLIENT_INTERFACE_INFO ClientInterfaceInfo, - IN ULONG InterfaceInfoSize, - OUT HANDLE *BindingHandle); - -TDIKRNLAPI -NTSTATUS -DDKAPI -TdiRegisterProvider( - IN PUNICODE_STRING ProviderName, - OUT HANDLE *ProviderHandle); - -TDIKRNLAPI -VOID -DDKAPI -TdiReturnChainedReceives( - IN PVOID *TsduDescriptors, - IN ULONG NumberOfTsdus); - -TDIKRNLAPI -VOID -DDKAPI -TdiUnmapBuffer( - IN PMDL MdlChain); - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* __TDIKRNL_H */ diff --git a/reactos/include/net/tdistat.h b/reactos/include/net/tdistat.h deleted file mode 100644 index f0588d2579a..00000000000 --- a/reactos/include/net/tdistat.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * tdistat.h - * - * TDI status codes - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __TDISTAT_H -#define __TDISTAT_H - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define TDI_SUCCESS STATUS_SUCCESS -#define TDI_NO_RESOURCES STATUS_INSUFFICIENT_RESOURCES -#define TDI_ADDR_IN_USE STATUS_ADDRESS_ALREADY_EXISTS -#define TDI_BAD_ADDR STATUS_INVALID_ADDRESS_COMPONENT -#define TDI_NO_FREE_ADDR STATUS_TOO_MANY_ADDRESSES -#define TDI_ADDR_INVALID STATUS_INVALID_ADDRESS -#define TDI_ADDR_DELETED STATUS_ADDRESS_CLOSED -#define TDI_BUFFER_OVERFLOW STATUS_BUFFER_OVERFLOW -#define TDI_BAD_EVENT_TYPE STATUS_INVALID_PARAMETER -#define TDI_BAD_OPTION STATUS_INVALID_PARAMETER -#define TDI_CONN_REFUSED STATUS_CONNECTION_REFUSED -#define TDI_INVALID_CONNECTION STATUS_CONNECTION_INVALID -#define TDI_ALREADY_ASSOCIATED STATUS_ADDRESS_ALREADY_ASSOCIATED -#define TDI_NOT_ASSOCIATED STATUS_ADDRESS_NOT_ASSOCIATED -#define TDI_CONNECTION_ACTIVE STATUS_CONNECTION_ACTIVE -#define TDI_CONNECTION_ABORTED STATUS_CONNECTION_ABORTED -#define TDI_CONNECTION_RESET STATUS_CONNECTION_RESET -#define TDI_TIMED_OUT STATUS_IO_TIMEOUT -#define TDI_GRACEFUL_DISC STATUS_GRACEFUL_DISCONNECT -#define TDI_NOT_ACCEPTED STATUS_DATA_NOT_ACCEPTED -#define TDI_MORE_PROCESSING STATUS_MORE_PROCESSING_REQUIRED -#define TDI_INVALID_STATE STATUS_INVALID_DEVICE_STATE -#define TDI_INVALID_PARAMETER STATUS_INVALID_PARAMETER -#define TDI_DEST_NET_UNREACH STATUS_NETWORK_UNREACHABLE -#define TDI_DEST_HOST_UNREACH STATUS_HOST_UNREACHABLE -#define TDI_DEST_UNREACHABLE TDI_DEST_HOST_UNREACH -#define TDI_DEST_PROT_UNREACH STATUS_PROTOCOL_UNREACHABLE -#define TDI_DEST_PORT_UNREACH STATUS_PORT_UNREACHABLE -#define TDI_INVALID_QUERY STATUS_INVALID_DEVICE_REQUEST -#define TDI_REQ_ABORTED STATUS_REQUEST_ABORTED -#define TDI_BUFFER_TOO_SMALL STATUS_BUFFER_TOO_SMALL -#define TDI_CANCELLED STATUS_CANCELLED -#define TDI_BUFFER_TOO_BIG STATUS_INVALID_BUFFER_SIZE -#define TDI_INVALID_REQUEST STATUS_INVALID_DEVICE_REQUEST -#define TDI_PENDING STATUS_PENDING -#define TDI_ITEM_NOT_FOUND STATUS_OBJECT_NAME_NOT_FOUND - -#define TDI_STATUS_BAD_VERSION 0xC0010004L -#define TDI_STATUS_BAD_CHARACTERISTICS 0xC0010005L - -#define TDI_OPTION_EOL 0 - -#define TDI_ADDRESS_OPTION_REUSE 1 -#define TDI_ADDRESS_OPTION_DHCP 2 - -#ifdef __cplusplus -} -#endif - -#endif /* __TDISTAT_H */ diff --git a/reactos/include/tcpmisc.h b/reactos/include/tcpmisc.h new file mode 100644 index 00000000000..ce9c7fad8ab --- /dev/null +++ b/reactos/include/tcpmisc.h @@ -0,0 +1,96 @@ +#ifndef TCPMISC_H +#define TCPMISC_H + +#define IF_MIB_STATS_ID 1 +#define MAX_PHYSADDR_SIZE 8 +#define MAX_IFDESCR_LEN 256 + +/* ID to use for requesting an IFEntry for an interface */ +#define IF_MIB_STATS_ID 1 + +/* ID to use for requesting an IPSNMPInfo for an interface */ +#define IP_MIB_STATS_ID 1 + +/* ID to use for requesting the route table */ +#define IP_MIB_ROUTETABLE_ENTRY_ID 0x101 +#define IP_MIB_ADDRTABLE_ENTRY_ID 102 + +typedef struct IFEntry { + ULONG if_index; + ULONG if_type; + ULONG if_mtu; + ULONG if_speed; + ULONG if_physaddrlen; + UCHAR if_physaddr[MAX_PHYSADDR_SIZE]; + ULONG if_adminstatus; + ULONG if_operstatus; + ULONG if_lastchange; + ULONG if_inoctets; + ULONG if_inucastpkts; + ULONG if_innucastpkts; + ULONG if_indiscards; + ULONG if_inerrors; + ULONG if_inunknownprotos; + ULONG if_outoctets; + ULONG if_outucastpkts; + ULONG if_outnucastpkts; + ULONG if_outdiscards; + ULONG if_outerrors; + ULONG if_outqlen; + ULONG if_descrlen; + UCHAR if_descr[1]; +} IFEntry; + +typedef struct _IPRouteEntry { + ULONG ire_dest; + ULONG ire_index; //matches if_index in IFEntry and iae_index in IPAddrEntry + ULONG ire_metric; + ULONG ire_unk1; //?? + ULONG ire_unk2; //?? + ULONG ire_unk3; //?? + ULONG ire_gw; + ULONG ire_unk4; //?? + ULONG ire_unk5; //?? + ULONG ire_unk6; //?? + ULONG ire_mask; + ULONG ire_unk7; //?? + ULONG ire_unk8; //?? +} IPRouteEntry; + +typedef struct _IPAddrEntry { + ULONG iae_addr; + ULONG iae_index; + ULONG iae_mask; + ULONG iae_bcastaddr; + ULONG iae_reasmsize; + ULONG iae_context; + ULONG iae_pad; +} IPAddrEntry; + +typedef struct _IPSNMPInfo { + ULONG ipsi_index; + ULONG ipsi_forwarding; + ULONG ipsi_defaultttl; + ULONG ipsi_inreceives; + ULONG ipsi_inhdrerrors; + ULONG ipsi_inaddrerrors; + ULONG ipsi_inunknownprotos; + ULONG ipsi_indiscards; + ULONG ipsi_indelivers; + ULONG ipsi_outrequests; + ULONG ipsi_routingdiscards; + ULONG ipsi_outdiscards; + ULONG ipsi_outnoroutes; + ULONG ipsi_reasmtimeout; + ULONG ipsi_reasmreqds; + ULONG ipsi_reasmoks; + ULONG ipsi_reasmfails; + ULONG ipsi_fragoks; + ULONG ipsi_fragfails; + ULONG ipsi_fragcreates; + ULONG ipsi_numif; + ULONG ipsi_numaddr; + ULONG ipsi_numroutes; +} IPSNMPInfo; + +#endif /* TCPMISC_H */ diff --git a/reactos/lib/iphlpapi/ifenum_reactos.c b/reactos/lib/iphlpapi/ifenum_reactos.c index 554e4e00cae..92a83b9f1f9 100644 --- a/reactos/lib/iphlpapi/ifenum_reactos.c +++ b/reactos/lib/iphlpapi/ifenum_reactos.c @@ -152,7 +152,7 @@ NTSTATUS tdiGetSetOfThings( HANDLE tcpFile, * stabilizes. */ do { - assert( !entitySet ); /* We must not have an entity set allocated */ + ASSERT( !entitySet ); /* We must not have an entity set allocated */ status = DeviceIoControl( tcpFile, IOCTL_TCP_QUERY_INFORMATION_EX, &req, diff --git a/reactos/lib/iphlpapi/iphlpapi_private.h b/reactos/lib/iphlpapi/iphlpapi_private.h index 8d957f0d830..dbe089015b3 100644 --- a/reactos/lib/iphlpapi/iphlpapi_private.h +++ b/reactos/lib/iphlpapi/iphlpapi_private.h @@ -23,8 +23,8 @@ #define _WIN32_WINNT 0x500 #include #include -#include -#include +#include +#include #include #include #include @@ -32,7 +32,7 @@ #include "resinfo.h" #include "wine/debug.h" -#include "net/tdiinfo.h" +#include "ddk/tdiinfo.h" #include "tcpioctl.h" #ifndef ETH_ALEN diff --git a/reactos/lib/msafd/include/msafd.h b/reactos/lib/msafd/include/msafd.h index ad66fc34a49..6e18d4998dd 100644 --- a/reactos/lib/msafd/include/msafd.h +++ b/reactos/lib/msafd/include/msafd.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include