22 #define BREAK_ON_MINIPORT_INIT 0 28 #define ROUTE_DATA_SIZE 256 31 #define MEDIA_ARRAY_SIZE 15 91 UINT HeaderBufferSize,
92 PVOID LookaheadBuffer,
93 UINT LookaheadBufferSize)
99 DbgPrint(
"*** RECEIVE PACKET START ***\n");
102 for (
i = 0;
i < HeaderBufferSize;
i++) {
111 Length = (LookaheadBufferSize < 64)? LookaheadBufferSize : 64;
118 DbgPrint(
"\n*** RECEIVE PACKET STOP ***\n");
179 UINT HeaderBufferSize,
180 PVOID LookaheadBuffer,
181 UINT LookaheadBufferSize,
200 "HeaderBufferSize (0x%X) LookaheadBuffer (0x%X) LookaheadBufferSize (0x%X).\n",
201 Adapter, HeaderBuffer, HeaderBufferSize, LookaheadBuffer, LookaheadBufferSize));
204 MiniDisplayPacket2(HeaderBuffer, HeaderBufferSize, LookaheadBuffer, LookaheadBufferSize);
225 (
"XXX (%x) %x %x %x %x %x %x %x XXX\n",
245 CurrentEntry = CurrentEntry->
Flink;
276 PacketsToReturn[
i]->WrapperReserved[0]--;
277 if (PacketsToReturn[
i]->WrapperReserved[0] == 0)
336 UINT FirstBufferLength, TotalBufferLength, LookAheadSize, HeaderSize;
338 PVOID NdisBufferVA, LookAheadBuffer;
348 LookAheadSize = TotalBufferLength - HeaderSize;
351 if (!LookAheadBuffer)
371 TotalBufferLength - HeaderSize);
377 CurrentEntry = CurrentEntry->
Flink;
474 CurrentEntry = CurrentEntry->
Flink;
504 if (MacBlock->
Binding->RequestCompleteHandler !=
NULL)
506 (*MacBlock->
Binding->RequestCompleteHandler)(
507 MacBlock->
Binding->ProtocolBindingContext,
562 DmaOperations->PutScatterGatherList(
682 *(PacketAddress), *(PacketAddress+1), *(PacketAddress+2), *(PacketAddress+3), *(PacketAddress+4), *(PacketAddress+5),
683 *(AdapterAddress), *(AdapterAddress+1), *(AdapterAddress+2), *(AdapterAddress+3), *(AdapterAddress+4), *(AdapterAddress+5)));
738 CurrentEntry = CurrentEntry->
Flink;
985 PVOID WorkItemContext,
1021 if (!MiniportWorkItem)
1053 PVOID *WorkItemContext)
1079 *WorkItemContext =
Packet;
1083 else if (MiniportWorkItem)
1137 NdisRequest->DATA.QUERY_INFORMATION.InformationBuffer,
1138 NdisRequest->DATA.QUERY_INFORMATION.InformationBufferLength,
1147 NdisRequest->DATA.SET_INFORMATION.InformationBuffer,
1148 NdisRequest->DATA.SET_INFORMATION.InformationBufferLength,
1184 #undef NdisMSetInformationComplete 1204 #undef NdisMQueryInformationComplete 1228 PVOID WorkItemContext;
1238 (Adapter, &WorkItemType, &WorkItemContext);
1244 switch (WorkItemType)
1307 ( Adapter, (
PNDIS_PACKET)WorkItemContext, NdisStatus );
1330 NdisStatus = (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.ResetHandler)(
1332 Adapter->NdisMiniportBlock.MiniportAdapterContext);
1335 Adapter->NdisMiniportBlock.ResetStatus = NdisStatus;
1356 Adapter->NdisMiniportBlock.PendingRequest = (
PNDIS_REQUEST)WorkItemContext;
1371 Adapter->NdisMiniportBlock.PendingRequest =
NULL;
1409 CurrentEntry = CurrentEntry->
Flink;
1436 CurrentEntry = CurrentEntry->
Flink;
1457 Miniport->Log =
NULL;
1562 #undef NdisMIndicateStatus 1577 #undef NdisMIndicateStatusComplete 1609 WCHAR *RegistryBuffer;
1613 ASSERT(NdisWrapperHandle);
1615 *NdisWrapperHandle =
NULL;
1617 #if BREAK_ON_MINIPORT_INIT 1667 *NdisWrapperHandle = Miniport;
1720 if(!BugcheckContext)
1740 BugcheckContext,
sizeof(*BugcheckContext), (
PUCHAR)
"Ndis Miniport");
1843 if (
Irp->PendingReturned)
1876 Irp->IoStatus.Information = 0;
1907 ULONG ResourceListSize;
1913 UINT MaxMulticastAddresses;
1948 if (
Stack->Parameters.StartDevice.AllocatedResources !=
NULL)
1951 PartialResourceList.Count;
1976 Stack->Parameters.StartDevice.AllocatedResources,
1980 Stack->Parameters.StartDevice.AllocatedResources,
1984 if (
Stack->Parameters.StartDevice.AllocatedResourcesTranslated !=
NULL)
1987 PartialResourceList.Count;
2002 Stack->Parameters.StartDevice.AllocatedResourcesTranslated,
2069 SlotNumber.u.bits.DeviceNumber = (PciSlotNumber >> 16) & 0xFFFF;
2070 SlotNumber.u.bits.FunctionNumber = PciSlotNumber & 0xFFFF;
2101 ZwClose(WrapperContext.RegistryHandle);
2112 (
ULONG_PTR)Adapter->NdisMiniportBlock.TimerQueue,
2120 (
ULONG_PTR)Adapter->NdisMiniportBlock.TimerQueue,
2141 NdisStatus =
DoQueries(Adapter, AddressOID);
2203 CurrentEntry = CurrentEntry->Flink;
2282 Irp->IoStatus.Information = 0;
2301 Irp->IoStatus.Information = 0;
2311 Stack->Parameters.DeviceIoControl.OutputBufferLength,
2314 Irp->IoStatus.Information = Written;
2430 static const WCHAR ClassKeyName[] = {
'C',
'l',
'a',
's',
's',
'\\'};
2431 static const WCHAR LinkageKeyName[] = {
'\\',
'L',
'i',
'n',
'k',
'a',
'g',
'e',0};
2434 WCHAR *LinkageKeyBuffer;
2435 ULONG DriverKeyLength;
2447 if (MiniportPtr ==
NULL)
2452 Miniport = *MiniportPtr;
2463 0,
NULL, &DriverKeyLength);
2471 sizeof(ClassKeyName) +
sizeof(LinkageKeyName));
2472 if (LinkageKeyBuffer ==
NULL)
2479 DriverKeyLength, LinkageKeyBuffer +
2480 (
sizeof(ClassKeyName) /
sizeof(
WCHAR)),
2490 RtlCopyMemory(LinkageKeyBuffer, ClassKeyName,
sizeof(ClassKeyName));
2491 RtlCopyMemory(LinkageKeyBuffer + ((
sizeof(ClassKeyName) + DriverKeyLength) /
2492 sizeof(
WCHAR)) - 1, LinkageKeyName,
sizeof(LinkageKeyName));
2541 &GUID_DEVINTERFACE_NET,
2625 Irp->IoStatus.Information = 0;
2659 switch (MiniportCharacteristics->MajorNdisVersion)
2670 switch (MiniportCharacteristics->MinorNdisVersion)
2692 MiniportCharacteristics->MajorNdisVersion,
2693 MiniportCharacteristics->MinorNdisVersion));
2702 if ((!MiniportCharacteristics->HaltHandler) ||
2703 (!MiniportCharacteristics->InitializeHandler)||
2704 (!MiniportCharacteristics->ResetHandler))
2710 if (MiniportCharacteristics->MajorNdisVersion < 0x05)
2712 if ((!MiniportCharacteristics->QueryInformationHandler) ||
2713 (!MiniportCharacteristics->SetInformationHandler))
2721 if (((!MiniportCharacteristics->QueryInformationHandler) ||
2722 (!MiniportCharacteristics->SetInformationHandler)) &&
2723 (!MiniportCharacteristics->CoRequestHandler))
2730 if (MiniportCharacteristics->MajorNdisVersion == 0x03)
2732 if (!MiniportCharacteristics->SendHandler)
2738 else if (MiniportCharacteristics->MajorNdisVersion == 0x04)
2741 if ((!MiniportCharacteristics->SendHandler) &&
2742 (!MiniportCharacteristics->SendPacketsHandler))
2748 else if (MiniportCharacteristics->MajorNdisVersion == 0x05)
2752 if ((!MiniportCharacteristics->SendHandler) &&
2753 (!MiniportCharacteristics->SendPacketsHandler) &&
2754 (!MiniportCharacteristics->CoSendPacketsHandler))
2776 *MiniportPtr = Miniport;
2792 #undef NdisMResetComplete 2806 #undef NdisMSendComplete 2828 #undef NdisMSendResourcesAvailable 2840 #undef NdisMTransferDataComplete 2855 #undef NdisMSetAttributes 2907 if (CheckForHangTimeInSeconds > 0)
2943 DueTime.QuadPart = (-1) * 10 * MicrosecondsToSleep;
2982 for (
j = 0;
j < 16;
j++)
2991 for (
j = 0;
j < 16;
j++)
3333 Irp->IoStatus.Status = NdisStatus;
3338 CurrentEntry = CurrentEntry->Flink;
_In_ PPNDIS_PACKET _In_ UINT NumberOfPackets
#define DO_DEVICE_INITIALIZING
PKBUGCHECK_CALLBACK_RECORD CallbackRecord
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
LIST_ENTRY MiniportListEntry
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
_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 IRP_MN_CANCEL_REMOVE_DEVICE
NDIS_M_REQ_COMPLETE_HANDLER QueryCompleteHandler
VOID EXPORT NdisMSendComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status)
NDIS_M_TD_COMPLETE_HANDLER TDCompleteHandler
VOID EXPORT NdisMSetInformationComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS Status)
#define ExInterlockedRemoveEntryList(_List, _Lock)
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
_In_ PNDIS_STRING _In_ PNDIS_STRING _Out_ PDEVICE_OBJECT * pDeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
return STATUS_NOT_SUPPORTED
ADAPTER_SHUTDOWN_HANDLER ShutdownHandler
NTSTATUS NTAPI NdisIAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject)
PDEVICE_OBJECT PhysicalDeviceObject
struct _NDIS51_MINIPORT_CHARACTERISTICS NDIS51_MINIPORT_CHARACTERISTICS
#define KeRaiseIrql(irql, oldIrql)
_In_opt_ NDIS_HANDLE _In_opt_ NDIS_HANDLE _Inout_ PNDIS_REQUEST NdisRequest
PLOGICAL_ADAPTER MiniLocateDevice(PNDIS_STRING AdapterName)
VOID MiniWorkItemComplete(PLOGICAL_ADAPTER Adapter, NDIS_WORK_ITEM_TYPE WorkItemType)
BOOLEAN NTAPI KeSetTimer(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN PKDPC Dpc OPTIONAL)
#define STATUS_INSUFFICIENT_RESOURCES
NDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics
NDIS_OPEN_BLOCK NdisOpenBlock
#define KeLowerIrql(oldIrql)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
PNDIS_MINIPORT_TIMER TimerQueue
enum _INTERFACE_TYPE INTERFACE_TYPE
PMINIPORT_BUGCHECK_CONTEXT BugcheckContext
NTSTATUS NTAPI NdisIPnPQueryStopDevice(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
NDIS_STATUS DoQueries(PLOGICAL_ADAPTER Adapter, NDIS_OID AddressOID)
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS OpenErrorStatus
#define FILE_DEVICE_NETWORK
VOID EXPORT NdisMResetComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS Status, IN BOOLEAN AddressingReset)
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
VOID NTAPI EthFilterDprIndicateReceiveComplete(IN PETH_FILTER Filter)
#define IOCTL_NDIS_QUERY_GLOBAL_STATS
NDIS_INTERFACE_TYPE AdapterType
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
enum _NDIS_MEDIUM NDIS_MEDIUM
#define NDIS_ATTRIBUTE_DESERIALIZE
#define NDIS_STATUS_PENDING
#define STATUS_MORE_PROCESSING_REQUIRED
VOID EXPORT NdisMCloseLog(IN NDIS_HANDLE LogHandle)
IN BOOLEAN OUT PSTR Buffer
VOID EXPORT NdisMDeregisterAdapterShutdownHandler(IN NDIS_HANDLE MiniportHandle)
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
struct _MINIPORT_BUGCHECK_CONTEXT * PMINIPORT_BUGCHECK_CONTEXT
LIST_ENTRY ProtocolListHead
PNDIS_MINIPORT_WORK_ITEM WorkQueueHead
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
VOID EXPORT NdisOpenConfiguration(OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE ConfigurationHandle, IN NDIS_HANDLE WrapperConfigurationContext)
NTSTATUS NTAPI NdisIForwardIrpAndWaitCompletionRoutine(PDEVICE_OBJECT Fdo, PIRP Irp, PVOID Context)
_In_opt_ PVOID SystemSpecific
NTSTATUS NTAPI NdisIPnPStopDevice(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
PLIST_ENTRY NTAPI ExInterlockedInsertTailList(IN OUT PLIST_ENTRY ListHead, IN OUT PLIST_ENTRY ListEntry, IN OUT PKSPIN_LOCK Lock)
VOID EXPORT NdisMTransferDataComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status, IN UINT BytesTransferred)
_In_ PNDIS_STRING _In_ PNDIS_STRING SymbolicName
VOID NTAPI KeAcquireSpinLockAtDpcLevel(IN PKSPIN_LOCK SpinLock)
#define OID_GEN_MAC_OPTIONS
VOID MiniDoAddressingReset(PLOGICAL_ADAPTER Adapter)
#define IRP_MJ_MAXIMUM_FUNCTION
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
#define KeInitializeCallbackRecord(CallbackRecord)
_In_ NDIS_HANDLE MiniportAdapterHandle
#define NDIS_STATUS_RESET_START
PNDIS_MINIPORT_WORK_ITEM MiniGetFirstWorkItem(PLOGICAL_ADAPTER Adapter, NDIS_WORK_ITEM_TYPE Type)
_In_ PVOID _In_ PVOID _In_ PVOID SystemSpecific3
NTSTATUS NTAPI IoDeleteSymbolicLink(IN PUNICODE_STRING SymbolicLinkName)
#define STATUS_INVALID_DEVICE_REQUEST
struct _NDIS_REQUEST * PNDIS_REQUEST
IN PVOID IN PVOID IN USHORT IN USHORT Size
_In_opt_ PVOID _In_ PIO_WORKITEM IoWorkItem
BOOLEAN NTAPI KeSetTimerEx(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN LONG Period, IN PKDPC Dpc OPTIONAL)
_In_opt_ NDIS_HANDLE _In_ NDIS_STATUS GeneralStatus
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT SelectedMediumIndex
#define RTL_REGISTRY_CONTROL
PDEVICE_OBJECT PhysicalDeviceObject
#define NDIS_STATUS_UNSUPPORTED_MEDIA
NDIS_M_REQ_COMPLETE_HANDLER SetCompleteHandler
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
NDIS_HANDLE EXPORT NdisIMGetDeviceContext(IN NDIS_HANDLE MiniportAdapterHandle)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
NDIS_STATUS EXPORT NdisMCreateLog(IN NDIS_HANDLE MiniportAdapterHandle, IN UINT Size, OUT PNDIS_HANDLE LogHandle)
_In_ NDIS_HANDLE _In_ PNET_PNP_EVENT NetPnPEvent
VOID EXPORT NdisInitializeWrapper(OUT PNDIS_HANDLE NdisWrapperHandle, IN PVOID SystemSpecific1, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3)
STATUS_HANDLER StatusHandler
VOID NTAPI EthFilterDprIndicateReceive(IN PETH_FILTER Filter, IN NDIS_HANDLE MacReceiveContext, IN PCHAR Address, IN PVOID HeaderBuffer, IN UINT HeaderBufferSize, IN PVOID LookaheadBuffer, IN UINT LookaheadBufferSize, IN UINT PacketSize)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
#define STATUS_BUFFER_TOO_SMALL
VOID EXPORT NdisMRegisterUnloadHandler(IN NDIS_HANDLE NdisWrapperHandle, IN PDRIVER_UNLOAD UnloadHandler)
DRIVER_UNLOAD * PDRIVER_UNLOAD
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
enum _NDIS_WORK_ITEM_TYPE NDIS_WORK_ITEM_TYPE
#define GET_LOGICAL_ADAPTER(Handle)
NTSTATUS NTAPI NdisICreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI NdisGenericIrpHandler(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
FILTERDBS_S FILTER_PACKET_INDICATION_HANDLER PacketIndicateHandler
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
FORCEINLINE VOID IoCopyCurrentIrpStackLocationToNext(_Inout_ PIRP Irp)
NDIS_STATUS FASTCALL MiniDequeueWorkItem(PLOGICAL_ADAPTER Adapter, NDIS_WORK_ITEM_TYPE *WorkItemType, PVOID *WorkItemContext)
_In_ PDEVICE_OBJECT DeviceObject
NDIS_WORK_ITEM_TYPE WorkItemType
#define OID_802_3_MAXIMUM_LIST_SIZE
VOID EXPORT NdisMFlushLog(IN NDIS_HANDLE LogHandle)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
ETH_RCV_COMPLETE_HANDLER EthRxCompleteHandler
VOID NTAPI MiniResetComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS Status, IN BOOLEAN AddressingReset)
VOID EXPORT NdisReadConfiguration(OUT PNDIS_STATUS Status, OUT PNDIS_CONFIGURATION_PARAMETER *ParameterValue, IN NDIS_HANDLE ConfigurationHandle, IN PNDIS_STRING Keyword, IN NDIS_PARAMETER_TYPE ParameterType)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_ PPNDIS_PACKET PacketArray
#define IRP_MN_QUERY_REMOVE_DEVICE
NDIS_STATUS MiniSetInformation(PLOGICAL_ADAPTER Adapter, NDIS_OID Oid, ULONG Size, PVOID Buffer, PULONG BytesRead)
_In_ PDRIVER_UNLOAD UnloadHandler
VOID NTAPI MiniTransferDataComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status, IN UINT BytesTransferred)
NDIS_HANDLE MiniportAdapterContext
PNDIS_MINIPORT_BLOCK Miniport
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
PDRIVER_EXTENSION DriverExtension
LIST_ENTRY MiniportListHead
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResourcesTranslated
_In_ PVOID _In_ ULONG Event
#define OID_GEN_MAXIMUM_LOOKAHEAD
VOID NTAPI MiniStatus(IN NDIS_HANDLE MiniportHandle, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize)
PNDIS_MINIPORT_INTERRUPT Interrupt
W_SEND_PACKETS_HANDLER SendPacketsHandler
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
struct _NDIS_LOG * PNDIS_LOG
NDIS_M_SEND_RESOURCES_HANDLER SendResourcesHandler
BOOLEAN MiniIsBusy(PLOGICAL_ADAPTER Adapter, NDIS_WORK_ITEM_TYPE Type)
KSYNCHRONIZE_ROUTINE * PKSYNCHRONIZE_ROUTINE
#define IoCompleteRequest
VOID NTAPI KeInitializeTimer(OUT PKTIMER Timer)
NTSTATUS NTAPI NdisIShutdown(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
VOID EXPORT NdisMGetDeviceProperty(IN NDIS_HANDLE MiniportAdapterHandle, IN OUT PDEVICE_OBJECT *PhysicalDeviceObject OPTIONAL, IN OUT PDEVICE_OBJECT *FunctionalDeviceObject OPTIONAL, IN OUT PDEVICE_OBJECT *NextDeviceObject OPTIONAL, IN OUT PCM_RESOURCE_LIST *AllocatedResources OPTIONAL, IN OUT PCM_RESOURCE_LIST *AllocatedResourcesTranslated OPTIONAL)
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
VOID EXPORT NdisCancelSendPackets(IN NDIS_HANDLE NdisBindingHandle, IN PVOID CancelId)
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
#define GET_MINIPORT_DRIVER(Handle)
RESET_COMPLETE_HANDLER ResetCompleteHandler
#define FILE_DEVICE_PHYSICAL_NETCARD
NTSTATUS NTAPI NdisIPnPCancelStopDevice(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
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)
VOID EXPORT NdisGetFirstBufferFromPacket(IN PNDIS_PACKET _Packet, OUT PNDIS_BUFFER *_FirstBuffer, OUT PVOID *_FirstBufferVA, OUT PUINT _FirstBufferLength, OUT PUINT _TotalBufferLength)
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
VOID EXPORT NdisMIndicateStatusComplete(IN NDIS_HANDLE MiniportAdapterHandle)
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 GLint GLint j
VOID EXPORT NdisCloseConfiguration(IN NDIS_HANDLE ConfigurationHandle)
VOID EXPORT NdisMSetAttributes(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE MiniportAdapterContext, IN BOOLEAN BusMaster, IN NDIS_INTERFACE_TYPE AdapterType)
#define IRP_MN_QUERY_STOP_DEVICE
VOID EXPORT NdisRegisterAdapterShutdownHandler(IN NDIS_HANDLE NdisAdapterHandle, IN PVOID ShutdownContext, IN ADAPTER_SHUTDOWN_HANDLER ShutdownHandler)
PPROTOCOL_BINDING ProtocolBinding
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
BOOLEAN MiniAdapterHasAddress(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet)
NTSTATUS NTAPI NdisIPower(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
struct _LIST_ENTRY * Flink
VOID NTAPI MiniRequestComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS Status)
BOOLEAN NTAPI KeCancelTimer(IN OUT PKTIMER Timer)
NTSTATUS NTAPI IoCreateSymbolicLink(IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName)
VOID EXPORT NdisTerminateWrapper(IN NDIS_HANDLE NdisWrapperHandle, IN PVOID SystemSpecific)
#define NDIS_GET_PACKET_STATUS(_Packet)
VOID(NTAPI * ADAPTER_SHUTDOWN_HANDLER)(_In_ PVOID ShutdownContext)
VOID NTAPI MiniIndicateReceivePacket(IN NDIS_HANDLE MiniportAdapterHandle, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets)
#define IRP_MN_STOP_DEVICE
#define NDIS_ATTRIBUTE_BUS_MASTER
TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler
NDIS_STATUS MiniDoRequest(PLOGICAL_ADAPTER Adapter, PNDIS_REQUEST NdisRequest)
NDIS_MINIPORT_BLOCK NdisMiniportBlock
VOID NTAPI MiniportHangDpc(PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
PDEVICE_OBJECT NextDeviceObject
#define NT_SUCCESS(StatCode)
VOID NTAPI MiniSendResourcesAvailable(IN NDIS_HANDLE MiniportAdapterHandle)
ULONG CheckForHangSeconds
VOID NTAPI KeReleaseSpinLockFromDpcLevel(IN PKSPIN_LOCK SpinLock)
union _HARDWARE_ADDRESS::@994 Type
#define KeAcquireSpinLock(sl, irql)
#define IRP_MN_START_DEVICE
NDIS_M_STS_COMPLETE_HANDLER StatusCompleteHandler
struct _NDIS30_MINIPORT_CHARACTERISTICS NDIS30_MINIPORT_CHARACTERISTICS
VOID NTAPI IoUnregisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
RECEIVE_PACKET_HANDLER ReceivePacketHandler
PNDIS_PACKET FirstPendingPacket
VOID NTAPI NdisIBugcheckCallback(IN PVOID Buffer, IN ULONG Length)
VOID EXPORT NdisReturnPackets(IN PNDIS_PACKET *PacketsToReturn, IN UINT NumberOfPackets)
KSPIN_LOCK MiniportListLock
struct _NDIS_REQUEST_MAC_BLOCK * PNDIS_REQUEST_MAC_BLOCK
STATUS_COMPLETE_HANDLER StatusCompleteHandler
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFDEVICE Fdo
#define NDIS_STATUS_SUCCESS
static ULONG ResourceCount
LIST_ENTRY ProtocolListHead
struct _SINGLE_LIST_ENTRY * Next
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT * NextDeviceObject
PCM_RESOURCE_LIST Resources
UCHAR WrapperReserved[2 *sizeof(PVOID)]
VOID NTAPI MiniSendComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status)
VOID EXPORT NdisInitUnicodeString(IN OUT PNDIS_STRING DestinationString, IN PCWSTR SourceString)
VOID NTAPI MiniStatusComplete(IN NDIS_HANDLE MiniportAdapterHandle)
#define NDIS_GET_PACKET_HEADER_SIZE(_Packet)
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
struct _LOGICAL_ADAPTER * PLOGICAL_ADAPTER
PDRIVER_UNLOAD DriverUnload
#define NDIS_SET_PACKET_STATUS(_Packet, _Status)
#define ExAllocatePool(type, size)
RECEIVE_HANDLER ReceiveHandler
_Must_inspect_result_ _In_ WDFCMRESLIST List
VOID NTAPI ProSendPackets(IN NDIS_HANDLE NdisBindingHandle, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets)
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
#define PLUGPLAY_REGKEY_DRIVER
NTSTATUS NTAPI NdisIDispatchPnp(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
_In_ PVOID _In_ PVOID SystemSpecific2
UNICODE_STRING MiniportName
struct _NDIS_MINIPORT_BLOCK * PNDIS_MINIPORT_BLOCK
BOOLEAN NTAPI KeDeregisterBugCheckCallback(IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord)
BOOLEAN NTAPI EthCreateFilter(IN UINT MaximumMulticastAddresses, IN PUCHAR AdapterAddress, OUT PETH_FILTER *Filter)
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
NDIS_HANDLE DeviceContext
_Must_inspect_result_ _In_ PWDF_TIMER_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFTIMER * Timer
struct _NDIS40_MINIPORT_CHARACTERISTICS NDIS40_MINIPORT_CHARACTERISTICS
VOID EXPORT NdisDeregisterAdapterShutdownHandler(IN NDIS_HANDLE NdisAdapterHandle)
NDIS_STATUS MiniQueryInformation(PLOGICAL_ADAPTER Adapter, NDIS_OID Oid, ULONG Size, PVOID Buffer, PULONG BytesWritten)
KSPIN_LOCK AdapterListLock
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
struct _NDIS_MINIPORT_WORK_ITEM * PNDIS_MINIPORT_WORK_ITEM
VOID NTAPI IoQueueWorkItem(IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context)
_In_ PKSYNCHRONIZE_ROUTINE _In_opt_ __drv_aliasesMem PVOID SynchronizeContext
VOID NTAPI EthDeleteFilter(IN PETH_FILTER Filter)
PNDIS_REQUEST PendingRequest
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
SEND_COMPLETE_HANDLER SendCompleteHandler
PDRIVER_ADD_DEVICE AddDevice
UINT CopyBufferChainToBuffer(PUCHAR DstData, PNDIS_BUFFER SrcBuffer, UINT SrcOffset, UINT Length)
struct _SINGLE_LIST_ENTRY * PSINGLE_LIST_ENTRY
DRIVER_DISPATCH * PDRIVER_DISPATCH
VOID NTAPI ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PPROTOCOL_BINDING Protocol)
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
#define OID_GEN_MAXIMUM_SEND_PACKETS
BOOLEAN EXPORT NdisMSynchronizeWithInterrupt(IN PNDIS_MINIPORT_INTERRUPT Interrupt, IN PVOID SynchronizeFunction, IN PVOID SynchronizeContext)
#define KeInitializeEvent(pEvt, foo, foo2)
_In_opt_ NDIS_HANDLE _In_ NDIS_STATUS _In_ PVOID _In_ UINT StatusBufferSize
_Out_ PNDIS_HANDLE _In_ PNDIS_PROTOCOL_CHARACTERISTICS _In_ UINT CharacteristicsLength
#define STATUS_BUFFER_OVERFLOW
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
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
VOID EXPORT NdisMSleep(IN ULONG MicrosecondsToSleep)
struct _NDIS50_MINIPORT_CHARACTERISTICS NDIS50_MINIPORT_CHARACTERISTICS
VOID MiniIndicateData(PLOGICAL_ADAPTER Adapter, NDIS_HANDLE MacReceiveContext, PVOID HeaderBuffer, UINT HeaderBufferSize, PVOID LookaheadBuffer, UINT LookaheadBufferSize, UINT PacketSize)
UINT CopyPacketToBuffer(PUCHAR DstData, PNDIS_PACKET SrcPacket, UINT SrcOffset, UINT Length)
VOID EXPORT NdisMSendResourcesAvailable(IN NDIS_HANDLE MiniportAdapterHandle)
PNDIS_MINIPORT_WORK_ITEM WorkQueueTail
#define InitializeListHead(ListHead)
_In_ PIO_STACK_LOCATION IrpSp
#define NDIS_STATUS_RESET_END
#define FIELD_OFFSET(t, f)
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT * FunctionalDeviceObject
PDEVICE_OBJECT DeviceObject
PUNICODE_STRING RegistryPath
#define ETH_LENGTH_OF_ADDRESS
NTSTATUS NTAPI NdisIDeviceIoControl(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NDIS_M_SEND_COMPLETE_HANDLER SendCompleteHandler
VOID EXPORT NdisCompletePnPEvent(IN NDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle, IN PNET_PNP_EVENT NetPnPEvent)
struct _ADAPTER_BINDING * PADAPTER_BINDING
#define KeReleaseSpinLock(sl, irql)
#define NDIS_STATUS_BAD_VERSION
#define IoSkipCurrentIrpStackLocation(Irp)
_In_opt_ NDIS_HANDLE _In_ NDIS_STATUS _In_ PVOID StatusBuffer
UNICODE_STRING * PUNICODE_STRING
_In_ WDFTIMER _In_ LONGLONG DueTime
NTSTATUS NTAPI IoOpenDeviceRegistryKey(IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey)
NDIS_STATUS EXPORT NdisMDeregisterDevice(IN NDIS_HANDLE NdisDeviceHandle)
#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER
#define NDIS_DbgPrint(_t_, _x_)
NTSTATUS NTAPI NdisIForwardIrpAndWait(PLOGICAL_ADAPTER Adapter, PIRP Irp)
static __inline VOID NdisQueryPacket(IN PNDIS_PACKET Packet, OUT PUINT PhysicalBufferCount OPTIONAL, OUT PUINT BufferCount OPTIONAL, OUT PNDIS_BUFFER *FirstBuffer OPTIONAL, OUT PUINT TotalPacketLength OPTIONAL)
NDIS_M_RESET_COMPLETE_HANDLER ResetCompleteHandler
enum _NDIS_INTERFACE_TYPE NDIS_INTERFACE_TYPE
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
struct _NDIS_PACKET * PNDIS_PACKET
PDEVICE_OBJECT DeviceObject
NDIS_TIMER WakeUpDpcTimer
BOOLEAN NTAPI KeRegisterBugCheckCallback(IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord, IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine, IN PVOID Buffer, IN ULONG Length, IN PUCHAR Component)
VOID EXPORT NdisQueryBuffer(IN PNDIS_BUFFER Buffer, OUT PVOID *VirtualAddress OPTIONAL, OUT PUINT Length)
_In_ PNDIS_STRING _In_ PNDIS_STRING _Out_ PDEVICE_OBJECT _Out_ NDIS_HANDLE * NdisDeviceHandle
NDIS_STATUS EXPORT NdisMQueryAdapterInstanceName(OUT PNDIS_STRING AdapterInstanceName, IN NDIS_HANDLE MiniportAdapterHandle)
struct tagContext Context
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
UNICODE_STRING SymbolicLinkName
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
#define NDIS_STATUS_RESOURCES
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
PDRIVER_OBJECT DriverObject
VOID EXPORT NdisMRegisterAdapterShutdownHandler(IN NDIS_HANDLE MiniportHandle, IN PVOID ShutdownContext, IN ADAPTER_SHUTDOWN_HANDLER ShutdownHandler)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define MmGetSystemAddressForMdl(Mdl)
LIST_ENTRY AdapterListHead
ETH_RCV_INDICATE_HANDLER EthRxIndicateHandler
#define RtlZeroMemory(Destination, Length)
BOOLEAN NTAPI KeSynchronizeExecution(IN OUT PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext OPTIONAL)
#define RtlCopyMemory(Destination, Source, Length)
BOOLEAN MiniCheckForHang(PLOGICAL_ADAPTER Adapter)
#define OID_802_3_CURRENT_ADDRESS
NDIS_STATUS EXPORT NdisMRegisterDevice(IN NDIS_HANDLE NdisWrapperHandle, IN PNDIS_STRING DeviceName, IN PNDIS_STRING SymbolicName, IN PDRIVER_DISPATCH MajorFunctions[], OUT PDEVICE_OBJECT *pDeviceObject, OUT NDIS_HANDLE *NdisDeviceHandle)
#define IRP_MN_CANCEL_STOP_DEVICE
NDIS_STATUS EXPORT NdisMWriteLogData(IN NDIS_HANDLE LogHandle, IN PVOID LogBuffer, IN UINT LogBufferSize)
_In_ UINT _Out_ PNDIS_HANDLE LogHandle
VOID FASTCALL MiniQueueWorkItem(PLOGICAL_ADAPTER Adapter, NDIS_WORK_ITEM_TYPE WorkItemType, PVOID WorkItemContext, BOOLEAN Top)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
NDIS_STATUS EXPORT NdisMRegisterMiniport(IN NDIS_HANDLE NdisWrapperHandle, IN PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, IN UINT CharacteristicsLength)
_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
#define NDIS_STATUS_BAD_CHARACTERISTICS
NDIS_STATUS EXPORT NdisQueryAdapterInstanceName(OUT PNDIS_STRING AdapterInstanceName, IN NDIS_HANDLE NdisBindingHandle)
NTSTATUS NTAPI NdisIPnPStartDevice(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
_Must_inspect_result_ _In_ NDIS_HANDLE NdisBindingHandle
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
#define RTL_QUERY_REGISTRY_REQUIRED
PNDIS_M_DRIVER_BLOCK DriverHandle
NDIS_INTERFACE_TYPE BusType
#define NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, InfoType)
UCHAR Medium802_3[ETH_LENGTH_OF_ADDRESS]
VOID EXPORT NdisMIndicateStatus(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize)
#define NDIS_STATUS_FAILURE
#define OID_GEN_CURRENT_LOOKAHEAD
#define IRP_MN_QUERY_PNP_DEVICE_STATE
#define Int32x32To64(a, b)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
VOID EXPORT NdisMSetAttributesEx(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE MiniportAdapterContext, IN UINT CheckForHangTimeInSeconds OPTIONAL, IN ULONG AttributeFlags, IN NDIS_INTERFACE_TYPE AdapterType)
struct _DRIVER_OBJECT * PDRIVER_OBJECT
NDIS_STATUS MiniReset(PLOGICAL_ADAPTER Adapter)
static NDIS_MEDIUM MediaArray[MEDIA_ARRAY_SIZE]
PNP_EVENT_HANDLER PnPEventHandler
#define RTL_QUERY_REGISTRY_DIRECT
VOID EXPORT NdisMQueryInformationComplete(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS Status)
#define RtlCompareMemory(s1, s2, l)
NDIS_PROTOCOL_CHARACTERISTICS Chars
NDIS_HANDLE EXPORT NdisIMGetBindingContext(IN NDIS_HANDLE NdisBindingHandle)
#define IRP_MJ_DEVICE_CONTROL
struct ETHI_FILTER * PETHI_FILTER
VOID NTAPI MiniportWorker(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
NDIS_M_STATUS_HANDLER StatusHandler
NDIS_STATUS ProIndicatePacket(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet)
PNDIS_STRING SymbolicName
PULONG MinorVersion OPTIONAL
_In_opt_ PVOID DeferredContext