INFO: NDIS 调试跟踪和内核调试器扩展

WFP驱动开发实战:TCP数据流拦截、篡改与校验和问题深度解析 本文深入探讨了WFP驱动开发在TCP数据流拦截、篡改与校验和问题中的实战应用。通过分层拦截技术、NET_BUFFER操作和校验和解决方案,开发者可以精确控制网络流量,解决虚拟化环境中的特殊挑战。文章还提供了性能优化、调试技巧和安全实践,助力构建稳定的网络过滤驱动。 阅读详情
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。
点击这里察看该文章的英文版: 248413 (http://support.microsoft.com/kb/248413/en-us/)
文章编号:248413
最后修改:2007年2月28日
修订:3.2

概要

Windows 2000 DDK 含有新 NDIS 内核调试器扩展 DLL 来方便的宽范围是 NDIS 内核数据结构, 检查并启用调试跟踪的 NDIS.sys checked 版本上的各种 NDIS 组件。

回到顶端

更多信息

安装 NDIS 调试器扩展

要安装扩展, 将 Ndiskd.dll 从 /ntddk/bin/w2kfre 或 /ntddk/bin/w2kchk 根据目标计算机生成到同一目录如 Windbg.exe 或 i386kd.exe。 然后, 复制相应 NDIS.sys 符号到主机计算机的符号目录文件 (Ndis.pdb 和 Ndis.dbg)。

回到顶端

使用 NDIS 调试器扩展

要使用新扩展名, 调试器提供两种方法。 在命令提示符下, 之后建立会话, 输入:
•!ndiskd.extension_name [arguments] 调试器加载 Ndiskd.dll, 调用入口点 (extension_name) 指定, 并将参数传递到入口点。 - 或 -

•!load ndiskd.dll 调试器加载 Ndiskd.dll, 但不调用入口点。
不论何种情况, 一旦调试器已加载 Ndiskd.dll, 您可以运行通过只扩展的名称中包含任何扩展命令:
!extension name
				
注意 : 当您运行的扩展而指定 .dll, 调试器查找对于当前扩展 .dll, 它是最后一个中加载。 它如果在当前扩展 .dll, 它找不到扩展在顺序他们已加载, 并, 运行第一个实例的扩展中搜寻通过加载扩展 .dll, 它查找。

回到顶端

快速帮助

对于快速引用的所有扩展名称, 键入 !help 在加载 Ndiskd.dll 后 WinDbg 命令行。 出现信息可以类似于以下内容:
!ndiskd.help
Ndis extensions:
   dbglevel [Level [Level] ...]        toggle debug level
   dbgsystems [Level [Level] ...]      toggle debug systems
   miniports <'all'>                   list all Miniports
   gminiports <'all'>                  list all Miniports, even those not started yet
   miniport <Miniport Block>           dump Miniport block
   mopen <Miniport Open Block>         dump Miniport Open block
   protocols                           dump all protocols and their opens
   protocol <Protocol Block>           dump the protocols block's contents
   pkt <Packet> <Verbosity>            dump the contents of the packet
   int_ctxt <NDIS_MINIPORT_INTERRUPT*> dump the second argument of ndisMIsr
   pktpool <pointer to Pkt_Pool> <Num> dump the contents of the ndis_pkt_pool. Not for Alpha and Win64
				

回到顶端

启用 NDIS 调试跟踪

! ! dbgsystem dbglevel 和
可通过以下两个扩展启用不同级别的各种组件是 NDIS 中调试跟踪。 这些扩展要求目标系统上的 NDIS.sys CHECKED 版本。 不用安装整个选中生成系统, 可也只复制 checked NDIS.sys 以获得调试跟踪的版本。 确定级别或量调试跟踪选定组件中 " dbgsystem " 让您选择各种 NDIS 组件和 " dbglevel "。
>!dbglevel
Current setting:   INFO

Available settings:
  LOG  WARN  ERR  FATAL

>!dbgsystems
Current settings:
Available settings:
  INIT  CONFIG  SEND  RECV  PROTOCOL
  BIND  BUS_QUERY  REGISTRY  MEMORY  FILTER
  REQUEST  WORK_ITEM  PNP  PM  OPEN
  LOCKS  RESET  WMI  NDIS_CO  REFERENCE
				

也可以通过向 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NDIS/Parameters 键添加下列值启用调试跟踪通过注册表。
"DebugLevel"=dword:00000000
"DebugSystems"=dword:000030F3
"DebugBreakPoint"=dword:00000001
				
对于 DebugLevel 和 DebugSystems 接受值是以下列表中。 如果要调试中中断设置为 1, NDIS 原因是 DriverEntry DebugBreakPoint,。
DebugLevel:

 DBG_LEVEL_INFO    0x00000000
 DBG_LEVEL_WARN    0x00001000
 DBG_LEVEL_ERR     0x00002000
 DBG_LEVEL_FATAL   0x00003000

DebugSystems:

 DBG_COMP_INIT         0x00000001
 DBG_COMP_CONFIG       0x00000002
 DBG_COMP_SEND         0x00000004
 DBG_COMP_RECV         0x00000008
 DBG_COMP_MEMORY       0x00000010
 DBG_COMP_FILTER       0x00000020
 DBG_COMP_PROTOCOL     0x00000040
 DBG_COMP_REQUEST      0x00000080
 DBG_COMP_UNLOAD       0x00000100
 DBG_COMP_WORK_ITEM    0x00000200
 DBG_COMP_OPEN         0x00000400
 DBG_COMP_LOCKS        0x00000800
 DBG_COMP_PNP          0x00001000
 DBG_COMP_PM           0x00002000
 DBG_COMP_RESET        0x00004000
 DBG_COMP_ALL          0xFFFFFFFF

				
如果没有选中符号是 NDIS.sys 此注册表一功能非常有用。 一个缺点是, 您需要重新启动系统每次您更改值。

回到顶端

参考

有关其他信息, 请参阅下列文章或 Microsoft 知识库文章:
164459 (http://support.microsoft.com/kb/164459/EN-US/) HOWTO: 调试 NDIS 4.0 驱动程序

回到顶端


这篇文章中的信息适用于:
•Microsoft Windows 2000 Server
•Microsoft Windows 2000 Advanced Server
•Microsoft Windows 2000 Professional Edition

回到顶端

关键字: 
kbbug kbdebug kbinfo kbkmode kbndis KB248413 KbMtzh kbmt

回到顶端

Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
 
C#上位机+ChatGPT:让设备日志“说人话”,故障原因自动解读 (比如“SerialPort Exception: Access to COM3 is denied”“Timeout waiting for ACK 0x05”),非专业工程师根本看不懂,排查故障时只能对着日志“抓瞎”——明明是简单的“串口被占用”,却要翻半天手册;明明是“传感器接线松动”,却误判为设备硬件故障。,重点解决“API 调用稳定”“解析不跑偏”“工业日志适配”三个问题。工业设备运行时会输出大量日志,但这些日志满是。(让 GPT 按工业场景解读)、(超时重试、失败兜底)、 阅读详情

相关推荐

Cartographer全局重定位优化:无初始位姿约束的2万平工厂秒级定位实践

本文深入解析了Cartographer在2万平工业场景中的全局重定位优化实践,通过分支定界优化、子图动态加载和多传感器融合等关键技术,实现了无初始位姿约束下的秒级重定位。特别针对大场景下的快速重定位需求,优化后的系统在RK3588平台上表现出色,定位耗时从47秒降至1.8秒,成功率提升至91%,为工业自动化提供了高效解决方案。

rose2的博客 969

NDIS协议驱动学习二——协议驱动DriverEntry

1生成控制设备 1.1DriverEntry函数原型 NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath ); /* Routine Description: Called on loading. We create a device object to handle user-mode requests on, and regi...

苞米地里捉小鸡的博客 971

python批量生成CAD图纸

python批量生成CAD图纸

轩逸云的博客 1万+

NDIS协议驱动学习三——协议与网卡的绑定

协议与网卡的绑定 协议与网卡之间的绑定和之前章节中设备对象之间的绑定不同 一般来说协议和网卡的绑定不是一对一的,而是一对多的,同一个协议是会在同一台主机的所有网卡生效。当然一张网卡也可以绑定不同的多个协议,但是实际上这是没有任何意义的,因为一般来说一个数据包只会被一个协议处理。 这一节我们的主要学习对象是以下两个回调函数 protocolChar.BindAdapterHandler = NdisProtBindAdapter; protocolChar.UnbindAdapterHandler

苞米地里捉小鸡的博客 1154

卫星图像检测,分割,跟踪,超分辨率,数据集调研,以及论文笔记

目标检测,针对物体有很多类如桥,烟囱,罐子等,有静态图像下的检测,也就是图像源头多来自谷歌地图,但是前后帧没有任何联系,并且谷歌地图相对来说比较清楚,难度小一点,也有粗粒度以及较细粒度的检测,然后卫星视频的数据集较少,则可以通过前后帧的联系来辅助检测,并且卫星帧基本上只对车,船,飞机,火车进行检测,没有进行细粒度的检测即将车辆分类为卡车,皮卡,小轿车,但是关船,则可以分类为货船以及军舰,因为目前的卫星视频中小车实在太少了,难以进行更细粒度的检测。luojia 三号卫星。

zhangzhao147的博客 4709

图论:Dijkstra算法——最详细的分析,图文并茂,一次看懂!

Dijstra算法

普罗米修斯的博客 18万+

ndisprot代码中的调试信息问题

 ndisprot是ddk提供的关于ndis协议驱动的源代码例程。  在看的过程中,发现其中用了一个宏:DBG, 这么宏让我晕了好长时间。 代码中有这样一段: #if DBGextern INT ndisprotDebugLevel;#define DEBUGP(lev, stmt)

xu5ei的专栏 493

Camera tuning flow相机调试流程

相机调试流程分为三大模块:ProcessRaw处理原始数据(黑电平校正、阴影校正),3A实现自动控制(曝光/对焦/白平衡),ISP进行图像精加工(伽马校正、锐化降噪、色彩处理)。三个阶段环环相扣,前阶段为后阶段提供基础,最终输出画质优良且风格化的图像。

weixin_64706696的博客 1230

NDIS小端口驱动ndisEdge学习三——打开ndisprot设备

第一部分 ndisedge是一个WDF型的驱动,为了追赶时尚的最前沿技术,我们应该采用WDF下的新做法打开设备对象 一般的IO目标只能打开本驱动生成的设备,这种IO目标被称为本地IO目标,如果要打开其他驱动生成的设备,必须使用远程IO目标 远程IO目标使用WDF的内核API函数WdfIoTargetCreate来生成 这个函数原型如下: NTSTATUS WdfIoTargetCreate( WDFDEVICE Device, PWDF_OBJECT_ATTRI

苞米地里捉小鸡的博客 866

美亚杯2023参赛全攻略:从检材下载到Veracrypt挂载的保姆级教程

本文提供美亚杯2023电子数据取证竞赛的完整参赛指南,重点解析从检材下载、Veracrypt挂载到实战取证的保姆级流程。针对新手常见误区,详细说明两套密码(ZIP解压密码与Veracrypt挂载密码)的区别与正确使用方法,并分享赛前环境搭建、赛中高效分析及赛后报告撰写的核心技巧,帮助参赛者系统备赛,规避基础错误。

y9z0a1b的博客 1080

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

(完整版内容:)1.汇集了本科各科的重点知识及多个机械名校800多个常见问题,共8.7万字185页,涵盖机械所以专业课的重点知识和常见问答。 2.涉及机械大类重点科目,包括:材料力学、控制工程、数控技术、机械制造技术基础、理论力学、液压传动、机械设计、机械原理、工程材料、互换性与技术测量、测试技术、汽车理论、程序设计与C语言等13门必修课。

weixin_56510835的博客 1862

NDIS协议驱动开发指南

对于NDIS协议层驱动平时我们的使用场景不多,我们也没有能力(也没必要)设计一个完整的网络协议驱动。但是协议驱动是我们后面NDIS过滤驱动的基础,NDIS过滤驱动可以帮助我们获取本机接收到的网络帧数据包,并且对以太帧数据包进行过滤(例如ARP数据包等)。因此NDIS协议驱动还是非常值得我们去学习的,它是NDIS过滤驱动的基础,也是以太帧数据包过滤的重要手段。

xsinlink的博客 4193

冷门但实用:Python爬取微信公众号历史文章,突破微信反爬限制(2025有效)

2025年微信公众号爬取的核心是「冷门方法+指纹伪装」,而非常规接口破解,itchat-uos+Playwright组合是突破设备指纹的关键;登录态持久化、动态Token实时获取、频率严格控制是避免被封禁的三大核心;文章内容解析需解决2025新增的编码混淆问题,chardet+BeautifulSoup是冷门但有效的方案;合规是前提,爬取频率、数据用途需严格遵守平台/法律规则。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3784

pixi shell-hook 实战:用 `eval “$(pixi shell-hook)“` 实现传统 conda activate 式环境激活

`pixi shell-hook` 是 pixi 提供的"类 `conda activate`"激活方案:它把激活脚本直接打印到标准输出,由用户在自己的 shell 中通过 `eval` 或 `source` 执行,从而在不启动新 shell 的前提下把当前终端切换进 pixi 环境。本文围绕 [docs/partials/conda-style-activation.md](https://li

gitblog_00549的博客 1020

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Spring MVC入门(一):第一个必写的简单小案例-留言板

获取全部留⾔全部留⾔信息,我们⽤List来表⽰,可以⽤JSON来描述这个List数据.前后端交互过程和接⼝传参,数据返回,以及⻚⾯展⽰,后续图书馆系统等等案例都将以这个为基础,不断扩展。

2201_75758787的博客 777

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Flutter&OpenHarmony商城App分享功能组件开发

本文围绕商城App分享功能组件开发展开,分别介绍了在Flutter和OpenHarmony平台的实现方案。在Flutter端,先定义 ShareContent 数据模型存储分享内容属性、 ShareChannel 定义分享渠道属性并预设常用渠道,再通过 ShareSheet 组件构建底部弹出的分享面板,包含拖动条、标题、渠道网格和取消按钮,还封装 ShareHelper 工具类简化面板显示与分享逻辑执行;在OpenHarmony端,采用与Flutter版本结构一致的设计,通过TypeScript接口定义分享

2501_94444175的博客 1002

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MySQL数据库基础

MySQL数据库基础摘要 MySQL是开源的关系型数据库管理系统,属于Oracle旗下产品。数据库可分为关系型(RDBMS)和非关系型(NoSQL),MySQL适用于结构化数据存储。安装MySQL8.0通常采用二进制包方式,包括创建专用用户、设置数据目录、修改配置文件、初始化数据库等步骤。安装完成后需设置环境变量、修改默认密码、配置开机启动和远程访问权限。MySQL广泛应用于互联网行业,支持SQL语言进行数据操作,具有高性能、可靠性和易用性特点。国产信创数据库如达梦、金仓等也在快速发展。

IKun_7878的博客 1040

第3章 嵌入式驱动开发环境搭建全攻略

本文详细介绍了嵌入式驱动开发环境的搭建过程。主要内容包括:1) Windows平台下使用VMware和VirtualBox构建虚拟化开发环境的方法;2) Linux系统的定制化安装,包括基础工具链配置、内核源码获取和环境验证脚本;3) 主机与虚拟机的文件共享方案实现;4) 现代化源码分析工具的应用,如VS Code配置和内核源码浏览脚本生成。文章提供了大量实用命令和配置示例,为嵌入式驱动开发人员构建高效开发环境提供了完整的技术指南。

小宝哥Code的专栏 581

python 拆分pdf

【代码】python 拆分pdf。

brepnet uvnet 253

workerman 分级日志

/ 日志级别常量// 最小日志级别✅5个日志级别✅级别过滤- 可设置最小记录级别✅彩色输出- 控制台不同级别不同颜色✅文件分离- 所有日志和错误日志分开✅按日期分文件- 自动按天创建日志文件✅上下文支持- 可附加结构化数据✅多进程安全- 每个进程独立日志实例。

qq_37805832的博客 462

python+vue实验室管理系统设计(源码+文档+调试+基础修改+答疑)

实验室管理系统项目摘要 本项目是一个基于Python+Django+Vue.js的实验室管理系统(LIMS),采用前后端分离架构开发。系统包含用户管理、设备管理、预约管理等功能模块,使用MySQL 5.7作为数据库。项目采用Element UI组件库构建前端界面,后端使用PyMySQL连接数据库,实现了包括用户注册登录、权限控制、数据查询等核心功能。系统开发文档包含详细的技术说明、模块截图、数据库设计及配套学习资料,适用于科研实验室的日常管理需求。项目代码结构清晰,注释完整,提供了完整的开发环境和部署教程。

weixin_41915110的博客 774

【项目】【抽奖系统】活动列表展示

活动列表展示

yj20040627的博客 1254

智能运维基石:精通 Shell 监控脚本与告警逻辑开发

Shell 脚本是实现基础系统监控和告警的强大且灵活的工具。通过熟练掌握系统命令、文件操作和逻辑控制,可以构建出满足各种特定需求的监控方案。本文详细介绍了从指标采集、阈值设置、告警逻辑设计到通知发送的完整流程,并强调了健壮性、性能、安全和可维护性的重要性。虽然对于大规模、复杂的监控需求,成熟的监控平台是更好的选择,但 Shell 脚本监控作为基础技能和特定场景的解决方案,其价值不可替代。持续实践、测试和优化,将使你的 Shell 监控脚本成为智能运维体系中可靠的前哨站。

qinzhenyan的博客 1402

SpringBoot中Get请求和POST请求接收参数详解

参数用 @RequestParam 标注,使用value属性指定参数名,required属性表示这个参数是否必传。参数用 @RequestParam 标注,使用value属性指定参数名,required属性表示这个参数是否必传。直接以实体类可以接收param、form-data、 x-www-form-urlencoded 提交的参数。注意:SpringBoot 接收集合参数,必须用 @RequestParam 注解声明!这种方式一般适用参数比较少的情况,并且前后端参数名称必须保持一致。

2509_93923620的博客 255

Freeswitch拨号计划

它的作用是,在 user/1000 接电话后,电话的另一端(也就是 FreeSWITCH)需要对电话进行路由,在这里,它要将电话路由到 9196 这个 Extension 上,第一条命令由于没有指定是哪个 Dialplan,因此它会在默认的 XML Dialplan 中查找,同时,XML Dialplan 需要一个 Context, 它默认就是 default。这和入局event socket连接的命令集是一样的,因此,你可以执行API命令,获取全局事件,等等。如果拨号串以逗号分隔,那么拨号是同时进行的。

u011563926的专栏 588

YaeAchievement:3 分钟跑通原神成就全量导出的完整流程

凌晨一点,你盯着浏览器里的成就列表往 Excel 里一格一格敲"已完成"。中途接个电话,回头忘了抄到第几行。YaeAchievement 直接在游戏运行时把全部成就数据读出来,转成各个平台认得的文件,手抄这一步被整个去掉。 ## 它只做一件事:把内存里的成就翻译成文件 **工具从原神进程里读取成就数据,一次导出成椰羊、胡桃工具箱、Paimon.moe、Seelie.me、CSV、寻空、Teyv

gitblog_00822的博客 457
上一篇: Ruining the Rustock.C rumors and myths and Kaspersky Lab role
下一篇: 用户态轻松调用ntdll中的native api收藏
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值