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

📄 usbloader.h

📁 USB2.0原理与工程开发光盘(第二版)
💻 H
字号:

#ifndef USBLOADER_H
#define USBLOADER_H
#endif

#include "wdm.h"
#include "usbdi.h"
#include "usbdlib.h"

#include <resource.h>

#ifndef _BYTE_DEFINED
#define _BYTE_DEFINED
typedef unsigned char BYTE;
#endif // !_BYTE_DEFINED

#ifndef _WORD_DEFINED
#define _WORD_DEFINED
typedef unsigned short WORD;
#endif // !_WORD_DEFINED


//#ifdef DRIVER

#define ANCHOR_LOAD_INTERNAL  0xA0

#define ANCHOR_LOAD_EXTERNAL  0xA3

#define MAX_INTERNAL_ADDRESS  0x1B3F

#define INTERNAL_RAM(address) ((address <= MAX_INTERNAL_ADDRESS) ? 1 : 0)

#define CPUCS_REG    0x7F92

typedef struct _DEVICE_EXTENSION
{

   PDEVICE_OBJECT PhysicalDeviceObject; 

   PDEVICE_OBJECT		LowerDeviceObject;		

   LONG Usages;

   KEVENT evRemove;

   BOOLEAN Removing;

} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

#define MAX_INTEL_HEX_RECORD_LENGTH 16

typedef struct _INTEL_HEX_RECORD
{
   BYTE  Length;
   WORD  Address;
   BYTE  Type;
   BYTE  Data[MAX_INTEL_HEX_RECORD_LENGTH];
} INTEL_HEX_RECORD, *PINTEL_HEX_RECORD;


NTSTATUS TestAddDevice(IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT PhysicalDeviceObject);
VOID TestDrvUnload(IN PDRIVER_OBJECT DriverObject);
NTSTATUS TestPnpIrp(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
BOOLEAN LockDevice(IN PDEVICE_OBJECT fdo);
void UnlockDevice(PDEVICE_OBJECT fdo);
NTSTATUS CompleteRequest(IN PIRP Irp,IN NTSTATUS status,IN ULONG info);
NTSTATUS UsbCallUSBDI(IN PDEVICE_OBJECT DeviceObject,IN PURB Urb);

//#endif      //DRIVER section

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -