当前位置: 首页 > news >正文

windows网络适配器驱动开发-开发 WiFiCx 客户端驱动程序(三)

Wi-Fi 直接设备功能

WIFI_WIFIDIRECT_CAPABILITIES 表示以前通过WDI_P2P_CAPABILITIES和WDI_AP_CAPABILITIES TLV 在 WDI 中设置的所有相关功能。 客户端驱动程序调用 WifiDeviceSetWiFiDirectCapabilities ,以在设置设备功能阶段向 WiFiCx 报告 Wi-Fi 直接功能。

WIFI_WIFIDIRECT_CAPABILITIES wfdCapabilities = {}; // Set values wfdCapabilities.ConcurrentGOCount = 1; wfdCapabilities.ConcurrentClientCount = 1; // Report capabilities to WiFiCx WifiDeviceSetWiFiDirectCapabilities(Device, &wfdCapabilities);
Wi-Fi“WfdDevice”的直接事件回调

对于 Wi-Fi Direct,“WfdDevice”是一个没有数据路径功能的控件对象。 因此,WiFiCx 具有名为 WIFIDIRECTDEVICE 的新 WDFObject。 在其 EvtWifiDeviceCreateWifiDirectDevice 回调函数中,客户端驱动程序:

  • 调用 WifiDirectDeviceCreate 以创建 WIFIDIRECTDEVICE 对象。
  • 调用 WifiDirectDeviceInitialize 以初始化对象。
  • 调用 WifiDirectDeviceGetPortId 来确定端口 ID(在命令消息中使用)。

此示例演示如何创建和初始化 WIFIDIRECTDEVICE 对象。

NTSTATUS EvtWifiDeviceCreateWifiDirectDevice( WDFDEVICE Device, WIFIDIRECT_DEVICE_INIT * WfdDeviceInit ) { WDF_OBJECT_ATTRIBUTES wfdDeviceAttributes; WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&wfdDeviceAttributes, WIFI_WFDDEVICE_CONTEXT); wfdDeviceAttributes.EvtCleanupCallback = EvtWifiDirectDeviceContextCleanup; WIFIDIRECTDEVICE wfdDevice; NTSTATUS ntStatus = WifiDirectDeviceCreate(WfdDeviceInit, &wfdDeviceAttributes, &wfdDevice); if (!NT_SUCCESS(ntStatus)) { TraceEvents(TRACE_LEVEL_ERROR, DBG_DEVICE, "%!FUNC!: WifiDirectDeviceCreate failed, status=0x%x\n", ntStatus); return ntStatus; } ntStatus = WifiDirectDeviceInitialize(wfdDevice); if (!NT_SUCCESS(ntStatus)) { TraceEvents(TRACE_LEVEL_ERROR, DBG_DEVICE, "%!FUNC!: WifiDirectDeviceInitialize failed with %!STATUS!\n", ntStatus); return ntStatus; } ntStatus = ClientDriverInitWifiDirectDeviceContext( Device, wfdDevice, WifiDirectDeviceGetPortId(wfdDevice)); if (!NT_SUCCESS(ntStatus)) { TraceEvents(TRACE_LEVEL_ERROR, DBG_DEVICE, "%!FUNC!: ClientDriverInitWifiDirectDeviceContext failed with %!STATUS!\n", ntStatus); return ntStatus; } return ntStatus; }
http://www.jsqmd.com/news/1257249/

相关文章:

  • 广州家居建材材料服务企业做GEO服务商怎么选?2026年五家服务商深度测评与靠谱选型指南 - 小随科技
  • 手把手教你用ChatGPT+Runway+CapCut搭建个人AI短视频工厂:1人日均产出27条优质内容(含自动化发布SOP)
  • 2026北京名包回收哪家口碑好?尚典爱马仕/香奈儿鉴定实力过硬,这份本地测评榜单给出答案 - 奢品流通笔谈
  • 【OpenAirInterface5g】高层模块接口及itti实体线程创建
  • 手把手带你跑通AI产品闭环:从Prompt工程→LLM服务封装→Stripe收款→用户行为埋点,1套代码全部搞定(含开源仓库链接)
  • 2026 年现阶段,永嘉热门的水底无人机搜寻打捞服务团队哪家强,水下宝藏的秘密:无人机如何颠覆传统搜寻?-潜殿水下打捞 - 行业甄选官
  • 【详细】FreeRTOS任务的内部机制
  • SharpKeys终极指南:解决Windows键位映射延迟的完整方案
  • 广州快消消费品牌企业做GEO服务商怎么选?2026靠谱选型指南与五家代表性服务商深度测评 - 小随科技
  • 社交泛娱乐出海如何抓住AIGC?我在融云WICC上看到了答案
  • 从零开始掌握微信好友自动化添加工具:高效批量添加解决方案
  • 广州软件SaaS企业做GEO服务商怎么选?2026年五家代表性机构靠谱选型指南 - 小随科技
  • AI生图总是“多一只手”?教你如何用 Negative Prompt(反向提示词)拯救画面
  • 2026汽车钣金加工砂纸厂家盘点:金相检测砂纸生产厂家+汽车油漆打磨砂纸厂家+汽车轮毂轮纸生产厂家+汽车维修砂纸厂家推荐 - 栗子测评
  • 2026北京卡地亚回收哪家口碑好?尚典蓝气球鉴定实力过硬,这份本地测评榜单给出答案 - 奢品流通笔谈
  • GLM-OCR轻量级专业模型部署与优化指南
  • 爽提:以“高效智能”赋能“高校传统”食堂运营转型升级
  • Diablo Edit2终极指南:5分钟完成暗黑2角色定制,彻底告别枯燥刷怪
  • RAG系统的工程化之路:检索、生成与质量评估
  • 广州本地生活服务企业做GEO服务商怎么选?2026靠谱选型指南与五家代表性服务商深度测评 - 科技快讯
  • 广州人力资源服务企业做GEO服务商怎么选?2026年本地靠谱选型指南与五家服务商深度测评 - 小随科技
  • 5分钟零成本搭建:如何用AI股票分析工具让投资决策更简单?
  • 如何为你的 AI 漫剧设计一个让人一眼记住的“反派角色”?
  • AI 为什么总喜欢写防御性代码?
  • FreeRTOS临界资源访问方法
  • Unity3D协程的使用
  • 车衣防晒膜建筑遮阳膜座椅镀膜厂家哪家好?2026欧德龙(杭州保通科技实业有限公司)靠谱功能膜甄选:汽车车衣生产制造/车窗 - 栗子测评
  • DETR训练实践以及自动预标注脚本、测试可视化脚本
  • 2026英语培训行业口碑靠谱知名GEO优化公司筛选与推荐 头部服务商对比+合作避坑全指南 - 行业观察网
  • 2026年7月海尔冰箱全国统一24小时售后服务专属热线电话公示最新说明 - 全国网点服务中心