www.pudn.com > data-bulktransfer.rar > usbloader.h
#ifndef USBLOADER_H #define USBLOADER_H #endif #include "wdm.h" #include "usbdi.h" #include "usbdlib.h" #include#ifndef _BYTE_DEFINED #define _BYTE_DEFINED typedef unsigned char BYTE; #endif #ifndef _WORD_DEFINED #define _WORD_DEFINED typedef unsigned short WORD; #endif #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