Sample Code

windows driver samples/ Native Wi-Fi Miniport Sample Driver/ C++/ inc/ hw_intf.h/

/*++

Copyright (c) Microsoft Corporation. All rights reserved.

Module Name:
    hw_intf.h

Abstract:
    Contains interfaces into the HW layer
    
Revision History:
      When        What
    ----------    ----------------------------------------------
    09-04-2007    Created

Notes:

--*/
#pragma once

//
// Forward declaration
//
typedef struct _ADAPTER         ADAPTER, *PADAPTER;
typedef struct _HVL             HVL, *PHVL;
typedef struct _HW              HW, *PHW;
typedef struct _MP_PORT         MP_PORT, *PMP_PORT;
typedef struct _VNIC            VNIC, *PVNIC;
typedef struct _HW_MAC_CONTEXT  HW_MAC_CONTEXT, *PHW_MAC_CONTEXT;


// First call into the HW
NDIS_STATUS
Hw11Allocate(
    _In_  NDIS_HANDLE             MiniportAdapterHandle,
    _Outptr_result_maybenull_ PHW*          Hw,
    _In_  PADAPTER                Adapter
    );

VOID
Hw11Free(
    _In_  PHW                     Hw
    );

// This is called after the Hw11FindNic & Hw11DiscoverNicResources calls
NDIS_STATUS
Hw11Initialize(
    _In_  PHW                     Hw,
    _In_  PHVL                    Hvl,
    _Out_ NDIS_ERROR_CODE*        ErrorCode,
    _Out_ PULONG                  ErrorValue
    );

VOID
Hw11Terminate(
    _In_  PHW                     Hw
    );

VOID
Hw11Shutdown(
    _In_  PHW                     Hw,
    _In_  NDIS_SHUTDOWN_ACTION    ShutdownAction
    );

VOID
Hw11Halt(
    _In_  PHW                     Hw
    );
    
NDIS_STATUS
Hw11Pause(
    _In_  PHW         Hw
    );

VOID
Hw11Restart(
    _In_  PHW         Hw
    );

VOID
Hw11DevicePnPEvent(
    _In_  PHW                     Hw,
    _In_  PNET_DEVICE_PNP_EVENT   NetDevicePnPEvent
    );

BOOLEAN
Hw11CheckForHang(
    _In_  PHW                     Hw
    );

VOID
Hw11NdisResetStep1(
    _In_  PHW                     Hw
    );

VOID
Hw11NdisResetStep2(
    _In_  PHW                     Hw
    );

NDIS_STATUS
Hw11NdisResetStep3(
    _In_  PHW                     Hw,
    _Out_ PBOOLEAN                AddressingReset
    );


NDIS_STATUS
Hw11Dot11Reset(
    _In_  PHW_MAC_CONTEXT         MacContext,
    _In_  PDOT11_RESET_REQUEST    Dot11ResetRequest    
    );


NDIS_STATUS
Hw11AllocateMACContext(
    _In_  PHW                     Hw,
    _Outptr_result_maybenull_ PHW_MAC_CONTEXT* MacContext,
    _In_  PVNIC                   VNic,
    _In_  NDIS_PORT_NUMBER        PortNumber    
    );

VOID
Hw11FreeMACContext(
    _In_  PHW                     Hw,
    _In_  PHW_MAC_CONTEXT         MacContext
    );

/* 
 * Called to inform the HW that this MAC context should be used (is active).
 * 
 */
NDIS_STATUS
Hw11EnableMACContext(
    _In_  PHW                     Hw,
    _In_  PHW_MAC_CONTEXT         MacContext
    );
    
/* 
 * Called to inform the HW that this MAC context should not be used (is NOT active) 
 * If the HW is using this context, it would block the call
 */
NDIS_STATUS
Hw11DisableMACContext(
    _In_  PHW                     Hw,
    _In_  PHW_MAC_CONTEXT         MacContext
    );

NDIS_STATUS
Hw11PauseMACContext(
    _In_  PHW_MAC_CONTEXT         MacContext
    );

VOID
Hw11RestartMACContext(
    _In_  PHW_MAC_CONTEXT         MacContext
    );

NDIS_STATUS
Hw11InitializeSendEngine(
    _In_  PHW                     Hw,
    _Out_ NDIS_ERROR_CODE*        ErrorCode,
    _Out_ PULONG                  ErrorValue
    );

VOID
Hw11TerminateSendEngine(
    _In_  PHW                     Hw
    );


NDIS_STATUS
Hw11InitializeReceiveEngine(
    _In_  PHW                     Hw,
    _Out_ NDIS_ERROR_CODE*        ErrorCode,
    _Out_ PULONG                  ErrorValue
    );

VOID
Hw11TerminateReceiveEngine(
    _In_  PHW                     Hw
    );

// 2nd call into the HW
VOID
Hw11ReadRegistryConfiguration(
    _In_        PHW             Hw,
    _In_opt_    NDIS_HANDLE     ConfigurationHandle
    );


// 3rd call into the HW
/**
 * This looks through the PCI configuration space and tries to find the hardware
 * that this driver should control
 */ 
NDIS_STATUS
Hw11FindNic(
    _In_  PHW                     Hw,
    _Out_ NDIS_ERROR_CODE*        ErrorCode,
    _Out_ PULONG                  ErrorValue
    );

// 4th call into the HW
NDIS_STATUS
Hw11DiscoverNicResources(
    _In_  PHW                     Hw,
    _In_  PNDIS_RESOURCE_LIST     ResList,
    _Out_ NDIS_ERROR_CODE*        ErrorCode,
    _Out_ PULONG                  ErrorValue
    );

// 5th call into the HW
NDIS_STATUS
Hw11ReadNicInformation(
    _In_  PHW                     Hw
    );

NDIS_STATUS
Hw11Start(
    _In_  PHW                     Hw,
    _Out_ NDIS_ERROR_CODE*        ErrorCode,
    _Out_ PULONG                  ErrorValue
    );

// First disable interrupts and then deregister interrupts
VOID
Hw11Stop(
    _In_  PHW                     Hw,
    _In_  NDIS_HALT_ACTION        HaltAction
    );


NDIS_STATUS
Hw11SelfTest(
    _In_  PHW                     Hw
    );

// Maps to interrupts for PCI
VOID
Hw11DisableHardwareNotifications(
    _In_  PHW                     Hw
    );

// Maps to interrupts for PCI
VOID
Hw11EnableHardwareNotifications(
    _In_  PHW                     Hw
    );


BOOLEAN 
Hw11WEP104Implemented(
    _In_  PHW                     Hw
    );

BOOLEAN 
Hw11WEP40Implemented(
    _In_  PHW                     Hw
    );

BOOLEAN 
Hw11TKIPImplemented(
    _In_  PHW                     Hw
    );

BOOLEAN 
Hw11CCMPImplemented(
    _In_  PHW                     Hw,
    _In_  DOT11_BSS_TYPE          bssType
    );

ULONG
Hw11DefaultKeyTableSize(
    _In_  PHW                     Hw
    );

ULONG
Hw11KeyMappingKeyTableSize(
    _In_  PHW                     Hw
    );

ULONG
Hw11PerStaKeyTableSize(
    _In_  PHW                     Hw
    );

NDIS_STATUS
Hw11Fill80211Attributes(
    _In_  PHW                     Hw,
    _Out_ PNDIS_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES attr
    );

VOID
Hw11Cleanup80211Attributes(
    _In_  PHW                     Hw,
    _In_  PNDIS_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES attr
    );

PDOT11_MAC_ADDRESS
Hw11QueryHardwareAddress(
    _In_  PHW                     Hw
    );

PDOT11_MAC_ADDRESS
Hw11QueryCurrentAddress(
    _In_  PHW                     Hw
    );


PDOT11_MAC_ADDRESS
Hw11QueryMACAddress(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

VOID
Hw11QueryPnPCapabilities(
    _In_  PHW                     Hw,
    _Out_ PNDIS_PNP_CAPABILITIES  NdisPnPCapabilities
    );

VOID
Hw11QueryPMCapabilities(
    _In_  PHW                     Hw,
    _Out_ PNDIS_PM_CAPABILITIES   NdisPmCapabilities
    );

PDOT11_MAC_ADDRESS
Hw11QueryCurrentBSSID(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

    
ULONG
Hw11QueryBeaconPeriod(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

DOT11_PHY_TYPE
Hw11QueryCurrentPhyType(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

BOOLEAN
Hw11QueryShortSlotTimeOptionImplemented(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryShortSlotTimeOptionEnabled(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryDsssOfdmOptionImplemented(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryDsssOfdmOptionEnabled(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryShortPreambleOptionImplemented(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryPbccOptionImplemented(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryChannelAgilityPresent(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );


BOOLEAN
Hw11QueryChannelAgilityEnabled(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryCFPollable(
    _In_  PHW                     Hw
    );

VOID
Hw11QueryBasicRateSet(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PDOT11_RATE_SET         Dot11RateSet,
    _In_  BOOLEAN                 SelectedPhy
    );

VOID
Hw11QueryOperationalRateSet(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PDOT11_RATE_SET         Dot11RateSet,
    _In_  BOOLEAN                 SelectedPhy
    );

NDIS_STATUS
Hw11QuerySupportedPHYTypes(
    _In_  PHW                     Hw,
    _In_  ULONG                   NumMaxEntries,
    _Out_ PDOT11_SUPPORTED_PHY_TYPES Dot11SupportedPhyTypes
    );

NDIS_STATUS
Hw11QuerySupportedChannels(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   PhyId,
    _Out_ PULONG                  ChannelCount,
    _Out_opt_ PULONG                  ChannelList
    );

ULONG
Hw11QueryCurrentChannel(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryATIMWindow(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

NDIS_STATUS
Hw11SetATIMWindow(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   Value,
    _In_  BOOLEAN                 fProgramHardware
    );

VOID
Hw11SetCipher(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 IsUnicast,
    _In_  DOT11_CIPHER_ALGORITHM  AlgoId,
    _In_  BOOLEAN                 fProgramHardware
    );

UCHAR
Hw11SelectTXDataRate(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PDOT11_RATE_SET         PeerRateSet,
    _In_  ULONG                   LinkQuality,
    _In_  BOOLEAN                 fProgramHardware
    );

VOID
Hw11DeleteNonPersistentKey(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 fProgramHardware
    );

VOID
Hw11DeleteNonPersistentMappingKey(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_reads_bytes_(DOT11_ADDRESS_SIZE)  DOT11_MAC_ADDRESS       MacAddr,
    _In_  BOOLEAN                 fProgramHardware
    );

ULONG
Hw11QueryOperatingPhyId(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

BOOLEAN
Hw11IsConnected(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

NDIS_STATUS
Hw11SetOperatingPhyId(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   PhyId,
    _In_  BOOLEAN                 fProgramHardware
    );

USHORT
Hw11QueryRSNCapabilityField(
    _In_  PHW                     Hw
    );

/** Control */

DOT11_PHY_TYPE
Hw11DeterminePHYType(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  DOT11_CAPABILITY        Capability,
    _In_  UCHAR                   Channel
    );


NDIS_STATUS
Hw11ValidateOperationalRates(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   PhyId,
    _In_reads_bytes_(RateSetLength)  PUCHAR                  DataRateSet,
    _In_  ULONG                   RateSetLength
    );

NDIS_STATUS
Hw11SetPowerMgmtMode(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PDOT11_POWER_MGMT_MODE  PMMode,
    _In_  BOOLEAN                 fProgramHardware
    );

VOID
Hw11SetCTSToSelfOption(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 Enable,
    _In_  BOOLEAN                 fProgramHardware
    );

BOOLEAN
Hw11IsKeyMappingKeyAvailable(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_reads_bytes_(DOT11_ADDRESS_SIZE)  DOT11_MAC_ADDRESS       MacAddr
    );

VOID
Hw11StopBSS(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

NDIS_STATUS
Hw11StartBSS(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PMP_BSS_DESCRIPTION     BSSDescription
    );

NDIS_STATUS
Hw11JoinBSS(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PMP_BSS_DESCRIPTION     BSSDescription,
    _In_  ULONG                   JoinFailureTimeout,
    _In_  VNIC11_GENERIC_CALLBACK_FUNC    CompletionHandler,
    _In_  PVOID                   JoinContext
    );

VOID
Hw11NotifyEventConnectionState(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 Connected,
    _In_  ULONG                   StatusType,
    _In_  PVOID                   StatusBuffer,
    _In_  ULONG                   StatusBufferSize,
    _In_  BOOLEAN                 fProgramHardware
    );

// Scan happen on the HW & not the MAC_CONTEXT
NDIS_STATUS
Hw11StartScan(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PMP_SCAN_REQUEST        ScanRequest,
    _In_  VNIC11_GENERIC_CALLBACK_FUNC    CompletionHandler,
    _In_  PVOID                   ScanContext
    );

// Cancel scan happens on the HW & not the MAC context
VOID
Hw11CancelScan(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

/** Send */

BOOLEAN
Hw11CanTransmit(
    _In_  PHW_MAC_CONTEXT         HwMac
    );


VOID
Hw11SendPackets(
    _In_ PHW_MAC_CONTEXT         HwMac,
    _In_ PMP_TX_MSDU             PacketList,
    _In_ ULONG                   SendFlags
    );


/** Receive */

UCHAR
Hw11GetFragmentChannel(
    _In_  PMP_RX_MPDU             Fragment
    );

PVOID
Hw11GetFragmentDataStart(
    _In_  PMP_RX_MPDU             Fragment
    );

ULONG
Hw11GetFragmentDataLength(
    _In_  PMP_RX_MPDU             Fragment
    );

VOID 
Hw11ReturnPackets(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PMP_RX_MSDU             PacketList,
    _In_  ULONG                   ReturnFlags
    );

_Success_(return == NDIS_STATUS_SUCCESS)
NDIS_STATUS
Hw11QueryDot11Statistics(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Inout_updates_bytes_to_(InformationBufferLength, *BytesWritten)
          PDOT11_STATISTICS       Dot11Stats,
    _In_  ULONG                   InformationBufferLength,
    _Out_ PULONG                  BytesWritten,
    _Out_when_invalid_ndis_length_
          PULONG                  BytesNeeded
    );

NDIS_STATUS
Hw11SetPacketFilter(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   PacketFilter,
    _In_  BOOLEAN                 fProgramHardware
    );

BOOLEAN
Hw11QueryNicPowerState(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

NDIS_STATUS
Hw11SetChannel(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   ChannelOrFrequency,
    _In_  ULONG                   PhyId,
    _In_  BOOLEAN                 SwitchPhy,
    _In_  VNIC11_GENERIC_CALLBACK_FUNC    CompletionHandler,
    _In_  PVOID                   ChannelSwitchContext
    );

NDIS_STATUS
Hw11SetDefaultKey(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_reads_bytes_(DOT11_ADDRESS_SIZE)  DOT11_MAC_ADDRESS       MacAddr,
    _In_  ULONG                   KeyID,
    _In_  BOOLEAN                 Persistent,
    _In_  DOT11_CIPHER_ALGORITHM  AlgoId,
    _In_  ULONG                   KeyLength,
    _In_reads_bytes_(KeyLength)  PUCHAR                  KeyValue,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetKeyMappingKey(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_reads_bytes_(DOT11_ADDRESS_SIZE)  DOT11_MAC_ADDRESS       MacAddr,
    _In_  ULONG                   KeyID,
    _In_  BOOLEAN                 Persistent,
    _In_  DOT11_CIPHER_ALGORITHM  AlgoId,
    _In_  ULONG                   KeyLength,
    _In_reads_bytes_(KeyLength)  PUCHAR                  KeyValue,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetOperationMode(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PDOT11_CURRENT_OPERATION_MODE Dot11CurrentOperationMode,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetCurrentBSSType(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  DOT11_BSS_TYPE          Type,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetDesiredPhyIdList(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PULONG                  PhyIDList,
    _In_  ULONG                   PhyIDCount,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetAuthentication(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  DOT11_AUTH_ALGORITHM    AlgoId,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11QueryRecvSensitivityList(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   MaxEntries,
    _Inout_ PDOT11_RECV_SENSITIVITY_LIST Dot11RecvSensitivityList
    );


ULONG
Hw11QueryDefaultKeyId(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QuerySelectedPhyId(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

BOOLEAN
Hw11QueryHardwarePhyState(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

NDIS_STATUS
Hw11SetDefaultKeyId(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   KeyId,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetSelectedPhyId(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   PhyId,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetSafeModeOption(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SafeModeEnabled,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11QueryInterruptModerationSettings(
    _In_  PHW                     Hw,
    _Out_ PNDIS_INTERRUPT_MODERATION_PARAMETERS   IntModParams
    );

NDIS_STATUS
Hw11QueryLinkParameters(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PNDIS_LINK_PARAMETERS   LinkParams
    );

NDIS_STATUS
Hw11QueryDataRateMappingTable(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PDOT11_DATA_RATE_MAPPING_TABLE  DataRateMappingTable,
    _In_  ULONG                   TotalLength
    );

NDIS_STATUS
Hw11QuerySupportedPowerLevels(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PDOT11_SUPPORTED_POWER_LEVELS   Dot11SupportedPowerLevels
    );

NDIS_STATUS
Hw11QuerySupportedRXAntenna(
    _In_  PHW                     Hw,
    _In_  ULONG                   MaxEntries,
    _Out_ PDOT11_SUPPORTED_ANTENNA_LIST   Dot11SupportedAntennaList    
    );

NDIS_STATUS
Hw11QuerySupportedTXAntenna(
    _In_  PHW                     Hw,
    _In_  ULONG                   MaxEntries,
    _Out_ PDOT11_SUPPORTED_ANTENNA_LIST   Dot11SupportedAntennaList
    );

NDIS_STATUS
Hw11QueryDiversitySelectionRX(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy,
    _In_  ULONG                   MaxEntries,
    _Out_ PDOT11_DIVERSITY_SELECTION_RX_LIST Dot11DiversitySelectionRXList
    );

NDIS_STATUS
Hw11QueryRegDomainsSupportValue(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy,
    _In_  ULONG                   MaxEntries,
    _Out_ PDOT11_REG_DOMAINS_SUPPORT_VALUE    Dot11RegDomainsSupportValue
    );

NDIS_STATUS
Hw11SetInterruptModerationSettings(
    _In_  PHW                     Hw,
    _In_  PNDIS_INTERRUPT_MODERATION_PARAMETERS   IntModParams
    );

NDIS_STATUS
Hw11SetLinkParameters(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PNDIS_LINK_PARAMETERS   LinkParams,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetMulticastList(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PVOID                   AddressBuffer,
    _In_  ULONG                   AddressBufferLength,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetOperationalRateSet(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PDOT11_RATE_SET         Dot11RateSet,
    _In_  BOOLEAN                 SelectedPhy,
    _In_  BOOLEAN                 fProgramHardware 
    );

ULONG
Hw11QueryLookahead(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QueryHardwareStatus(
    _In_  PHW                     Hw
    );

ULONG
Hw11QueryReceiveBufferSpace(
    _In_  PHW                     Hw
    );

ULONG
Hw11QueryTransmitBufferSpace(
    _In_  PHW                     Hw
    );

NDIS_STATUS
Hw11QueryVendorDescription(
    _In_                                    PHW     Hw,
    _Out_writes_bytes_(InformationBufferLength)  PVOID   InformationBuffer,
    _In_                                    ULONG   InformationBufferLength,
    _Out_                                   PULONG  BytesWritten,
    _Out_                                   PULONG  BytesNeeded
    );

ULONG
Hw11QueryVendorId(
    _In_  PHW                     Hw
     );

NDIS_STATUS
Hw11QueryCurrentOptionalCapability(
    _In_  PHW                     Hw,
    _In_ PDOT11_CURRENT_OPTIONAL_CAPABILITY   Dot11CurrentOptionalCapability    
    );

ULONG
Hw11QueryMaxMPDULength(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

NDIS_STATUS
Hw11QueryMulticastList(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PVOID                   AddressBuffer,
    _In_  ULONG                   AddressBufferLength,
    _Out_ PULONG                  BytesWritten,
    _Out_ PULONG                  BytesNeeded
    );

NDIS_STATUS
Hw11QueryOperationModeCapability(
    _In_  PHW                     Hw,
    _Out_ PDOT11_OPERATION_MODE_CAPABILITY    Dot11OpModeCapability
    );

NDIS_STATUS
Hw11QueryOptionalCapability(
    _In_  PHW                     Hw,
    _Out_ PDOT11_OPTIONAL_CAPABILITY  Dot11OptionalCapability
    );

ULONG
Hw11QueryRFUsage(
    _In_  PHW                     Hw
    );

NDIS_STATUS
Hw11QuerySupportedDataRatesValue(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PDOT11_SUPPORTED_DATA_RATES_VALUE_V2    Dot11SupportedDataRatesValue,
    _In_  BOOLEAN                 SelectedPhy 
    );

ULONG
Hw11QueryCCAModeSupported(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

NDIS_STATUS
Hw11QueryCountryString(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _Out_ PDOT11_COUNTRY_OR_REGION_STRING Dot11CountryString
    );

ULONG
Hw11QueryCurrentCCAMode(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryCurrentFrequency(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryCurrentRegDomain(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QueryCurrentTXPowerLevel(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

DOT11_DIVERSITY_SUPPORT
Hw11QueryDiversitySupport(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryEDThreshold(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryErpPbccOptionEnabled(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

BOOLEAN
Hw11QueryErpPbccOptionImplemented(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryFragmentationThreshold(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QueryFrequencyBandsSupported(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryLongRetryLimit(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QueryMaxReceiveLifetime(
    _In_  PHW                     Hw
    );

ULONG
Hw11QueryMaxTransmitMSDULifetime(
    _In_  PHW                     Hw
    );

BOOLEAN
Hw11QueryMultiDomainCapabilityEnabled(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

BOOLEAN
Hw11QueryMultiDomainCapabilityImplemented(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QueryRTSThreshold(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

ULONG
Hw11QueryShortRetryLimit(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

DOT11_TEMP_TYPE
Hw11QueryTempType(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 SelectedPhy
    );

ULONG
Hw11QueryPacketFilter(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

DOT11_CIPHER_ALGORITHM
Hw11QueryUnicastCipher(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

DOT11_CIPHER_ALGORITHM
Hw11QueryMulticastCipher(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

DOT11_AUTH_ALGORITHM
Hw11QueryAuthentication(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

UCHAR
Hw11QueryDefaultKeyMask(
    _In_  PHW_MAC_CONTEXT         HwMac
    );
    
NDIS_STATUS
Hw11SetLookahead(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   Lookahead,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetNicPowerState(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 PowerState,
    _In_  BOOLEAN                 SelectedPhy,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetBeaconPeriod(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   BeaconPeriod,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetFragmentationThreshold(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   FragmentationThreshold,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11SetMultiDomainCapabilityEnabled(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  BOOLEAN                 MultiDomainCapabilityEnabled,
    _In_  BOOLEAN                 fProgramHardware
    );
NDIS_STATUS
Hw11SetRTSThreshold(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  ULONG                   RTSThreshold,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS
Hw11CanTransitionPower(
    _In_  PHW                     Hw,
    _In_  NDIS_DEVICE_POWER_STATE NewDevicePowerState
    );

NDIS_STATUS 
Hw11SetPower(
    _In_  PHW                     Hw,
    _In_  NDIS_DEVICE_POWER_STATE NewDevicePowerState
    );

NDIS_STATUS
Hw11CtxSStart(
    _In_  PHW                     Hw
    );

VOID
Hw11CtxSComplete(
    _In_  PHW                     Hw
    );


NDIS_STATUS
Hw11SendNullPkt(
    _In_ PHW_MAC_CONTEXT          MacContext,
    _In_ BOOLEAN                  PowerBitSet
    );

NDIS_STATUS
Hw11SetBeaconEnabledFlag(    
    _In_  PHW_MAC_CONTEXT         HwMac,
    BOOLEAN                     BeaconEnabled,
    BOOLEAN                     fProgramHardware
    );

NDIS_STATUS 
Hw11SetBeaconIE(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PVOID                   pBeaconIEBlob,
    _In_  ULONG                   uBeaconIEBlobSize,
    _In_  BOOLEAN                 fProgramHardware
    );

NDIS_STATUS 
Hw11SetProbeResponseIE(
    _In_  PHW_MAC_CONTEXT         HwMac,
    _In_  PVOID                   pResponseIEBlob,
    _In_  ULONG                   uResponseIEBlobSize,
    _In_  BOOLEAN                 fProgramHardware
    );

DOT11_BSS_TYPE
Hw11QueryCurrentBSSType(
    _In_  PHW_MAC_CONTEXT         HwMac
    );

BOOLEAN
Hw11ArePktsPending(
    _In_  PHW                     Hw
    );

Our Services

  • What our customers say about us?

© 2011-2025 All Rights Reserved. Joya Systems. 4425 South Mopac Building II Suite 101 Austin, TX 78735 Tel: 800-DEV-KERNEL

Privacy Policy. Terms of use. Valid XHTML & CSS