20 #define CCS_ROOT L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet" 21 #define TCPIP_GUID L"{4D36E972-E325-11CE-BFC1-08002BE10318}" 66 Request.DATA.SET_INFORMATION.InformationBufferLength =
Length;
70 Request.DATA.QUERY_INFORMATION.InformationBufferLength =
Length;
96 ULONG HeaderBufferSize,
101 if (HeaderBufferSize < Adapter->HeaderSize)
107 switch (Adapter->
Media)
116 *PacketType = EthHeader->EType;
194 }
else switch( Oid ) {
322 LegacyReceive =
WorkItem->LegacyReceive;
352 IPPacket.
Free(&IPPacket);
365 (
"Ether Type = %x Total = %d\n",
372 switch (PacketType) {
383 IPPacket.
Free(&IPPacket);
466 UINT HeaderBufferSize,
467 PVOID LookaheadBuffer,
468 UINT LookaheadBufferSize,
498 if (HeaderBufferSize < Adapter->HeaderSize) {
511 Adapter, Adapter->
MTU));
520 PC(NdisPacket)->PacketType = PacketType;
573 ULONG KeyValueInfoLength;
590 TcpipRegistryPath.
Length = 0;
623 Status = ZwQueryValueKey(ParameterHandle,
635 Status = ZwQueryValueKey(ParameterHandle,
656 Status = ZwQueryValueKey(ParameterHandle,
685 Status = ZwQueryValueKey(ParameterHandle,
727 !
Context->Adapter->CompletingReset)
737 else if (!
Context->Adapter->CompletingReset)
847 DbgPrint(
"NDIS_STATUS_MEDIA_CONNECT\n");
859 DbgPrint(
"NDIS_STATUS_MEDIA_DISCONNECT\n");
911 DbgPrint(
"Device transitioned to power state %ld\n", PnPEvent->
Buffer);
915 DbgPrint(
"Device wants to go into power state %ld\n", PnPEvent->
Buffer);
919 DbgPrint(
"Device is about to be removed\n");
923 DbgPrint(
"Device removal cancelled\n");
980 (
"Called( NdisPacket %x, Offset %d, Adapter %x )\n",
981 NdisPacket,
Offset, Adapter));
989 (
"Adapter Address [%02x %02x %02x %02x %02x %02x]\n",
997 GetDataPtr( NdisPacket, 0, &OldData, &OldSize );
1011 switch (Adapter->
Media) {
1050 (
"Link Address [%02x %02x %02x %02x %02x %02x]\n",
1051 ((
PCHAR)LinkAddress)[0] & 0xff,
1052 ((
PCHAR)LinkAddress)[1] & 0xff,
1053 ((
PCHAR)LinkAddress)[2] & 0xff,
1054 ((
PCHAR)LinkAddress)[3] & 0xff,
1055 ((
PCHAR)LinkAddress)[4] & 0xff,
1056 ((
PCHAR)LinkAddress)[5] & 0xff));
1073 "Pending" :
"Complete"));
1162 new_string[ResultFirst->
Length /
sizeof(
WCHAR)] = 0;
1213 if( LinkageKey )
ZwClose( LinkageKey );
1214 if( DescKey )
ZwClose( DescKey );
1278 ( &EnumKeyName, &TargetKeyName,
Name, DeviceDesc );
1297 PartialRegistryKey.
Buffer =
1301 while( *
Ptr !=
L'\\' &&
1424 sizeof(MediaState));
1541 switch (IF->
Media) {
1671 NextEntry = CurrentEntry->
Flink;
1675 CurrentEntry = NextEntry;
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT _In_ NDIS_HANDLE _In_ NDIS_HANDLE ProtocolBindingContext
#define KeGetCurrentIrql()
BOOLEAN AddrIsUnspecified(PIP_ADDRESS Address)
VOID RouterRemoveRoutesForInterface(PIP_INTERFACE Interface)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR _Out_opt_ PULONG BytesTransferred
#define TI_DbgPrint(_t_, _x_)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
VOID IPDestroyInterface(PIP_INTERFACE IF)
_Must_inspect_result_ typedef _In_ PVOID Unused
_In_opt_ NDIS_HANDLE _In_opt_ NDIS_HANDLE _Inout_ PNDIS_REQUEST NdisRequest
_In_ __drv_aliasesMem PSTRING Prefix
VOID NTAPI ProtocolStatusComplete(NDIS_HANDLE NdisBindingContext)
Called by NDIS when a status-change has occurred.
#define STATUS_INSUFFICIENT_RESOURCES
BOOLEAN ReadIpConfiguration(PIP_INTERFACE Interface)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS OpenErrorStatus
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
NDIS_STATUS LANRegisterAdapter(PNDIS_STRING AdapterName, PNDIS_STRING RegistryPath)
Registers protocol with an NDIS adapter.
VOID NTAPI ProtocolResetComplete(NDIS_HANDLE BindingContext, NDIS_STATUS Status)
Called by NDIS to complete resetting an adapter.
struct _LAN_WQ_ITEM * PLAN_WQ_ITEM
enum _NDIS_MEDIUM NDIS_MEDIUM
#define NDIS_VERSION_MAJOR
#define OBJ_CASE_INSENSITIVE
VOID NTAPI ProtocolSendComplete(NDIS_HANDLE BindingContext, PNDIS_PACKET Packet, NDIS_STATUS Status)
Called by NDIS to complete sending process.
#define NDIS_STATUS_PENDING
REQUEST_COMPLETE_HANDLER RequestCompleteHandler
UNICODE_STRING Description
IN BOOLEAN OUT PSTR Buffer
VOID IPUnregisterInterface(PIP_INTERFACE IF)
VOID EXPORT NdisRegisterProtocol(OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE NdisProtocolHandle, IN PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics, IN UINT CharacteristicsLength)
#define STATUS_INVALID_PARAMETER
_In_ NDIS_STATUS _In_ NDIS_STATUS OpenStatus
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
void GetDataPtr(PNDIS_PACKET Packet, UINT Offset, PCHAR *DataOut, PUINT Size)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
VOID NBDestroyNeighborsForInterface(PIP_INTERFACE Interface)
enum _NDIS_MEDIA_STATE NDIS_MEDIA_STATE
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
VOID NTAPI ProtocolCloseAdapterComplete(NDIS_HANDLE BindingContext, NDIS_STATUS Status)
Called by NDIS to complete closing an adapter.
struct _KEY_BASIC_INFORMATION KEY_BASIC_INFORMATION
INT NTAPI ProtocolReceivePacket(NDIS_HANDLE BindingContext, PNDIS_PACKET NdisPacket)
VOID FreeAdapter(PLAN_ADAPTER Adapter)
Frees memory for a LAN_ADAPTER structure.
#define NDIS_STATUS_RESET_START
#define OID_GEN_CURRENT_PACKET_FILTER
VOID EXPORT NdisDeregisterProtocol(OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisProtocolHandle)
IN PVOID IN PVOID IN USHORT IN USHORT Size
struct _RECONFIGURE_CONTEXT RECONFIGURE_CONTEXT
#define FreeNdisPacket(x)
#define OID_GEN_HARDWARE_STATUS
UNBIND_HANDLER UnbindAdapterHandler
PIP_INTERFACE IPCreateInterface(PLLIP_BIND_INFO BindInfo)
NDIS_STATUS NTAPI ProtocolPnPEvent(NDIS_HANDLE NdisBindingContext, PNET_PNP_EVENT PnPEvent)
CLOSE_ADAPTER_COMPLETE_HANDLER CloseAdapterCompleteHandler
_In_opt_ NDIS_HANDLE _In_ NDIS_STATUS GeneralStatus
UINT TransferDataCompleteCalled
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
struct _LAN_WQ_ITEM LAN_WQ_ITEM
VOID ReconfigureAdapterWorker(PVOID Context)
static NTSTATUS OpenRegistryKey(PNDIS_STRING RegistryPath, PHANDLE RegHandle)
static NTSTATUS FindDeviceDescForAdapter(PUNICODE_STRING Name, PUNICODE_STRING DeviceDesc)
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
#define OBJ_KERNEL_HANDLE
RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
#define LAN_STATE_STOPPED
NDIS_STATUS NDISCall(PLAN_ADAPTER Adapter, NDIS_REQUEST_TYPE Type, NDIS_OID OID, PVOID Buffer, UINT Length)
Send a request to NDIS.
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
VOID NTAPI ProtocolBindAdapter(OUT PNDIS_STATUS Status, IN NDIS_HANDLE BindContext, IN PNDIS_STRING DeviceName, IN PVOID SystemSpecific1, IN PVOID SystemSpecific2)
Called by NDIS during NdisRegisterProtocol to set up initial bindings, and periodically thereafter as...
static NTSTATUS ReadStringFromRegistry(HANDLE RegHandle, PWCHAR RegistryValue, PUNICODE_STRING String)
VOID LanSubmitReceiveWork(NDIS_HANDLE BindingContext, PNDIS_PACKET Packet, UINT BytesTransferred, BOOLEAN LegacyReceive)
VOID LANUnregisterProtocol(VOID)
Unregisters this protocol driver with NDIS.
LL_TRANSMIT_ROUTINE Transmit
STATUS_HANDLER StatusHandler
VOID LANTransmit(PLAN_ADAPTER Adapter, PNDIS_PACKET NdisPacket, PVOID LinkAddress, USHORT Type)
Transmits a packet ARGUMENTS:
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
#define STATUS_BUFFER_TOO_SMALL
VOID NTAPI ProtocolUnbindAdapter(PNDIS_STATUS Status, NDIS_HANDLE ProtocolBindingContext, NDIS_HANDLE UnbindContext)
#define NDIS_STATUS_NOT_SUPPORTED
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define NDIS_VERSION_MINOR
NDIS_STATUS NTAPI ProtocolReceive(NDIS_HANDLE BindingContext, NDIS_HANDLE MacReceiveContext, PVOID HeaderBuffer, UINT HeaderBufferSize, PVOID LookaheadBuffer, UINT LookaheadBufferSize, UINT PacketSize)
Called by NDIS when a packet has been received on the physical link.
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
VOID NTAPI ProtocolStatus(NDIS_HANDLE BindingContext, NDIS_STATUS GenerelStatus, PVOID StatusBuffer, UINT StatusBufferSize)
Called by NDIS when the underlying driver has changed state.
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID TCPUpdateInterfaceLinkStatus(PIP_INTERFACE IF)
NDIS_STATUS LANUnregisterAdapter(PLAN_ADAPTER Adapter)
Unregisters protocol with NDIS adapter.
PIP_PACKET IPInitializePacket(PIP_PACKET IPPacket, ULONG Type)
#define OID_GEN_MEDIA_CONNECT_STATUS
VOID EXPORT NdisSend(OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle, IN PNDIS_PACKET Packet)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
#define AllocatePacketWithBuffer(x, y, z)
VOID GetName(PUNICODE_STRING RegistryKey, PUNICODE_STRING OutName)
UNLOAD_PROTOCOL_HANDLER UnloadHandler
_In_ UINT _In_ UINT _In_ PNDIS_PACKET _In_ UINT _Out_ PUINT BytesCopied
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
BIND_HANDLER BindAdapterHandler
BOOLEAN IPRegisterInterface(PIP_INTERFACE IF)
_In_opt_ PETWENABLECALLBACK _In_opt_ PVOID _Out_ PREGHANDLE RegHandle
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
RESET_COMPLETE_HANDLER ResetCompleteHandler
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)
OPEN_ADAPTER_COMPLETE_HANDLER OpenAdapterCompleteHandler
VOID ARPReceive(PVOID Context, PIP_PACKET Packet)
BOOLEAN ChewCreate(VOID(*Worker)(PVOID), PVOID WorkerContext)
NTSTATUS LANRegisterProtocol(PNDIS_STRING Name)
Registers this protocol driver with NDIS.
#define LAN_STATE_RESETTING
#define NDIS_STATUS_MEDIA_CONNECT
struct _LIST_ENTRY * Flink
struct LAN_ADAPTER * PLAN_ADAPTER
NTSTATUS TcpipLanGetDwordOid(PIP_INTERFACE Interface, NDIS_OID Oid, PULONG Result)
#define OID_GEN_MAXIMUM_FRAME_SIZE
#define NDIS_STATUS_NOT_ACCEPTED
TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler
struct _ETH_HEADER ETH_HEADER
#define OID_GEN_MAXIMUM_TOTAL_SIZE
#define NdisCopyLookaheadData(Destination, Source, Length, MacOptions)
#define NT_SUCCESS(StatCode)
static LONG WINAPI EnumKey(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName, PDWORD pcchName, PFILETIME pftLastWriteTime, HANDLE hSpooler)
#define RtlFillMemory(Dest, Length, Fill)
struct _KEY_VALUE_PARTIAL_INFORMATION * PKEY_VALUE_PARTIAL_INFORMATION
#define IEEE_802_ADDR_LENGTH
PLIST_ENTRY NTAPI ExInterlockedInsertTailList(IN OUT PLIST_ENTRY ListHead, IN OUT PLIST_ENTRY ListEntry, IN OUT PKSPIN_LOCK Lock)
#define AddrInitIPv4(IPAddress, RawAddress)
struct _ETH_HEADER * PETH_HEADER
NDIS_STATUS GetPacketTypeFromNdisPacket(PLAN_ADAPTER Adapter, PNDIS_PACKET NdisPacket, PULONG PacketType)
#define LAN_STATE_OPENING
NTSYSAPI VOID NTAPI RtlFreeAnsiString(PANSI_STRING AnsiString)
VOID LanReceiveWorker(PVOID Context)
RECEIVE_PACKET_HANDLER ReceivePacketHandler
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define NDIS_PACKET_TYPE_MULTICAST
STATUS_COMPLETE_HANDLER StatusCompleteHandler
VOID IPAddInterfaceRoute(PIP_INTERFACE IF)
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
#define NDIS_STATUS_SUCCESS
#define IP_DEFAULT_LINK_SPEED
static NTSTATUS CheckForDeviceDesc(PUNICODE_STRING EnumKeyName, PUNICODE_STRING TargetKeyName, PUNICODE_STRING Name, PUNICODE_STRING DeviceDesc)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
NDIS_STATUS GetPacketTypeFromHeaderBuffer(PLAN_ADAPTER Adapter, PVOID HeaderBuffer, ULONG HeaderBufferSize, PULONG PacketType)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
RECEIVE_HANDLER ReceiveHandler
#define memcpy(s1, s2, n)
_In_ PVOID _In_ PVOID SystemSpecific2
NTSTATUS TcpipWaitForSingleObject(PVOID Object, KWAIT_REASON Reason, KPROCESSOR_MODE WaitMode, BOOLEAN Alertable, PLARGE_INTEGER Timeout)
VOID BindAdapter(PLAN_ADAPTER Adapter, PNDIS_STRING RegistryPath)
Binds a LAN adapter to IP layer.
PFIB_ENTRY RouterCreateRoute(PIP_ADDRESS NetworkAddress, PIP_ADDRESS Netmask, PIP_ADDRESS RouterAddress, PIP_INTERFACE Interface, UINT Metric)
VOID NTAPI ProtocolRequestComplete(NDIS_HANDLE BindingContext, PNDIS_REQUEST NdisRequest, NDIS_STATUS Status)
Called by NDIS to complete a request.
#define OID_GEN_LINK_SPEED
_In_ ULONG _In_ ULONG Offset
UCHAR HWAddress[IEEE_802_ADDR_LENGTH]
SEND_COMPLETE_HANDLER SendCompleteHandler
#define OID_GEN_MAXIMUM_SEND_PACKETS
enum _NDIS_REQUEST_TYPE NDIS_REQUEST_TYPE
struct _RECONFIGURE_CONTEXT * PRECONFIGURE_CONTEXT
#define KeInitializeEvent(pEvt, foo, foo2)
_In_opt_ NDIS_HANDLE _In_ NDIS_STATUS _In_ PVOID _In_ UINT StatusBufferSize
#define STATUS_BUFFER_OVERFLOW
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
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
UINT CopyPacketToBuffer(PUCHAR DstData, PNDIS_PACKET SrcPacket, UINT SrcOffset, UINT Length)
#define InitializeListHead(ListHead)
VOID IPReceive(PIP_INTERFACE IF, PIP_PACKET IPPacket)
#define NDIS_STATUS_RESET_END
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(PUNICODE_STRING Destination, PUNICODE_STRING Source)
VOID EXPORT NdisOpenAdapter(OUT PNDIS_STATUS Status, OUT PNDIS_STATUS OpenErrorStatus, OUT PNDIS_HANDLE NdisBindingHandle, OUT PUINT SelectedMediumIndex, IN PNDIS_MEDIUM MediumArray, IN UINT MediumArraySize, IN NDIS_HANDLE NdisProtocolHandle, IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_STRING AdapterName, IN UINT OpenOptions, IN PSTRING AddressingInformation OPTIONAL)
#define FIELD_OFFSET(t, f)
#define NdisQueryPacketLength(_Packet, _TotalPacketLength)
BOOLEAN ProtocolRegistered
_In_opt_ NDIS_HANDLE _In_ NDIS_STATUS _In_ PVOID StatusBuffer
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NET_PNP_EVENT_CODE NetEvent
NTSTATUS NTAPI AppendUnicodeString(PUNICODE_STRING ResultFirst, PUNICODE_STRING Second, BOOLEAN Deallocate)
BOOLEAN ReconfigureAdapter(PRECONFIGURE_CONTEXT Context)
VOID EXPORT NdisCloseAdapter(OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle)
struct tagContext Context
#define NDIS_STATUS_RESOURCES
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define InitializeObjectAttributes(p, n, a, r, s)
char * cleanup(char *str)
VOID UnbindAdapter(PLAN_ADAPTER Adapter)
#define RtlCopyMemory(Destination, Source, Length)
#define OID_802_3_CURRENT_ADDRESS
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
NDIS_HANDLE NdisProtocolHandle
VOID NTAPI ProtocolOpenAdapterComplete(NDIS_HANDLE BindingContext, NDIS_STATUS Status, NDIS_STATUS OpenErrorStatus)
Called by NDIS to complete opening of an adapter.
#define LAN_STATE_STARTED
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT _In_ NDIS_HANDLE _In_ NDIS_HANDLE _In_ PNDIS_STRING AdapterName
static const WCHAR BackSlash[]
VOID NTAPI ProtocolReceiveComplete(NDIS_HANDLE BindingContext)
Called by NDIS when we're done receiving data.
VOID TCPUpdateInterfaceIPInformation(PIP_INTERFACE IF)
#define ExFreePoolWithTag(_P, _T)
VOID EXPORT NdisTransferData(OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle, IN NDIS_HANDLE MacReceiveContext, IN UINT ByteOffset, IN UINT BytesToTransfer, IN OUT PNDIS_PACKET Packet, OUT PUINT BytesTransferred)
#define NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, InfoType)
LIST_ENTRY AdapterListHead
#define NDIS_STATUS_MEDIA_DISCONNECT
#define OID_GEN_CURRENT_LOOKAHEAD
KSPIN_LOCK AdapterListLock
VOID NTAPI ProtocolTransferDataComplete(NDIS_HANDLE BindingContext, PNDIS_PACKET Packet, NDIS_STATUS Status, UINT BytesTransferred)
Called by NDIS to complete reception of data.
static NDIS_MEDIUM MediaArray[MEDIA_ARRAY_SIZE]
PNP_EVENT_HANDLER PnPEventHandler
#define NDIS_PACKET_TYPE_DIRECTED
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
#define NDIS_PACKET_TYPE_BROADCAST
#define RTL_CONSTANT_STRING(s)