过滤 基础 7.1

生成过滤设备

NTSTATUS
IoCreateDevice(
        INPDRIVER_OBJECT DriverObject,
        IN ULONG DeviceExtensionSize,
        IN PUNICODE_STRING DeviceName OPTIONAL,
        IN DEVICE_TYPE DeviceType,
        IN ULONG DeviceCharacteristics,
        IN BOOLEAN Exclusive,
        OUT PDEVICE_OBJECT *DeviceObject
);

根据名字来绑定功能的内核API

NTSTATUS 
        IoAttachDevice(
            IN PDEVICE_OBJECT      SourceDevice,
            IN PUNICODE_STRING  TargetDevice,  //this string is device's name
            OUT PDEVIE_OBJECT     *AttachDevice
);

绑定串口1

UNICODE_STRING com_name = RTL_CONSTANT_STRING(L"\\Device\\Serial0");
NTSTATUS status = IoAttachDevice(
com_filter_device,
&com_device_name,
&attach_device
);

没有名字(根据指针)来绑定功能的内核API

NTSTATUS 
        IoAttachDeviceToDeviceStackSafe(
            IN PDEVICE_OBJECT      SourceDevice,
            IN PDEVICE_OBJECT  TargetDevice,  //this string is not device's name
            IN OUT PDEVIE_OBJECT     *AttachDeviceToDeviceObject
);

生成一个设备并且绑定到另一设备上

NTSTATUS 
ccpAttachDevice(
PDRIVER_OBJECT driver,
PDRIVER_OBJECT oldobj,
PDRIVER_OBJECT *fltobj,
PDRIVER_OBJECT *next)
{
    NTSTATUS status;
    PDRIVER_OBJECT topdev = NULL;
//生成设备然后绑定
status = IoCreateDevice(driver,0,NULL,oldobj->DeviceType,0,FALSE,fltobj);
if (status != STATUS_SUCCESS)
        return status;

//拷贝重要标志位
if(oldobj->Flags & DO_BUFFERED_IO)
        (*fltobj)->Flag |= DO_BUFFED_IO;
if(oldobj->Flags & DO_RIRECT_IO)
        (*fltobj)->Flag |= DO_DIRECT_IO;
}

if(oldobj->Characteristics & FILE_DEVICE_SUCURE_OPEN)
        (*fltobj)->Characteristics |= FILE_DEVICE_SUCURE_OPEN;
(*fltobj)->Flag |= DO_POWER_PAGABLE;

//将一个设备绑定到另一个设备上
topdev = IoAttachDeviceToDeviceStack(*fltobj,oldobj);
if(topdev == NULL)
{
//如果绑定失败销毁设备返回错误
IoDeleteDevice(*fltobj);
*fltobj = NULL;
status = STATUS_UNSUCESSFUL;
return status;
}
*next = topdev;

//设置这个设备已经启动
(*fltobj)-> = (*fltobj)->Flags & ~DO_DEVICE_INITIALIZING;
return STATUS_SUCCESS;
}

从名字获得设备对象指针

include

define NTSTRSAFE_LIB

include

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CodeSoft 7.1是一款专业的标签设计和条码打印软件。它提供了丰富的工具和功能,方便用户进行标签设计和打印管理。CodeSoft 7.1具有以下特点和优势: 1. 强大的设计功能:CodeSoft 7.1拥有直观易用的图形用户界面,提供了丰富的设计工具和模板,使用户能够轻松创建各种类型的标签。用户可以自由选择字体、颜色、图像和条码样式等设计元素,完全满足个性化的设计需求。 2. 高效的数据连接:CodeSoft 7.1支持与各种数据源的连接,包括数据库、Excel表格和文本文件等。用户可以轻松地将标签与数据源关联,实现数据的动态读取和更新,大大提高了工作效率。 3. 多种打印选项:CodeSoft 7.1支持多种打印选项,包括单张打印、批量打印和打印预览等。用户可以根据需要选择合适的打印方式,确保标签的准确打印。 4. 强大的错误检测和修复功能:CodeSoft 7.1具有强大的错误检测和修复功能,能够自动检测并修复常见的标签设计错误,减少了错误率和重复工作。 5. 兼容性强:CodeSoft 7.1能够与各类打印机和条码扫描器完美配合,保证了标签的高质量打印和准确扫描。同时,它还支持各种主流的操作系统,如Windows和Mac OS,适用范围广。 总之,CodeSoft 7.1是一款功能强大、易于使用的标签设计和条码打印软件,能够帮助用户快速、准确地创建和管理标签,提高工作效率。它广泛应用于各行各业,如物流、零售、医药等,对于提升企业的生产效率和品牌形象具有重要的作用。 ### 回答2: CodeSoft 7.1是一种专业的标签设计和打印软件,可以帮助用户轻松创建、编辑和打印标签。它具有强大的功能和易于使用的界面,适用于各种不同的行业和应用场景。 首先,CodeSoft 7.1提供了丰富的模板库,用户可以在基础模板上进行修改或直接使用预设模板。这些模板涵盖了各种不同类型的标签,包括产品标签、运输标签、仓储标签等,并且可以根据用户需求进行个性化定制。 其次,CodeSoft 7.1具有强大的设计功能。用户可以通过拖放元素、修改字体、颜色和大小等方式,自定义标签的外观和布局。此外,用户还可以添加动态文本、条形码、二维码、图像和表格等元素,以满足特定的应用需求。 CodeSoft 7.1还支持与其他数据库和系统的集成。用户可以通过连接数据库,直接从数据库中获取数据并应用于标签设计。此外,CodeSoft 7.1还可以与ERP、WMS和MES系统等进行集成,实现标签与业务系统的无缝对接。 最重要的是,CodeSoft 7.1具有强大的打印控制功能。用户可以选择不同的打印机,进行打印预览,调整打印机设置以获得最佳打印效果。同时,CodeSoft 7.1还支持批量打印和自动打印功能,提高生产效率和减少人为错误。 总之,CodeSoft 7.1是一款功能强大且易于使用的标签设计和打印软件,可以帮助用户轻松创建、编辑和打印标签,并与其他系统进行集成。无论是在制造业、物流行业还是零售业等领域,CodeSoft 7.1都能够提供高效、准确的标签解决方案。 ### 回答3: Codesoft 7.1 是一款功能强大的标签设计和打印软件。它具有直观易用的界面和丰富的功能,可以满足用户各种标签设计和打印的需求。 Codesoft 7.1 的主要特点包括: 1. 标签设计:Codesoft 7.1 提供了丰富的设计工具和模板,用户可以轻松地创建各种标签,包括条码标签、价格标签、产品标签等。用户可以根据自己的需要自定义标签的大小、形状、颜色和字体等。 2. 数据库集成:Codesoft 7.1 支持与各种数据库的集成,如Microsoft SQL Server、Oracle、MySQL等。用户可以从数据库中提取数据并将其插入到标签中,实现快速而准确的标签打印。 3. 条码生成:Codesoft 7.1 支持多种常用的条码格式,如EAN-13、Code 128、QR码等。用户可以根据自己的需要选择条码类型,并自定义条码的大小和样式。 4. 打印控制:Codesoft 7.1 提供了强大的打印控制功能,用户可以预览和调整标签的打印布局,选择打印机和打印设置,并进行批量打印。 5. 多语言支持:Codesoft 7.1 支持多种语言,包括中文、英文、法文、德文等。用户可以根据自己的需要选择界面语言,方便多语种用户使用。 总之,Codesoft 7.1 是一款功能强大、易于使用的标签设计和打印软件,适用于各种行业和应用场景,可以大大提高标签设计和打印的效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值