*
* but I don't know why the goal was to avoid that translation.
*
- * Attempting to set non-promiscuous mode on a Microsoft Surface Pro's
+ * Attempting to set the hardware filter on a Microsoft Surface Pro's
* Mobile Broadband Adapter returns an error that appears to be
* NDIS_STATUS_NOT_SUPPORTED ORed with the "Customer" bit, so it's
- * probably indicating that it doesn't support promiscuous mode,
- * as one might expect, given that it's not going to promiscuously
- * snoop for arbitrary mobile telecom network packets. That error can
- * safely be ignored, as it's always in non-promiscuous mode; an
- * alternative would be to report the PCAP_WARNING_PROMISC_NOTSUP
- * warning, which indicates that the activate call succeeded but
- * that something happened that the user might want to know about.
+ * probably indicating that it doesn't support that.
*
* It is likely that there are other devices which throw spurious errors,
* at which point this will need refactoring to efficiently check against
/*
* Suppress spurious error generated by non-compiant
- * MS Surface mobile adapters.
+ * MS Surface mobile adapters that appear to
+ * return NDIS_STATUS_NOT_SUPPORTED for attempts
+ * to set the hardware filter.
*
- * It appears to be reporting STATUS_NOT_SUPPORTED
- * (ndis.h defines NDIS_STATUS_NOT_SUPPORTED to
- * have the same value as the NT status value
- * STATUS_NOT_SUPPORTED), but with the NT status
- * value "Customer" bit set, probably by the
- * Npcap NPF driver.
+ * It appears to be reporting NDIS_STATUS_NOT_SUPPORTED,
+ * but with the NT status value "Customer" bit set;
+ * the Npcap NPF driver sets that bit in some cases.
*
* If we knew that this meant "promiscuous mode
* isn't supported", we could add a "promiscuous
* Suppress spurious error generated by non-compiant
* MS Surface mobile adapters.
*/
- if (errcode != NPF_SURFACE_MOBILE_NONPROMISC)
+ if (errcode != (NDIS_STATUS_NOT_SUPPORTED|NT_STATUS_CUSTOMER_DEFINED))
{
pcap_fmt_errmsg_for_win32_err(p->errbuf,
PCAP_ERRBUF_SIZE, errcode,