You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.8 KiB
91 lines
1.8 KiB
/*++
|
|
|
|
Copyright(c) 1999-2002 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
brdgtdi.h
|
|
|
|
Abstract:
|
|
|
|
Ethernet MAC level bridge.
|
|
Tdi registration for address notifications.
|
|
|
|
Author:
|
|
|
|
Salahuddin J. Khan (sjkhan)
|
|
|
|
Environment:
|
|
|
|
Kernel mode
|
|
|
|
Revision History:
|
|
|
|
March 2002 - Original version
|
|
|
|
--*/
|
|
|
|
|
|
// ===========================================================================
|
|
//
|
|
// TYPES
|
|
//
|
|
// ===========================================================================
|
|
|
|
typedef struct _BRDG_TDI_GLOBALS
|
|
{
|
|
UNICODE_STRING ClientName;
|
|
TDI_CLIENT_INTERFACE_INFO ciiBridge;
|
|
HANDLE hBindingHandle;
|
|
} BRDG_TDI_GLOBALS, *PBRDG_TDI_GLOBALS;
|
|
|
|
// ===========================================================================
|
|
//
|
|
// PROTOTYPES
|
|
//
|
|
// ===========================================================================
|
|
|
|
NTSTATUS
|
|
BrdgTdiDriverInit();
|
|
|
|
VOID
|
|
BrdgTdiCleanup();
|
|
|
|
typedef struct _in_addr {
|
|
union {
|
|
struct { UCHAR s_b1,s_b2,s_b3,s_b4; } S_un_b;
|
|
struct { USHORT s_w1,s_w2; } S_un_w;
|
|
ULONG S_addr;
|
|
} S_un;
|
|
} in_addr;
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
ZwDeviceIoControlFile(
|
|
IN HANDLE FileHandle,
|
|
IN HANDLE Event OPTIONAL,
|
|
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
|
|
IN PVOID ApcContext OPTIONAL,
|
|
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID InputBuffer OPTIONAL,
|
|
IN ULONG InputBufferLength,
|
|
OUT PVOID OutputBuffer OPTIONAL,
|
|
IN ULONG OutputBufferLength);
|
|
|
|
|
|
|
|
#define s_addr S_un.S_addr
|
|
|
|
BOOLEAN IsLower(WCHAR c);
|
|
BOOLEAN IsDigit(WCHAR c);
|
|
BOOLEAN IsXDigit(WCHAR c);
|
|
|
|
NTSTATUS
|
|
BrdgTdiIpv4StringToAddress(
|
|
IN LPWSTR String,
|
|
IN BOOLEAN Strict,
|
|
OUT LPWSTR *Terminator,
|
|
OUT in_addr *Addr);
|
|
|
|
|