Go to the source code of this file.
|
VOID | IPAddressFree (PVOID Object) |
|
BOOLEAN | AddrIsUnspecified (PIP_ADDRESS Address) |
|
NTSTATUS | AddrGetAddress (PTRANSPORT_ADDRESS AddrList, PIP_ADDRESS Address, PUSHORT Port) |
|
NTSTATUS | AddrBuildAddress (PTRANSPORT_ADDRESS TdiAddress, PIP_ADDRESS Address, PUSHORT Port) |
|
BOOLEAN | AddrIsEqual (PIP_ADDRESS Address1, PIP_ADDRESS Address2) |
|
INT | AddrCompare (PIP_ADDRESS Address1, PIP_ADDRESS Address2) |
|
BOOLEAN | AddrIsEqualIPv4 (PIP_ADDRESS Address1, IPv4_RAW_ADDRESS Address2) |
|
PIP_INTERFACE | AddrLocateInterface (PIP_ADDRESS MatchAddress) |
|
PADDRESS_FILE | AddrSearchFirst (PIP_ADDRESS Address, USHORT Port, USHORT Protocol, PAF_SEARCH SearchContext) |
|
PADDRESS_FILE | AddrSearchNext (PAF_SEARCH SearchContext) |
|
unsigned long NTAPI | inet_addr (const char *) |
|
ULONG | IPv4NToHl (ULONG Address) |
|
UINT | AddrCountPrefixBits (PIP_ADDRESS Netmask) |
|
VOID | AddrWidenAddress (PIP_ADDRESS Network, PIP_ADDRESS Source, PIP_ADDRESS Netmask) |
|
◆ AddrInitIPv4
#define AddrInitIPv4 |
( |
|
IPAddress, |
|
|
|
RawAddress |
|
) |
| |
Value:{ \
(IPAddress)->
Address.IPv4Address = (RawAddress); \
}
Definition at line 16 of file address.h.
◆ AddrBuildAddress()
Definition at line 184 of file address.c.
199 (
MID_TRACE,(
"AddressLength %x, Not valid (expected %x)\n",
#define TI_DbgPrint(_t_, _x_)
struct _TDI_ADDRESS_IP * PTDI_ADDRESS_IP
#define AddrInitIPv4(IPAddress, RawAddress)
#define TDI_ADDRESS_TYPE_IP
#define STATUS_INVALID_ADDRESS
#define TDI_ADDRESS_LENGTH_IP
Referenced by TCPConnect().
◆ AddrCompare()
Definition at line 257 of file address.c.
261 switch (Address1->
Type) {
IPv4_RAW_ADDRESS IPv4Address
union IP_ADDRESS::@1006 Address
◆ AddrCountPrefixBits()
Definition at line 64 of file address.c.
#define TI_DbgPrint(_t_, _x_)
ULONG IPv4NToHl(ULONG Address)
IPv4_RAW_ADDRESS IPv4Address
_In_ __drv_aliasesMem PSTRING Prefix
union IP_ADDRESS::@1006 Address
Referenced by FindOnLinkInterface(), and RouterGetRoute().
◆ AddrGetAddress()
Definition at line 146 of file address.c.
struct _TDI_ADDRESS_IP * PTDI_ADDRESS_IP
#define AddrInitIPv4(IPAddress, RawAddress)
#define TDI_ADDRESS_TYPE_IP
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define STATUS_INVALID_ADDRESS
#define TDI_ADDRESS_LENGTH_IP
Referenced by DGReceiveDatagram().
◆ AddrIsEqual()
Definition at line 221 of file address.c.
225 if (Address1->
Type != Address2->
Type) {
226 DbgPrint(
"AddrIsEqual: Unequal Address Types\n");
230 switch (Address1->
Type) {
240 DbgPrint(
"AddrIsEqual: Bad address type\n");
IPv4_RAW_ADDRESS IPv4Address
union IP_ADDRESS::@1006 Address
USHORT IPv6_RAW_ADDRESS[8]
#define RtlCompareMemory(s1, s2, l)
Referenced by AddrIsBroadcastMatch(), AddrLocateInterface(), AddrReceiveMatch(), ARPReceive(), DGDeliverData(), GetReassemblyInfo(), NBCopyNeighbors(), NBFindOrCreateNeighbor(), NBLocateNeighbor(), NBResetNeighborTimeout(), RouterCreateRoute(), and RouterRemoveRoute().
◆ AddrIsEqualIPv4()
Definition at line 296 of file address.c.
IPv4_RAW_ADDRESS IPv4Address
union IP_ADDRESS::@1006 Address
◆ AddrIsUnspecified()
Definition at line 113 of file address.c.
125 return (
Address->Address.IPv4Address == 0 ||
126 Address->Address.IPv4Address == 0xFFFFFFFF);
Referenced by AddrIsBroadcastMatch(), AddrReceiveMatch(), DGDeliverData(), DispTdiQueryIpHwAddress(), FileOpenAddress(), FindOnLinkInterface(), GetDefaultInterface(), NBFindOrCreateNeighbor(), RawIPSendDatagram(), ReadIpConfiguration(), TCPConnect(), and UDPSendDatagram().
◆ AddrLocateInterface()
Definition at line 89 of file interface.c.
99 if(
AddrIsEqual( &CurrentIF->Unicast, MatchAddress ) ||
100 AddrIsEqual( &CurrentIF->Broadcast, MatchAddress ) ) {
KSPIN_LOCK InterfaceListLock
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
#define ForEachInterface(n)
BOOLEAN AddrIsEqual(PIP_ADDRESS Address1, PIP_ADDRESS Address2)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Referenced by DispTdiQueryIpHwAddress(), and FileOpenAddress().
◆ AddrSearchFirst()
Definition at line 38 of file fileobjs.c.
_In_ USHORT _In_ ULONG Protocol
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
struct _LIST_ENTRY * Flink
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define ReferenceObject(Object)
LIST_ENTRY AddressFileListHead
KSPIN_LOCK AddressFileListLock
PADDRESS_FILE AddrSearchNext(PAF_SEARCH SearchContext)
Referenced by RawIpReceive(), and UDPReceive().
◆ AddrSearchNext()
Definition at line 231 of file fileobjs.c.
252 CurrentEntry = SearchContext->
Next;
268 if ((Current->
Port == SearchContext->
Port) &&
275 CurrentEntry = CurrentEntry->
Flink;
280 SearchContext->
Next = CurrentEntry->
Flink;
#define TI_DbgPrint(_t_, _x_)
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
BOOLEAN AddrReceiveMatch(PIP_ADDRESS LocalAddress, PIP_ADDRESS RemoteAddress)
#define DereferenceObject(Object)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
struct _LIST_ENTRY * Flink
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define ReferenceObject(Object)
LIST_ENTRY AddressFileListHead
KSPIN_LOCK AddressFileListLock
PCHAR A2S(PIP_ADDRESS Address)
Referenced by AddrSearchFirst(), RawIpReceive(), and UDPReceive().
◆ AddrWidenAddress()
◆ inet_addr()
Definition at line 307 of file address.c.
316 ULONG Octets[4] = {0,0,0,0};
324 CHAR c = *AddrString;
337 Octets[
i] += (
c -
'0');
343 return (Octets[3] << 24) + (Octets[2] << 16) + (Octets[1] << 8) + Octets[0];
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
◆ IPAddressFree()
Definition at line 99 of file address.c.
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
#define ExFreePoolWithTag(_P, _T)
◆ IPv4NToHl()