https://bugs.winehq.org/show_bug.cgi?id=47334
--- Comment #9 from Zebediah Figura z.figura12@gmail.com --- (In reply to Dave Higton from comment #8)
The bug mentioned here would be trivial to fix, but actually getting native packet.dll to work would require a full implementation of ndis.sys, which is at least very difficult.
In the same sentence you describe the bug as "trivial to fix" and "at least very difficult", although the latter comment refers to "native packet.dll", which implies to me that some non-native implementation might give a less difficult solution.
I would appreciate a slightly more detailed explanation of what would be involved in fixing the bug, and ultimately an assessment of difficulty between trivial and very difficult. I'm sure you know what you mean, but I don't understand the considerations.
Sure. There's two separate bugs, one depending on the other to be fixed. First, pcap_findalldevs() should handle an empty adapter description. That's relatively easy to fix. With that fixed, the application would still crash, however, due to missing packet.sys. We could fix that either by using WinPcap's packet.dll (i.e. the "native" version), or providing our own packet.dll just as we provide a replacement wpcap.dll (i.e. a "builtin" version). Either task would be difficult. I haven't investigated it enough to say how difficult, but it involves talking to the network adapter on a lower level than pcap itself, which more than likely means some degree of emulation is required; futhermore both ndis.sys and (to a lesser degree?) packet.dll have some rather complex API design.