⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dt2851.h

📁 DT2851图形卡NT驱动源码
💻 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 + -