Windows API 设备驱动管理与内核通信

简介: 关于驱动和内核的学习介绍,[2]中较为详细。这里只简述。    应用程序可以将设备驱动程序加载入内核。可以对已经加载了的设备驱动程序发送请求,进行控制或与内核程序进行通信,传输数据。 设备管理[1] 列举设备 SetupDiCreateDeviceInfoList函数创建一个空的设备信息列表。

    关于驱动和内核的学习介绍,[2]中较为详细。这里只简述。    <?xml:namespace prefix = o />

应用程序可以将设备驱动程序加载入内核。可以对已经加载了的设备驱动程序发送请求,进行控制或与内核程序进行通信,传输数据。

设备管理[1]

列举设备

SetupDiCreateDeviceInfoList函数创建一个空的设备信息列表。

SetupDiGetClassDevsEx函数获取指定类型GUID的所有设备的信息列表。

SetupDiEnumDevieeInterfaces函数是从已经获取的设备接口列表信息中获取信息并使用结构保存,每调用一次会依次返回一个设备接口的信息。

    通过SetupDiEnumDeviceInterfaces函数所获取的信息还不够丰富,将其作为参数,传递给SetupDiGetDeviceRegistryPropertySetupDiGetDeviceInterfaceDetail等函数,可以获取设备接口信息的细节。

    SetupDiCreateDeviceInfoList分配的内存需要通过Setup Di DestroyDeviceInfoList函数释放内存。

监控设备的加载和卸载

注册“设备通知”使用API函数RegisterDeviceNotification

    如果一个驱动程序需要和用户态程序进行通信,需要创建设备对象和符号链接。所创建的符号链接与用户态驱动控制程序使用CreateFile所打开的设备名需对应。

    创建设备对象和符号连接使用函数IoCreateDeviceIoCreateSymbolicLink

参考

[1] 精通Windows API 函数、接口、编程实例

[2] http://www.cnblogs.com/mydomain/category/264964.html

目录
相关文章
|
3月前
|
人工智能 Java API
ChatClient:探索与AI模型通信的Fluent API
【11月更文挑战第22天】随着人工智能(AI)技术的飞速发展,越来越多的应用场景开始融入AI技术以提升用户体验和系统效率。在Java开发中,与AI模型通信成为了一个重要而常见的需求。为了满足这一需求,Spring AI引入了ChatClient,一个提供流畅API(Fluent API)的客户端,用于与各种AI模型进行通信。本文将深入探讨ChatClient的底层原理、业务场景、概念、功能点,并通过Java代码示例展示如何使用Fluent API与AI模型进行通信。
85 8
|
3月前
|
人工智能 Java API
Spring AI Fluent API:与AI模型通信的流畅体验
【11月更文挑战第24天】随着人工智能(AI)技术的飞速发展,越来越多的应用场景开始融入AI技术以提升用户体验和系统效率。在Java开发中,与AI模型通信成为了一个重要而常见的需求。为了满足这一需求,Spring AI引入了ChatClient,一个提供流畅API(Fluent API)的客户端,用于与各种AI模型进行通信。本文将深入探讨ChatClient的底层原理、业务场景、概念、功能点,并通过Java代码示例展示如何使用Fluent API与AI模型进行通信。
72 0
|
4月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
123 9
|
5月前
|
网络协议 API Windows
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
|
6月前
|
Kubernetes 监控 API
在k8S中,各模块如何与API Server进行通信的?
在k8S中,各模块如何与API Server进行通信的?
|
7月前
|
消息中间件 API 数据库
在微服务架构中,每个服务通常都是一个独立运行、独立部署、独立扩展的组件,它们之间通过轻量级的通信机制(如HTTP/RESTful API、gRPC等)进行通信。
在微服务架构中,每个服务通常都是一个独立运行、独立部署、独立扩展的组件,它们之间通过轻量级的通信机制(如HTTP/RESTful API、gRPC等)进行通信。
|
8月前
|
Windows
【Windows内核驱动函数(1)】IoCreateSymbolicLink()-----创建符号链接函数
【Windows内核驱动函数(1)】IoCreateSymbolicLink()-----创建符号链接函数
|
8月前
|
Windows
windows系统bat批处理 打开设备管理器
windows系统bat批处理 打开设备管理器
144 1
|
7月前
|
存储 数据库 数据安全/隐私保护
Windows系统部署AnyTXT Searcher并实现远程搜索本地内网设备中文件
Windows系统部署AnyTXT Searcher并实现远程搜索本地内网设备中文件
|
7月前
|
Windows 内存技术
nvm 管理和切换 node版本(windows操作系统)
nvm 管理和切换 node版本(windows操作系统)
108 0

热门文章

最新文章