summaryrefslogtreecommitdiff
path: root/network/wlan/wificx/drivercode/adapter.h
blob: 0b7aa09319d0e6d0683ef8d7fb546d9c31371e18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright (C) Microsoft Corporation. All rights reserved.
#pragma once
#include "device.h"
#include "netvadapter.h"

// for STA TX DEMUX
#define MaxNumOfPeers 1

// Context for each "Wdi Port"[NetAdapter] instance.
// Each NetAdapter instance corresponds to an IP interface
typedef struct _WIFI_IHV_NETADAPTER_CONTEXT
{
    PWIFI_IHV_DEVICE_CONTEXT WifiDeviceContext; // Wdf Ihv device context
    NETADAPTER NetAdapter;                  // NetAdapter object
} WIFI_IHV_NETADAPTER_CONTEXT, * PWIFI_IHV_NETADAPTER_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WIFI_IHV_NETADAPTER_CONTEXT, WifiGetIhvNetAdapterContext);

class WifiNetvAdapter : public NetvAdapter
{
public:
    WifiNetvAdapter(NETADAPTER Handle, WDFDEVICE Device);

    NTSTATUS
        Initialize();

    NTSTATUS
        AdapterStart();

    NTSTATUS
        CreateRxQueue(NETRXQUEUE_INIT* NetRxQueueInit);

    NTSTATUS
        CreateTxQueue(NETTXQUEUE_INIT* NetTxQueueInit);

    void Destroy(void);

    bool CanReportWifiWakeSourceTypeClientDriverDiagnostic;

};

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WifiNetvAdapter, WifiNetvAdapterGetContext);