cvs commit: src/sys/compat/ndis ntoskrnl_var.h subr_hal.c subr_ntoskrnl.c src/sys/dev/if_ndis if_ndis.c

Bill Paul wpaul at FreeBSD.org
Sun Nov 6 11:38:35 PST 2005


wpaul       2005-11-06 19:38:34 UTC

  FreeBSD src repository

  Modified files:
    sys/compat/ndis      ntoskrnl_var.h subr_hal.c subr_ntoskrnl.c 
    sys/dev/if_ndis      if_ndis.c 
  Log:
  The latest version of the Intel 2200BG/2915ABG driver (9.0.0.3-9) from
  Intel's web site requires some minor tweaks to get it to work:
  
  - The driver seems to have been released with full WMI tracing enabled,
    and makes references to some WMI APIs, namely IoWMIRegistrationControl(),
    WmiQueryTraceInformation() and WmiTraceMessage(). Only the first
    one is ever called (during intialization). These have been implemented
    as do-nothing stubs for now. Also added a definition for STATUS_NOT_FOUND
    to ntoskrnl_var.h, which is used as a return code for one of the WMI
    routines.
  
  - The driver references KeRaiseIrqlToDpcLevel() and KeLowerIrql()
    (the latter as a function, which is unusual because normally
    KeLowerIrql() is a macro in the Windows DDK that calls KfLowewIrql()).
    I'm not sure why these are being called since they're not really
    part of WDM. Presumeably they're being used for backwards
    compatibility with old versions of Windows. These have been
    implemented in subr_hal.c. (Note that they're _stdcall routines
    instead of _fastcall.)
  
  - When querying the OID_802_11_BSSID_LIST OID to get a BSSID list,
    you don't know ahead of time how many networks the NIC has found
    during scanning, so you're allowed to pass 0 as the list length.
    This should cause the driver to return an 'insufficient resources'
    error and set the length to indicate how many bytes are actually
    needed. However for some reason, the Intel driver does not honor
    this convention: if you give it a length of 0, it returns some
    other error and doesn't tell you how much space is really needed.
    To get around this, if using a length of 0 yields anything besides
    the expected error case, we arbitrarily assume a length of 64K.
    This is similar to the hack that wpa_supplicant uses when doing
    a BSSID list query.
  
  Revision  Changes    Path
  1.42      +1 -0      src/sys/compat/ndis/ntoskrnl_var.h
  1.27      +26 -5     src/sys/compat/ndis/subr_hal.c
  1.82      +33 -0     src/sys/compat/ndis/subr_ntoskrnl.c
  1.114     +6 -7      src/sys/dev/if_ndis/if_ndis.c


More information about the cvs-src mailing list