📄 dt2851.h
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0047)http://www.vu.union.edu/~dixonw/driver/dt2851.h -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><XMP>#include <ntddk.h>
#include <string.h>
#include <devioctl.h>
#include "DT2851IOCTL.h" //define the IOCTLs
// NT device name
#define DT2851_DEVICE_NAME L"\\Device\\DT2851"
// DOS device name
#define DOS_DT2851_DEVICE_NAME L"\\DosDevices\\DT2851"
#define BASE_PORT 0x230 // Default port address
#define NUMBER_PORTS 16 // Number of I/O ports
#define BASE_ADDRESS (12*1024*1024) // Default base memory address
#define MEMORY_SIZE (512*1024) // 512 Kbyte of DT2851 physical Memory
#define MEMORY_ADDRESS 0
#define PORT_ADDRESS 1
// driver local data structure specific to each device object
typedef struct _DT2851_EXTENSION
{
ULONG deviceType; // Our private Device Type
BOOLEAN portWasMapped; // If TRUE, we have to unmap on unload
PVOID portBase; // base port address
ULONG portCount; // Count of I/O addresses used.
ULONG portMemoryType; // HalTranslateBusAddress MemoryType
PVOID baseAddress; // base memory address
PDEVICE_OBJECT deviceObject; // The DT2851 device object.
} DT2851_EXTENSION, *PDT2851_EXTENSION;
///////////////////////////////////////////////////////////////////////////////
NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING registryPath );
NTSTATUS DT2851Dispatch( IN PDEVICE_OBJECT pDO,
IN PIRP pIORequestPacket );
NTSTATUS DT2851ReadPort( IN PDT2851_EXTENSION pLDI,
IN PIRP pIORequestPacket,
IN PIO_STACK_LOCATION pIrpStack );
NTSTATUS DT2851WritePort(IN PDT2851_EXTENSION pLDI,
IN PIRP pIORequestPacket,
IN PIO_STACK_LOCATION pIrpStack );
NTSTATUS DT2851ReadMemory(IN PDT2851_EXTENSION pLDI,
IN PIRP pIORequestPacket,
IN PIO_STACK_LOCATION pIrpStack );
NTSTATUS DT2851WriteMemory(IN PDT2851_EXTENSION pLDI,
IN PIRP pIORequestPacket,
IN PIO_STACK_LOCATION pIrpStack );
NTSTATUS DT2851FillMemory(IN PDT2851_EXTENSION pLDI,
IN PIRP pIORequestPacket,
IN PIO_STACK_LOCATION pIrpStack );
VOID DT2851Unload( IN PDRIVER_OBJECT pDriverObject );
</XMP></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -