驱动程序(3) WDF下DMA传输的驱动程序代码详细说明之头文件

本文详细介绍了驱动程序中五个关键头文件的作用和内容,包括device.h中声明的interrupt和device上下文结构体及函数,public.h中的设备GUID接口和DeviceIoControl控制关键字,queue.h中涉及的消息队列函数,以及driver.h和trace.h的基本功能。
摘要由CSDN通过智能技术生成

之前提到根据KMDF模板生成的程序里主要有5个头文件和3个源文件,接下来的几篇文章则会对这些文件详细说明,一个驱动程序是怎样写成的。这一篇主要说明几个头文件。

1. device.h

/*++
Module Name:
	device.h
Abstract:
	This file contains the device definitions.
Environment:
	Kernel-mode Driver Framework
--*/
#include "Public.h"
#define LED_MEMORY_OFFSET 0xC0000000
#define DataTransferedStored_Address 0x100;
#define DataTransfered_Bytes 0x10;          //定义一些后续程序需求的参数

typedef struct _INTERRUPT_CONTEXT INTERRUPT_CONTEXT, *PINTERRUPT_CONTEXT;//中断上下文的机构提
typedef struct _DEVICE_CONTEXT DEVICE_CONTEXT, *PDEVICE_CONTEXT;//设备上下文的结构体

struct _INTERRUPT_CONTEXT
{
   
	BOOLEAN State;
	PDEVICE_CONTEXT DeviceContext;
};

struct _DEVICE_CONTEXT
{
   
	//设备资源相关参数
	ULONG Counter_i;
	PVOID MemBaseAddress0;  //when i=0, it gets BAR0 start virtual address   内存映射地址
	PVOID MemBaseAddress1;  //when i=2, it gets BAR1 start virtual address 
	PVOID MemBaseAddress2;  //when i=4, it gets BAR2 start virtual address 
	PVOID IoBaseAddress;    //I/O映射地址
	ULONG PhysicalAddressRegister0;  //store the BAR0 start physical address
	ULONG PhysicalAddressRegister1;  //store the BAR1 start physical address
	ULONG PhysicalAddressRegister2;  //store the BAR2 start physical address
	ULONG MemLength0;               //映射后BAR的长度
	ULONG Me
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值