Dietmar Posted May 1, 2023 Posted May 1, 2023 (edited) @Mov AX, 0xDEAD can you see, why the i211 works with kdnet.dll (better kdstub.dll) from win8.1 but the i219 not Dietmar EDIT: I see, that only the i211 gets attention in kdstub.dll and this via e1000_init_nvm_params_i211 proc near. So, may be that for the i211, i217, i218 those nvm parameter are the same. But nvm is different on i219. EDIT2: The i211 has a transmit buffer of 128 KB and a receive buffer of 128 KB. In contrast, the i219 has a larger memory cache with a transmit buffer of 256 KB and a receive buffer of 256 KB. EDIT3: The i211 has a NVM size of 64KB. The i219 Ethernet controller uses a larger NVM size of 256KB. Edited May 1, 2023 by Dietmar
Dietmar Posted May 1, 2023 Posted May 1, 2023 (edited) Is there a Vista bit32 driver for i219 Dietmar EDIT: This is, what I have found for Vista bit32. The driver with "r" goes up to i210 and may be worth a try. This "r" driver fullfilles all dependencies under win7 SP1, but does not work direct for the i211 or i219 https://ufile.io/bk1awpvj Edited May 1, 2023 by Dietmar 1
subvertion Posted June 15, 2023 Posted June 15, 2023 Has anyone thought about or managed to add the support for NDIS LWF drivers to XP in this forum? What about WFP? Because I think these two are a very important part of supporting many of vista+ programs.
Damnation Posted February 5, 2024 Author Posted February 5, 2024 (edited) @Dietmar I thought I'd try and take another shot at porting NDIS 6 to XP. I got a D1 BSOD in netio.sys this time. https://ibb.co/q5VjMMh My most recent build if you want to try and debug, no rush. https://fastupload.io/pOM4uar97jSEMZn/file edit: looking at your last debug log from when you got a D1 BSOD i netio.sys I looked at the point of failure in a disassembler and from what I can tell I think it has to do with the hashtable functions that I stubbed, might try to implement. Edited February 5, 2024 by Damnation
Damnation Posted February 6, 2024 Author Posted February 6, 2024 @Dietmar Now I get a D1 BSOD from ntoskrn8.sys itself. https://ibb.co/gM52pG2 most recent build. https://easyupload.io/pklgtx I'll stop for now.
reboot12 Posted April 3, 2024 Posted April 3, 2024 On 6/6/2022 at 2:12 PM, Dietmar said: I just test, that your ntoskrn8.sys together with the files from Longhorn 5048 is downward compatible with i211 on the Asrock z370 k6 board. So, just now on this board runs ndis6 under XP SP3 WOW, How to patch driver for the WinXP 64-bit?
Damnation Posted March 10 Author Posted March 10 @Dietmar I thought I'd have another go at trying to get Windows 7 ndis.sys to work on XP, now trying using AI to help reverse engineer assembly into C. This time round I get a 7F 0.0.0.0 Divide by Zero BSOD. If you have time, can you try and find where it's happening in ntoskrn8.sys? https://buzzheavier.com/cy852zg5l602
Dietmar Posted March 10 Posted March 10 @Damnation This way will not work. There are registry entries from Win7 and a lot more. The "easiest" way would be something like this. It is like for me to make a Graphik card to work in XP, which work hardly in win7 Dietmar XP NDIS6 BRIDGE v1 – EXACT FILE LIST WITH FUNCTION NAMES ======================================================== Goal ---- Build the first bootstrappable version of an XP-side NDIS6 bridge for ONE wired Ethernet miniport family. This is NOT a full Vista/7 stack. It is a narrow, instrumented v1. Build products -------------- 1) n6host.sys - hosts the target NDIS 6 miniport - exports the bridge-side NDIS6-facing services/callback environment 2) xpim.sys - XP NDIS 5.1 intermediate/virtual miniport side - exposes an XP-visible adapter path 3) optional later: - importscan.exe - oiddump.exe Directory layout ---------------- ndis6xp_bridge/ common/ n6host/ xpim/ glue/ test/ docs/ ====================================================================== 1) COMMON HEADERS / SHARED CORE ====================================================================== common/bridge_types.h --------------------- Purpose: - master type definitions - adapter state enum - packet ownership enum - bridge-wide constants Must contain: - BRIDGE_ADAPTER - BRIDGE_NBL - BRIDGE_XP_PACKET - BRIDGE_OID_ENTRY - BRIDGE_LINK_STATE - BRIDGE_STATS - BRIDGE_CONFIG - enum BRIDGE_ADAPTER_STATE - enum BRIDGE_SEND_STATE - enum BRIDGE_RECV_STATE common/bridge_status.h ---------------------- Purpose: - unified status mapping Must contain: - BridgeStatusFromNdis6(...) - BridgeStatusToNdis5(...) - BridgeStatusToNtStatus(...) - BridgeStatusToWin32(...) common/bridge_debug.h --------------------- Purpose: - tracing / asserts / log categories Must contain: - BridgeTraceInit(...) - BridgeTrace(...) - BridgeTraceOid(...) - BridgeTraceSend(...) - BridgeTraceRecv(...) - BridgeTraceState(...) - BridgeBugCheckPoint(...) common/bridge_pool.h -------------------- Purpose: - packet/NBL/context pool helpers Must contain: - BridgePoolInit(...) - BridgePoolShutdown(...) - BridgeAllocAdapterCtx(...) - BridgeFreeAdapterCtx(...) - BridgeAllocSendCtx(...) - BridgeFreeSendCtx(...) - BridgeAllocRecvCtx(...) - BridgeFreeRecvCtx(...) common/bridge_lock.h -------------------- Purpose: - wrapper layer for spin locks, events, refs Must contain: - BridgeLockInit(...) - BridgeLockAcquire(...) - BridgeLockRelease(...) - BridgeRefInit(...) - BridgeRefGet(...) - BridgeRefPut(...) - BridgeEventInit(...) - BridgeEventSet(...) - BridgeEventWait(...) common/bridge_queue.h --------------------- Purpose: - generic queue/ring helpers Must contain: - BridgeQueueInit(...) - BridgeQueuePush(...) - BridgeQueuePop(...) - BridgeQueueFlush(...) - BridgeQueueIsEmpty(...) common/bridge_adapter.h ----------------------- Purpose: - adapter object lifecycle Must contain: - BridgeAdapterCreate(...) - BridgeAdapterDestroy(...) - BridgeAdapterStart(...) - BridgeAdapterStop(...) - BridgeAdapterPause(...) - BridgeAdapterRestart(...) - BridgeAdapterReset(...) - BridgeAdapterSetLinkState(...) - BridgeAdapterGetByHandle(...) - BridgeAdapterReference(...) - BridgeAdapterDereference(...) common/bridge_oid.h ------------------- Purpose: - OID mapping and request context definitions Must contain: - BridgeOidInit(...) - BridgeOidBuildMap(...) - BridgeOidLookupN6ToXp(...) - BridgeOidLookupXpToN6(...) - BridgeOidIsSupported(...) - BridgeOidNeedStub(...) - BridgeOidNeedHardFail(...) common/bridge_nbl.h ------------------- Purpose: - NBL/NB translation declarations Must contain: - BridgeNblInit(...) - BridgeNblShutdown(...) - BridgeNblFromXpPacket(...) - BridgeNblToXpPacket(...) - BridgeCloneNetBufferList(...) - BridgeFreeNetBufferListCtx(...) - BridgeMapMdlChain(...) - BridgeCopyPayloadIfNeeded(...) common/bridge_xp_packet.h ------------------------- Purpose: - XP packet translation declarations Must contain: - BridgeXpPacketInit(...) - BridgeXpPacketFromNbl(...) - BridgeXpPacketCompleteSend(...) - BridgeXpPacketIndicateReceive(...) - BridgeXpPacketReturn(...) common/bridge_exports.h ----------------------- Purpose: - bridge-private interface between n6host and xpim Must contain: - BridgeRegisterXpEdge(...) - BridgeUnregisterXpEdge(...) - BridgeSubmitOidFromXp(...) - BridgeSubmitSendFromXp(...) - BridgeReturnRecvFromXp(...) - BridgeIndicateRecvToXp(...) - BridgeCompleteSendToXp(...) - BridgeNotifyLinkToXp(...) ====================================================================== 2) N6HOST.SYS – NDIS6-FACING HOST SIDE ====================================================================== n6host/n6host_main.c -------------------- Purpose: - DriverEntry - global init / shutdown - export-table bring-up Must implement: - DriverEntry(...) - N6HostUnload(...) - N6HostGlobalInit(...) - N6HostGlobalShutdown(...) n6host/n6host_driver.c ---------------------- Purpose: - target miniport load/registration coordination Must implement: - N6HostRegisterMiniportDriver(...) - N6HostDeregisterMiniportDriver(...) - N6HostLoadTargetMiniport(...) - N6HostUnloadTargetMiniport(...) - N6HostResolveTargetImports(...) n6host/n6host_exports.c ----------------------- Purpose: - the MOST IMPORTANT file in v1 - implement the NDIS6-facing support APIs the chosen target miniport imports Must implement in v1 at minimum: - NdisAllocateMemoryWithTagPriority(...) - NdisFreeMemory(...) - NdisAllocateSpinLock(...) - NdisFreeSpinLock(...) - NdisAcquireSpinLock(...) - NdisReleaseSpinLock(...) - NdisInitializeEvent(...) - NdisSetEvent(...) - NdisResetEvent(...) - NdisWaitEvent(...) - NdisMRegisterMiniportDriver(...) - NdisMDeregisterMiniportDriver(...) - NdisMSetMiniportAttributes(...) - NdisMIndicateStatusEx(...) - NdisMRegisterInterruptEx(...) - NdisMDeregisterInterruptEx(...) - NdisMSynchronizeWithInterruptEx(...) - NdisMQueueDpcEx(...) - NdisAllocateNetBufferListPool(...) - NdisFreeNetBufferListPool(...) - NdisAllocateNetBufferAndNetBufferList(...) - NdisFreeNetBufferList(...) - NdisAllocateMdl(...) - NdisFreeMdl(...) - NdisQueryMdl(...) - NdisAllocateCloneNetBufferList(...) - NdisFreeCloneNetBufferList(...) - NdisGetDataBuffer(...) - NdisOidRequestComplete(...) - NdisMSendNetBufferListsComplete(...) - NdisMIndicateReceiveNetBufferLists(...) - NdisMReturnNetBufferLists(...) - NdisScheduleWorkItem(...) - NdisCancelTimerObject(...) - NdisAllocateTimerObject(...) - NdisSetTimerObject(...) - NdisFreeTimerObject(...) Possible stubs for early v1: - NdisOpenConfigurationEx(...) - NdisCloseConfiguration(...) - NdisReadConfiguration(...) - NdisWriteConfiguration(...) - NdisRegisterDeviceEx(...) - NdisDeregisterDeviceEx(...) - NdisMGetBusData(...) - NdisMSetBusData(...) - NdisIfAddIfStackEntry(...) - NdisIfDeleteIfStackEntry(...) Hard-fail for unsupported v1 features: - NdisFRegisterFilterDriver(...) - NdisFIndicateReceiveNetBufferLists(...) - NdisAllocateIoWorkItem(...) - advanced QoS / SR-IOV / VMQ / RSS helpers not needed by target driver n6host/n6host_miniport.c ------------------------ Purpose: - the callback table that the target miniport registers - lifecycle/state machine Must implement: - N6MiniportInitializeEx(...) - N6MiniportHaltEx(...) - N6MiniportPause(...) - N6MiniportRestart(...) - N6MiniportResetEx(...) - N6MiniportCheckForHangEx(...) - N6MiniportShutdownEx(...) - N6MiniportOidRequest(...) - N6MiniportCancelOidRequest(...) - N6MiniportSendNetBufferLists(...) - N6MiniportReturnNetBufferLists(...) - N6MiniportCancelSendNetBufferLists(...) - N6MiniportDevicePnPEventNotify(...) - N6MiniportAdapterShutdown(...) - N6MiniportSetOptions(...) n6host/n6host_oid.c ------------------- Purpose: - NDIS6 OID request engine - translate to bridge OID model Must implement: - N6OidInit(...) - N6OidRequestDispatch(...) - N6OidHandleQuery(...) - N6OidHandleSet(...) - N6OidHandleMethod(...) - N6OidCompleteFromXp(...) - N6OidBuildSupportedList(...) - N6OidFillGeneralStats(...) - N6OidFillLinkState(...) - N6OidApplyPacketFilter(...) - N6OidApplyMulticastList(...) n6host/n6host_send.c -------------------- Purpose: - send path from NDIS6 miniport into bridge internals Must implement: - N6SendNetBufferLists(...) - N6SendOneNbl(...) - N6SendQueueInsert(...) - N6SendKickXpEdge(...) - N6SendCompleteFromXp(...) - N6CancelSendNetBufferLists(...) - N6FlushSendQueue(...) n6host/n6host_recv.c -------------------- Purpose: - receive indication path toward NDIS6 miniport callbacks Must implement: - N6IndicateReceiveToMiniport(...) - N6BuildRecvNbl(...) - N6ReturnRecvFromMiniport(...) - N6RecycleRecvCtx(...) - N6FlushRecvPath(...) n6host/n6host_nbl.c ------------------- Purpose: - NET_BUFFER / NET_BUFFER_LIST helpers and ownership tracking Must implement: - N6NblCreateFromXpPacket(...) - N6NblCreateForReceive(...) - N6NblClone(...) - N6NblMapPayload(...) - N6NblUnmapPayload(...) - N6NblCompleteSend(...) - N6NblReturnReceive(...) - N6NblRelease(...) n6host/n6host_mem.c ------------------- Purpose: - central memory helpers Must implement: - N6MemAlloc(...) - N6MemFree(...) - N6MemAllocTag(...) - N6MemZero(...) - N6MemCopy(...) n6host/n6host_dma.c ------------------- Purpose: - DMA/common-buffer helpers only if target miniport needs them Must implement: - N6DmaInit(...) - N6DmaShutdown(...) - N6AllocateCommonBuffer(...) - N6FreeCommonBuffer(...) - N6MapSharedMemory(...) - N6UnmapSharedMemory(...) n6host/n6host_intr.c -------------------- Purpose: - interrupt/DPC bridge Must implement: - N6InterruptRegister(...) - N6InterruptDeregister(...) - N6InterruptIsr(...) - N6InterruptDpc(...) - N6InterruptSync(...) - N6InterruptDisable(...) - N6InterruptEnable(...) n6host/n6host_pnp.c ------------------- Purpose: - device and adapter PnP events Must implement: - N6PnpEventNotify(...) - N6PnpSurpriseRemove(...) - N6PnpQueryRemove(...) - N6PnpCancelRemove(...) n6host/n6host_power.c --------------------- Purpose: - minimal power handling for v1 Must implement: - N6PowerInit(...) - N6PowerSetState(...) - N6PowerQueryState(...) - N6PowerShutdown(...) n6host/n6host_timer.c --------------------- Purpose: - timer wrappers Must implement: - N6TimerCreate(...) - N6TimerSet(...) - N6TimerCancel(...) - N6TimerDelete(...) n6host/n6host_workitem.c ------------------------ Purpose: - passive-level deferred work Must implement: - N6WorkItemInit(...) - N6WorkItemQueue(...) - N6WorkItemRun(...) - N6WorkItemShutdown(...) n6host/n6host_util.c -------------------- Purpose: - small helpers Must implement: - N6UtilCopyMac(...) - N6UtilCompareMac(...) - N6UtilClampMtu(...) - N6UtilUpdateStats(...) n6host/n6host.def ----------------- Purpose: - export names if you choose explicit exports for the target miniport loader path Must export at minimum: - DriverEntry - plus every synthetic NDIS6 helper that the target miniport is linked against if direct binding is used n6host/sources n6host/makefile n6host/n6host.inf ----------------- Purpose: - WDK 7600 build - install as bridge host service ====================================================================== 3) XPIM.SYS – XP NDIS 5.1 SIDE ====================================================================== xpim/xpim_main.c ---------------- Purpose: - DriverEntry / global init for XP side Must implement: - DriverEntry(...) - XpimUnload(...) - XpimGlobalInit(...) - XpimGlobalShutdown(...) xpim/xpim_protocol.c -------------------- Purpose: - NDIS 5.1 protocol edge downward/upward binding control Must implement: - XpProtoBindAdapter(...) - XpProtoUnbindAdapter(...) - XpProtoOpenAdapterComplete(...) - XpProtoCloseAdapterComplete(...) - XpProtoResetComplete(...) - XpProtoRequestComplete(...) - XpProtoStatus(...) - XpProtoStatusComplete(...) - XpProtoReceive(...) - XpProtoReceivePacket(...) - XpProtoReceiveComplete(...) - XpProtoSendComplete(...) - XpProtoTransferDataComplete(...) - XpProtoPnPEvent(...) - XpProtoUnload(...) xpim/xpim_miniport.c -------------------- Purpose: - XP-visible virtual miniport edge Must implement: - XpMiniportInitialize(...) - XpMiniportHalt(...) - XpMiniportReset(...) - XpMiniportQueryInformation(...) - XpMiniportSetInformation(...) - XpMiniportSend(...) - XpMiniportSendPackets(...) - XpMiniportReturnPacket(...) - XpMiniportTransferData(...) - XpMiniportCheckForHang(...) - XpMiniportDisableInterrupt(...) - XpMiniportEnableInterrupt(...) - XpMiniportHandleInterrupt(...) - XpMiniportISR(...) - XpMiniportPnPEventNotify(...) - XpMiniportAdapterShutdown(...) xpim/xpim_bind.c ---------------- Purpose: - adapter binding bookkeeping Must implement: - XpBindCreate(...) - XpBindDestroy(...) - XpBindLookup(...) - XpBindAttachBridge(...) - XpBindDetachBridge(...) xpim/xpim_oid.c --------------- Purpose: - XP OID request translation Must implement: - XpOidQueryInformation(...) - XpOidSetInformation(...) - XpOidBuildSupportedList(...) - XpOidCompleteFromN6(...) - XpOidMapToBridge(...) - XpOidMapFromBridge(...) xpim/xpim_send.c ---------------- Purpose: - send path from XP into bridge Must implement: - XpSendPacket(...) - XpSendPackets(...) - XpSendQueueInsert(...) - XpSendSubmitToBridge(...) - XpSendCompleteFromBridge(...) - XpSendCancelAll(...) xpim/xpim_recv.c ---------------- Purpose: - receive indication to XP networking Must implement: - XpRecvIndicateFromBridge(...) - XpRecvBuildPacket(...) - XpRecvTransferData(...) - XpRecvReturnPacket(...) - XpRecvFlush(...) xpim/xpim_packet.c ------------------ Purpose: - XP packet helpers Must implement: - XpPacketAlloc(...) - XpPacketFree(...) - XpPacketClone(...) - XpPacketMapBuffer(...) - XpPacketUnmapBuffer(...) xpim/xpim_control.c ------------------- Purpose: - control path between xpim and n6host Must implement: - XpCtrlRegisterBridge(...) - XpCtrlUnregisterBridge(...) - XpCtrlNotifyLinkState(...) - XpCtrlIssueOid(...) - XpCtrlCompleteOid(...) xpim/xpim_util.c ---------------- Purpose: - helpers/stats/mac/link Must implement: - XpUtilCopyMac(...) - XpUtilLinkUp(...) - XpUtilLinkDown(...) - XpUtilUpdateStats(...) xpim/sources xpim/makefile xpim/xpim.inf ------------- Purpose: - WDK 7600 build - install as XP IM / virtual miniport component ====================================================================== 4) GLUE LAYER – THE ACTUAL TRANSLATION LOGIC ====================================================================== glue/glue_oid_map.c ------------------- Purpose: - the key policy file - exact OID translations and capability clamping Must implement: - GlueOidInitMap(...) - GlueOidN6ToXp(...) - GlueOidXpToN6(...) - GlueOidIsAllowed(...) - GlueOidIsStubbed(...) - GlueOidDefaultReply(...) Must define initial supported mappings for v1: - MAC address - current packet filter - multicast list - maximum frame size - maximum total size - link speed - media connect status - vendor description - vendor ID - driver version - statistics subset glue/glue_send_path.c --------------------- Purpose: - core send bridging Must implement: - GlueSendFromXpToN6(...) - GlueSendFromN6ToXp(...) - GlueSendCompleteToXp(...) - GlueSendCompleteToN6(...) - GlueSendAbort(...) glue/glue_recv_path.c --------------------- Purpose: - core receive bridging Must implement: - GlueRecvFromN6ToXp(...) - GlueRecvFromXpToN6(...) - GlueRecvReturnToN6(...) - GlueRecvReturnToXp(...) - GlueRecvDrop(...) glue/glue_link_state.c ---------------------- Purpose: - link and media-state normalization Must implement: - GlueLinkSetState(...) - GlueLinkIndicateToXp(...) - GlueLinkIndicateToN6(...) glue/glue_caps.c ---------------- Purpose: - feature negotiation clamp Must implement: - GlueCapsInit(...) - GlueCapsBuildN6View(...) - GlueCapsBuildXpView(...) - GlueCapsDisableUnsupported(...) Must explicitly disable in v1: - RSS - LSO - checksum offload if unstable - VLAN offload if unstable - VMQ - SR-IOV - selective suspend - advanced power features glue/glue_reset.c ----------------- Purpose: - unified reset/restart/teardown policy Must implement: - GlueResetBegin(...) - GlueResetComplete(...) - GluePausePath(...) - GlueRestartPath(...) - GlueStopPath(...) glue/glue_trace.c ----------------- Purpose: - shared trace events Must implement: - GlueTraceAdapter(...) - GlueTraceOid(...) - GlueTraceSend(...) - GlueTraceRecv(...) - GlueTraceReset(...) ====================================================================== 5) TEST / DEBUG FILES ====================================================================== test/kd_bp.txt -------------- Must contain first bring-up breakpoints for: - n6host!DriverEntry - n6host!N6MiniportInitializeEx - n6host!N6OidRequestDispatch - n6host!N6SendNetBufferLists - n6host!N6IndicateReceiveToMiniport - xpim!DriverEntry - xpim!XpMiniportInitialize - xpim!XpOidQueryInformation - xpim!XpSendPackets - xpim!XpRecvIndicateFromBridge test/oid_matrix.txt ------------------- Must document: - each OID - XP side name - NDIS6 side name - implemented / stub / fail - buffer rules - expected completion mode test/send_recv_checklist.txt ---------------------------- Must document: - first send packet - first receive packet - completion arrives - no double completion - no leak on halt - no leak on reset test/startup_checklist.txt -------------------------- Must document: - driver load order - service start type - registry keys - expected first breakpoints - recovery steps if boot fails ====================================================================== 6) ABSOLUTE MINIMAL FILE SET FOR M1 ====================================================================== If you want the FIRST buildable milestone only, build these files first: common/bridge_types.h common/bridge_status.h common/bridge_debug.h common/bridge_adapter.h common/bridge_oid.h common/bridge_nbl.h common/bridge_exports.h n6host/n6host_main.c n6host/n6host_exports.c n6host/n6host_miniport.c n6host/n6host_oid.c n6host/n6host_send.c n6host/n6host_recv.c n6host/n6host_nbl.c n6host/n6host_util.c n6host/sources n6host/makefile n6host/n6host.inf xpim/xpim_main.c xpim/xpim_protocol.c xpim/xpim_miniport.c xpim/xpim_oid.c xpim/xpim_send.c xpim/xpim_recv.c xpim/xpim_control.c xpim/xpim_util.c xpim/sources xpim/makefile xpim/xpim.inf glue/glue_oid_map.c glue/glue_send_path.c glue/glue_recv_path.c glue/glue_link_state.c glue/glue_caps.c ====================================================================== 7) FIRST IMPLEMENTATION ORDER ====================================================================== Step 1: - common/* - n6host_main.c - xpim_main.c Step 2: - n6host_exports.c - only the exact imported NDIS helpers needed by one chosen miniport Step 3: - n6host_miniport.c - xpim_miniport.c - xpim_protocol.c Step 4: - glue_oid_map.c - n6host_oid.c - xpim_oid.c Step 5: - bridge_nbl.h - n6host_nbl.c - glue_send_path.c - glue_recv_path.c - n6host_send.c - n6host_recv.c - xpim_send.c - xpim_recv.c Step 6: - link state / reset / trace / caps clamp ====================================================================== 8) WHAT TO CODE FIRST IN n6host_exports.c ====================================================================== The first exported/support functions to implement should be exactly these: - NdisMRegisterMiniportDriver - NdisMDeregisterMiniportDriver - NdisMSetMiniportAttributes - NdisAllocateMemoryWithTagPriority - NdisFreeMemory - NdisAllocateSpinLock - NdisAcquireSpinLock - NdisReleaseSpinLock - NdisInitializeEvent - NdisSetEvent - NdisWaitEvent - NdisAllocateNetBufferListPool - NdisFreeNetBufferListPool - NdisAllocateNetBufferAndNetBufferList - NdisFreeNetBufferList - NdisGetDataBuffer - NdisOidRequestComplete - NdisMSendNetBufferListsComplete - NdisMIndicateReceiveNetBufferLists - NdisMReturnNetBufferLists - NdisAllocateTimerObject - NdisSetTimerObject - NdisCancelTimerObject - NdisFreeTimerObject That set gives the best chance to reach: - DriverEntry - miniport registration - initialize - OID traffic - first send/receive skeleton ====================================================================== 9) FIRST SUCCESS CRITERIA ====================================================================== M1 is reached only if: - both sys files load on XP - chosen NDIS6 miniport reaches InitializeEx - core OIDs complete without crash - one send completes - one receive is indicated and returned - repeated halt/restart does not leak or bugcheck
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now