From 90a7fc175216f84a11cda994958cd1634341783f Mon Sep 17 00:00:00 2001 From: "Yang You (UU)" Date: Sun, 16 Nov 2025 12:38:39 -0800 Subject: have the wifiHAL living with the wdfdevice addtional context memory --- network/wlan/WIFICX/drivercode/device.cpp | 77 ++++++++----------------------- 1 file changed, 18 insertions(+), 59 deletions(-) (limited to 'network/wlan/WIFICX/drivercode/device.cpp') diff --git a/network/wlan/WIFICX/drivercode/device.cpp b/network/wlan/WIFICX/drivercode/device.cpp index a0614807..9ea10fd1 100644 --- a/network/wlan/WIFICX/drivercode/device.cpp +++ b/network/wlan/WIFICX/drivercode/device.cpp @@ -11,25 +11,18 @@ NTSTATUS EvtDevicePrepareHardware(WDFDEVICE device, WDFCMRESLIST resourcesRaw, W { UNREFERENCED_PARAMETER(resourcesRaw); UNREFERENCED_PARAMETER(resourcesTranslated); - UNREFERENCED_PARAMETER(device); - NTSTATUS status = STATUS_SUCCESS; - //status = WifiCxTestSetDeviceCapabilities(device); - - if (!NT_SUCCESS(status)) - { - WFCError("%!FUNC!: WifiCxTestSetDeviceCapabilities failed with %!STATUS!", status); - return status; - } + WX_RETURN_NTSTATUS_IF_NOT_NT_SUCCESS_MSG( + WifiHAL::_Create(device), + "WifiHAL::_Create failed"); WFCInfo("Device=0x%p", device); - return status; + return STATUS_SUCCESS; } _Use_decl_annotations_ NTSTATUS EvtDeviceReleaseHardware(WDFDEVICE device, WDFCMRESLIST resourcesTranslated) { - UNREFERENCED_PARAMETER(device); UNREFERENCED_PARAMETER(resourcesTranslated); WFCInfo("Device=0x%p", device); @@ -40,24 +33,9 @@ NTSTATUS EvtDeviceReleaseHardware(WDFDEVICE device, WDFCMRESLIST resourcesTransl _Use_decl_annotations_ void EvtDeviceSurpriseRemoval(WDFDEVICE device) { - UNREFERENCED_PARAMETER(device); WFCInfo("Device=0x%p is surprise removed", device); } -static NTSTATUS WifiInitAdapterContext(_In_ WDFDEVICE Device, _In_ NETADAPTER NetAdapter) -{ - PWIFI_IHV_DEVICE_CONTEXT deviceContext = WifiGetIhvDeviceContext(Device); - PWIFI_IHV_NETADAPTER_CONTEXT netAdapterContext = WifiGetIhvNetAdapterContext(NetAdapter); - NTSTATUS status = STATUS_SUCCESS; - if (deviceContext->primaryStaAdapter == WDF_NO_HANDLE) - { - deviceContext->primaryStaAdapter = NetAdapter; - } - - netAdapterContext->WifiDeviceContext = deviceContext; - - return status; -} _Use_decl_annotations_ NTSTATUS EvtWifiDeviceCreateAdapter(WDFDEVICE Device, NETADAPTER_INIT* AdapterInit) @@ -73,39 +51,20 @@ NTSTATUS EvtWifiDeviceCreateAdapter(WDFDEVICE Device, NETADAPTER_INIT* AdapterIn WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&adapterAttributes, WIFI_IHV_NETADAPTER_CONTEXT); adapterAttributes.EvtCleanupCallback = EvtAdapterCleanup; - NETADAPTER netAdapter; - NTSTATUS ntStatus = NetAdapterCreate(AdapterInit, &adapterAttributes, &netAdapter); - if (!NT_SUCCESS(ntStatus)) - { - WFCError("%!FUNC!: NetAdapterCreate failed, status=0x%x", ntStatus); - return ntStatus; - } - - ntStatus = WifiAdapterInitialize(netAdapter); - ASSERT(NT_SUCCESS(ntStatus)); - if (!NT_SUCCESS(ntStatus)) - { - WFCError("%!FUNC!: WifiAdapterInitialize failed with %!STATUS!", ntStatus); - return ntStatus; - } - - ntStatus = WifiInitAdapterContext(Device, netAdapter); - ASSERT(NT_SUCCESS(ntStatus)); - if (!NT_SUCCESS(ntStatus)) - { - WFCError("%!FUNC!: WifiInitAdapterContext failed with %!STATUS!", ntStatus); - return ntStatus; - } - - ntStatus = WifiCxTestAdapterStart(netAdapter); - ASSERT(NT_SUCCESS(ntStatus)); - if (!NT_SUCCESS(ntStatus)) - { - WFCError("%!FUNC!: WifiCxTestAdapterStart failed with %!STATUS!", ntStatus); - return ntStatus; - } - - return ntStatus; + NETADAPTER netAdapter{}; + WX_RETURN_NTSTATUS_IF_NOT_NT_SUCCESS_MSG( + NetAdapterCreate(AdapterInit, &adapterAttributes, &netAdapter), "Failed to create NetAdapter"); + + WX_RETURN_NTSTATUS_IF_NOT_NT_SUCCESS_MSG( + WifiAdapterInitialize(netAdapter), "Failed to initialize WifiAdapter"); + + WX_RETURN_NTSTATUS_IF_NOT_NT_SUCCESS_MSG( + WifiIhvInitAdapterContext(Device, netAdapter), "Failed to initialize WifiAdapterContext"); + + WX_RETURN_NTSTATUS_IF_NOT_NT_SUCCESS_MSG( + WifiIhvAdapterStart(netAdapter), "Failed to start WifiIhvAdapter"); + + return STATUS_SUCCESS; } _Use_decl_annotations_ -- cgit v1.3.1