资源简介
USB过滤驱动程序,通过USB的PID和VID判断是否是合法U盘。
代码片段和文件信息
#include “stddcls.h“
#include “driver.h“
#include
#include
#include
#include
#include
NTSTATUS AddDevice(IN PDRIVER_object Driverobject IN PDEVICE_object pdo);
VOID DriverUnload(IN PDRIVER_object fido);
NTSTATUS DispatchAny(IN PDEVICE_object fido IN PIRP Irp);
NTSTATUS DispatchPower(IN PDEVICE_object fido IN PIRP Irp);
NTSTATUS DispatchPnp(IN PDEVICE_object fido IN PIRP Irp);
NTSTATUS DispatchWmi(IN PDEVICE_object fido IN PIRP Irp);
ULONG GetDeviceTypeToUse(PDEVICE_object pdo);
NTSTATUS PnpStartDevice(IN PDEVICE_object fido IN PIRP Irp);
NTSTATUS ReadDeviceDescriptor(IN PDEVICE_object fido);
NTSTATUS CallRemoveUSBDevice(IN PDEVICE_object fido);
NTSTATUS StartDeviceCompletionRoutine(PDEVICE_object fido PIRP Irp PDEVICE_EXTENSION pdx);
NTSTATUS StartPnPQueryDeviceCompletionRoutine(PDEVICE_object fido PIRP Irp PDEVICE_EXTENSION pdx);
NTSTATUS QueryDeviceRelationCompletionRoutine(PDEVICE_object fido PIRP Irp PDEVICE_EXTENSION pdx);
NTSTATUS UsageNotificationCompletionRoutine(PDEVICE_object fido PIRP Irp PDEVICE_EXTENSION pdx);
LONG BulkUsb_IoDecrement(IN OUT PDEVICE_EXTENSION DeviceExtension);
LONG BulkUsb_IoIncrement(IN OUT PDEVICE_EXTENSION DeviceExtension);
int QueryRegDWORD(UNICODE_STRING *pValueName ULONG *pReturn);
int SetRegDWORD(UNICODE_STRING *pValueName ULONG nSetValue);
bool USBDeviceIsRegist(ULONG vid_pid);
///////////////////////////////////////////////////////////////////////////////
#pragma INITCODE
extern “C“ NTSTATUS DriverEntry(IN PDRIVER_object Driverobject
IN PUNICODE_STRING RegistryPath)
{ // DriverEntry
KdPrint((DRIVERNAME “ - Entering DriverEntry: Driverobject %8.8lX\n“ Driverobject));
// Initialize function pointers
UNICODE_STRING ValueName;
RtlInitUnicodeString( &ValueName L“FilterIsRun“);
SetRegDWORD(&ValueName 0);
Driverobject->DriverUnload = DriverUnload;
Driverobject->DriverExtension->AddDevice = AddDevice;
for (int i = 0; i < arraysize(Driverobject->MajorFunction); ++i)
Driverobject->MajorFunction[i] = DispatchAny;
Driverobject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
Driverobject->MajorFunction[IRP_MJ_PNP] = DispatchPnp;
Driverobject->MajorFunction[IRP_MJ_SCSI] = DispatchForSCSI;
return STATUS_SUCCESS;
} // DriverEntry
///////////////////////////////////////////////////////////////////////////////
#pragma PAGEDCODE
VOID DriverUnload(IN PDRIVER_object Driverobject)
{ // DriverUnload
UNICODE_STRING ValueName;
PAGED_CODE();
RtlInitUnicodeString( &ValueName L“FilterIsRun“);
SetRegDWORD(&ValueName 0);
KdPrint((DRIVERNAME “ - Entering DriverUnload: Driverobject %8.8lX\n“ Driverobject));
} // DriverUnload
///////////////////////////////////////////////////////////////////////////////
NTSTATUS AddDevice(IN PDRIVER_object Driverobject IN PDEVICE_object pdo)
{ // AddDevice
PAGED_CODE();
NTSTATUS status;
UNICODE_STRING ValueName;
ULONG dwReturn
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-04-28 21:07 usbfilter\
文件 1323 2010-09-14 14:16 usbfilter\Driver.h
文件 32867 2010-10-11 11:49 usbfilter\DriverEntry.cpp
文件 3242 2010-09-14 00:51 usbfilter\MyFilter.dsp
文件 539 2010-10-11 11:21 usbfilter\MyFilter.dsw
文件 50176 2012-04-28 21:07 usbfilter\MyFilter.ncb
文件 687616 2012-04-28 21:07 usbfilter\MyFilter.opt
文件 916 2010-09-07 11:07 usbfilter\makefile
文件 190 2010-09-06 16:33 usbfilter\sources
文件 149 2003-03-07 15:57 usbfilter\stddcls.cpp
文件 809 2003-03-07 15:57 usbfilter\stddcls.h
文件 1044 2010-09-06 16:38 usbfilter\usbfilter.inf
相关资源
- linux下基于V4L2/Qt的usb摄像头采集显示
- AD type-c接口原理图库、PCB封装库.rar
- USB转CAN设计原理图
- MINI USB A贴片封装ad& 成品图
- usb2.0-serial驱动
- FT232HL编程指导
- XR21V1410芯片USB转UART应用图很经典的
- PC与USB通信控制tdc_gpx芯片工作与数据
- 修复单击变双击的鼠标过滤驱动源码
- Custom_hid 官方STM32f10X例程
- 获取USB设备的PID跟VID
- 单层、双层A型USB母口的PCB封装
- HID USB设备通讯-源代码 UsbLibrary
- mini usb B型 AD库封装
- 易语言USB设备控制源码
- 三鼎全站仪usb驱动
- DevView查看内核设备对象的工具
- USB设备状态监控插拔事件响应等。
- 基于USB摄像头的条形码识别
- USB2.0-Serial Win7 64bit驱动程序
- USB安装EXSi出错使用menu.c32文件
- USB MIDI 技术文档
- 简单、规范的Linux下的ds18b20驱动基于
- arm板上实现usb摄像头采集及显示(q
- 基于labview通过usb摄像头采集图像子
- MINI USB接口尺寸封装集合
- ch340解决win10 usb serial2.0驱动找不到问
- 基于周立功的usbcan接口卡的labview开发
- LIBUSB_HID通讯_上位机
- uc/os2内核源码
评论
共有 条评论