《windows核心编程》读书笔记1-chapter1

逆向工程核心原理 Chapter 21 | Windows消息钩取 逆向工程核心原理 第21章学习记录 阅读详情

《windows核心编程》读书笔记1-chapter1
//WinErrCodeformater.h

/************************************************************************/

/*CWinErrCodeFormatter,用于将错误码翻译成文本,可以指定文本的语言     */

/*这是一个functor

/************************************************************************/

class CWinErrCodeFormatter

{

public:

    CWinErrCodeFormatter(long errorCode=-1, LCID lang=MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED));

public:

    virtual ~CWinErrCodeFormatter(void);

public:

    CString operator()();

    CString operator()(long errorCode, LCID lang=MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED));

 

private:

    ///<summary>

    ///字符串的语言

    ///</summary>

    LCID m_lang;

 

    ///<summary>

    ///错误码

    ///</summary>

    long m_errorCode;

};

 

 

// WinErrCodeformater.cpp

#include "StdAfx.h"

#include "WinErrCodeFormatter.h"

 

CWinErrCodeFormatter::CWinErrCodeFormatter(long errorCode, LCID lang):m_errorCode(errorCode),m_lang(lang)

{

}

 

CWinErrCodeFormatter::~CWinErrCodeFormatter(void)

{

}

 

 

CString CWinErrCodeFormatter::operator()()

{

    HLOCAL  hlocal = NULL;

   

    BOOL bOK = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM| FORMAT_MESSAGE_ALLOCATE_BUFFER,

       NULL, m_errorCode, m_lang, (PTSTR)&hlocal, 0, NULL);

   

    if(!bOK)

    {

       HMODULE hDll = LoadLibraryEx(_T("netmsg.dll"), NULL, DONT_RESOLVE_DLL_REFERENCES);

       if(hDll)

       {

           FormatMessage(FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM, hDll, m_errorCode, m_lang, (PTSTR)&hlocal, 0, NULL);

           FreeLibrary(hDll);

       }

    }

 

    if(hlocal)

    {

       CString result((PCTSTR)LocalLock(hlocal));      

       LocalFree(hlocal);

       return result;

    }

    else      

       return _T("get error message failed!");         

}

 

 CString CWinErrCodeFormatter::operator()(long errorCode, LCID lang)

 {

     m_errorCode = errorCode;

     m_lang = lang;

     return operator();

 }

chapter 2.1: 什么是windows Driver Driver和Service的共同点 1.运行时和应用进程分开 2.生命周期长 3.响应I/O请求 4.不需要UI 5.地址空间和应用程序不同 Driver和Service不同点 1.有自己的接口,调用系统核心服务:通过DDI接口和操作系统通信。WDM 2.基于Windows I/O模型 3.和内核组件直接沟通 与Driver相关的子系统 1.I/O manager 阅读详情

相关推荐

智能汽车竞赛摄像头处理(4)——摄像头循迹思路讲解

智能汽车竞赛摄像头处理(4)对摄像头循迹思路进行讲解。

weixin_62261692的博客 7057

【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter1-多线程编程

例如,当工作线程完成自己的工作后,可以向主线程发送自定义的WM_XXX消息来通知主线程,因此主线程不需要随时检查工作线程是否已经完成某项操作或工作线程是否结束,只需要在窗口过程中处理WM_XXX消息。当然,主线程也可以向工作线程发送自定义消息,但是工作线程需要维护一个消息循环。如果工作线程创建了窗口,则还需要有一个窗口过程,这违背了多线程程序设计的原则,所以发送自定义消息的方法通常用于工作线程向主线程发送。工作线程向主线程发送自定义消息比较简单,调用SendMessage/PostMessage函数即可。

江湖人称菠萝包 708

谈谈人大金仓数据库

人大金仓数据库(Kingbase)是国产自主研发的关系型数据库管理系统,兼容主流数据库语法,支持高并发、高安全性及国产化适配。该数据库提供完整的安装部署方案,包括环境准备、初始化配置和验证流程,并配备专业的数据迁移工具(KDMS)实现从Oracle/MySQL等数据库的平滑迁移。系统提供KStudio等图形化管理工具,支持性能监控、备份恢复等运维功能,同时具备性能调优、高可用架构、分区表管理等高级特性,满足政府、金融等领域的企业级需求。

蜚鸣的博客 2094

【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter9-WinSock网络编程

I/O完成端口为在多CPU系统上处理多个并发异步I/O请求提供了一种高效的线程模型。与在收到I/O请求时创建一个工作线程相比,处理多个并发异步I/O请求的进程可以通过将I/O完成端口与线程池结合使用以更快、更高效地完成。I/O完成端口是一个内核对象,但是I/O完成端口仅与创建它的进程相关联,不能在进程间共享。创建I/O完成端口对象的CreateIoCompletionPort函数并没有一个安全属性结构参数。

江湖人称菠萝包 445

Fusion 360嵌入式外壳建模实战:从草图到可装配结构

参数化三维建模是现代电子结构设计的核心能力,其本质是通过几何约束与特征驱动实现设计意图的精确表达和快速迭代。Fusion 360作为集成CAD/CAM/CAE的云端平台,以时间轴驱动的参数化工作流、基于基准面的草图约束机制和面向制造的特征操作逻辑,显著提升了嵌入式硬件的结构验证效率。该技术价值在于支持工程师在无专业机械背景前提下,独立完成PCB适配、散热布局、接口开孔与装配干涉检查等关键任务,广泛应用于3D打印原型、CNC加工外壳及IoT终端结构开发。本文以ESP32冰箱监控终端为实例,详解从基准定义、草图

weixin_35671843的博客 588

毕设别再硬肝了:我用 GPT + Codex 做项目、写论文,效率直接起飞

这个也是神器。你项目做完之后,最怕的是老师一问就懵。这时候你直接把你的项目发给它,让它模拟老师提问。这是我的毕业设计题目和项目简介,请你站在答辩老师角度,提出20个高频问题,并给出简洁好背的回答。要求:问题尽量贴近计算机专业本科毕业答辩。为什么选这个题目?技术选型为什么这样定?你的创新点是什么?系统难点是什么?数据库怎么设计的?你的模型为什么选这个?如果继续优化,下一步怎么做?这个对答辩真的帮助很大。说实话,如果没有 GPT + Codex,

m0_74100417的博客 1846

Chapter01 Windows起步

对于操作系统,Windows、Linux、Mac OS等PC操作系统,以及新兴的Android、IOS等移动操作系统,都让我时刻感受到计算机世界的快速变化。作为普通一员,Windows系统算是我们接触最为广泛的,我的程序员生涯也理所应当得与Windows系统连在了一起。虽然Windows系统正经受着越来越大的挑战,但对于它,我始终有一种难以割舍的感觉,也许是习惯了,即便它有再多的问题,也愿意工作、

Sunshine's Home 1009

YOLOv11 改进策略 | HWD:引入 Haar 小波变换,减少信息丢失

在卷积神经网络(CNN)中,下采样(Downsampling)是降低特征图分辨率、扩大感受野的关键操作,通常通过最大池化(MaxPool)或步长为 2 的卷积(Strided Convolution)实现。然而,这些方法在降低分辨率的同时,往往会丢失图像中的高频细节信息(如边缘、纹理)和精确的空间位置信息,这可能对后续特征提取和目标检测精度产生不利影响,尤其是对于小目标和需要精细定位的任务。

走向CTO的路上... 1789

【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter4-进程

进程(Process)是系统中正在运行的一个可执行文件,可执行文件一旦运行就成为进程,是一个动态的概念,是一个活动的实体。进程是一个正在运行的可执行文件所使用资源的总和,包括虚拟地址空间、代码、数据、对象句柄、环境变量等。当一个可执行文件被同时多次执行时,产生的是多个进程,虽然它们由同一个文件执行而来,但是它们的虚拟地址空间相互隔离,类似于不同的可执行文件在执行。运行一个可执行文件就是创建了一个进程。本章将学习如何在程序中动态创建一个进程,多个进程之间如何进行通信,进程的枚举和调试等。

江湖人称菠萝包 339

华为2022数字芯片笔试题

单选 1、ASIC开发流程中,如下环节的先后顺序是? A. RTL-> Synthesis->P&R B. Synthesis->P&R->RTL C. Synthesis->RTL->P&R D.RTL->P&R->Synthesis 2、o10换算成十进制是多少? A. 8 B.16 C.10 D.2 3、reg [7:0] mem [1:256];initial $readmemh("me..

weixin_44072819的博客 1万+

基于深度学习的灰度图像气泡群识别与优化

灰度图像气泡群深度学习识别优化研究 本研究针对MATLAB实现的深度学习气泡群识别系统在从1445个点到4992个点扩展时出现的精度不稳定问题,提出了一套完整的解决方案。文章首先分析了问题根源,包括数据复杂度增加、类别不平衡、网络容量不足等因素,然后系统性地提出了数据预处理增强、网络架构优化、训练策略调整和后处理算法改进等优化措施。通过改进的U-Net架构、自适应直方图均衡化等技术创新,有效提升了模型在大规模气泡群图像上的识别精度和稳定性,为化工、生物医学等领域的灰度图像分析提供了可靠的技术支持。

max500600的博客 412

【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter1-基础知识

本书是Windows API程序设计的入门图书,提供大量的示例程序,主要介绍学习Windows程序设计必备的基础知识,以及一个程序界面所需的菜单、图标光标、子窗口控件、其他资源和对话框等相关内容,并通过Photoshop切片和自绘技术实现一个优雅的程序界面。通过阅读本书,读者可以对Windows程序设计有更加深入的认识,并将其应用到实际场景中。

江湖人称菠萝包 308

Python图像处理之光斑分析

光斑是工程中经常出现的图像数据,其特点是目标明确,分布清晰。对光斑图像的分析,主要包括质心定位、目标截取以及半径拟合等。

微小冷的学习笔记 2857

《Windows核心编程》读书笔记.Chapter06线程基础

原文链接在印象笔记(效果也好的多):https://app.yinxiang.com/l/AAQlNLnxTPRMAppVr5W0upchipQDDC_FHlU 概要: 现成也有两个组成部分: 现成的内核对象,操作系统用它管理现成。系统还用内核对象来存放现成统计信息的地方 线程栈,用于维护现成执行时所需的所有函数参数和局部变量 进程从来不执行任何东西,它只是一...

weixin_34219944的博客 75

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C/C++内存管理底层地图:从进程地址空间到Valgrind排查

C/C++内存管理的起点不是死记 malloc/free 配对,而是理解进程地址空间:代码段、数据段、堆、共享库映射区和栈如何排布,栈为何自动回收,堆为何易产生碎片、泄漏与重复释放。掌握分配器、RAII、智能指针和结构体对齐后,资源生命周期可绑定到对象,缓存友好与多线程稳定性也随之提升;内存池则适合高频申请释放场景。遇到段错误或线上 core dump 时,Valgrind、ASan 能把越界、悬垂指针和内存泄漏定位到调用路径。围绕栈堆布局、malloc 分配器、智能指针、内存池与调试工具展开,目标是建立一

weixin_34054931的博客 355

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Chapter3 Windows and Messages —— Programming Windows 笔记

这一章主要讲明Windows程序设计的基本框架和基本概念,围绕着窗口展开。主要搞清楚的是窗口、窗口类、窗口过程回调函数、消息、消息循环、消息队列等概念。Windows程序设计与以前DOS控制台程序区别最大的是,以前所有自己编写的函数都由自己安排具体在什么地方被调用,而Windows编程中的窗口过程函数是主要编写部分,却看不到在什么地方调用,实际上它的调用被蒙上了一层纱,这层纱就是Windows的API,包括文中提到的CreateWindow、ShowWindow、UpdateWindow以及Dispatch

ZengXianLiang的专栏 365

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

逆向工程核心原理 Chapter22 | 恶意键盘记录器

逆向工程核心原理 第22章学习记录

ULGANOY的博客 362

如何从零开始编写Windows内核驱动?Windows Kernel Programming Book Samples完整入门教程

Windows内核驱动开发是系统级编程的重要领域,掌握这一技能能让你深入理解操作系统底层机制。本文将通过**Windows Kernel Programming Book Samples**项目中的示例代码,带你从零开始掌握内核驱动开发的核心步骤和最佳实践。 ## 📚 为什么选择Windows Kernel Programming Book Samples? 该项目是《Windows Ker

gitblog_00198的博客 614

【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 3

  【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 1【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 2【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 3【原创】Windows® E

这个世界乱纷纷,先把自己锻炼成器 792

【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter3-文件、驱动器和目录操作

文件是系统中操作最为频繁的对象,例如文本文档、音视频、可执行文件等。文件存储的载体是磁盘,我们先来学习与磁盘有关的概念。磁盘(Disk)是指利用磁记录技术存储数据的存储器,早期计算机使用的磁盘是软磁盘(Soft Disk,简称软盘),现在常用的磁盘是硬磁盘(Hard Disk,简称硬盘)。硬盘有机械硬盘(Hard Disk Drive,HDD)和固态硬盘(Solid State Drive,SSD)之分。

江湖人称菠萝包 341

【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter2-Windows窗口程序

本章首先带领大家认识一下Windows窗口程序,然后详细介绍开发一个标准Windows窗口程序的步骤与原理。很多内容都是Windows的规定。对于刚刚接触Windows程序设计的读者,第2章或许是全书最难的,但是只要明白了本章所涉及的原理,后面章节的学习就会顺理成章。

江湖人称菠萝包 380

【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter6-动态链接库

程序中用到的Windows API函数都包含在动态链接库(Dynamic Link Library,DLL)中,其中3个最重要的动态链接库(DLL)分别是Kernel32.dll、User32.dll和Gdi32.dll。Kernel32.dll中包含的函数用来管理内存、进程以及线程等,User32.dll中包含的函数用来执行与用户界面相关的任务,例如创建窗口和发送消息等,Gdi32.dll中包含的函数用来绘制图像和显示文字等。

江湖人称菠萝包 282

Linux下fastai Chapter 3实战排障:CUDA、权限与混合精度故障修复

DataLoader是深度学习数据管道的核心组件,其在Linux系统中的行为受文件权限、CUDA上下文、多进程模型和数据类型一致性等底层机制深刻影响。理解PyTorch的显存分配策略、torch.cuda.is_available()的系统级判定逻辑,以及混合精度训练中float16与float32的dtype协同机制,是保障模型稳定训练的基础技术能力。这些原理在fastai框架的Chapter 3中集中暴露——尤其当ImageDataLoaders遭遇ulimit限制、Learner初始化受NVreg_R

dechen6073的博客 487

【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter10-其他常用Windows API编程知识

快捷方式是Windows提供的一种快速启动程序、打开文件或文件夹的方法,快捷方式的扩展名通常为.lnk,另外还有扩展名为.url的网页快捷方式等。快捷方式的相关属性包括快捷方式指向的目标文件路径、快捷方式自身路径、起始位置(工作目录)、快捷键、运行方式(常规窗口、最小化或最大化)、备注(描述)、图标和命令行参数等。快捷键属性指的是为目标文件设置一个特定线程热键,按下快捷键时会打开目标文件。

江湖人称菠萝包 496

【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 5

  【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 1【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 2【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 3【原创】Windows® E

这个世界乱纷纷,先把自己锻炼成器 845

【数据结构-5】单链表的实现

单链表,具体来说是单向的、不带头的、不循环的链表。链表由一个一个节点组成,每个节点分为数据域和指针域,数据域存放数据,指针域存放下一节点的地址。这样,就可以根据指针域中的地址找到下一个节点,节点就串起来了构成了单链表。

weixin_44218929的博客 167
上一篇: Vczh Library++3.0之正则表达式引擎(生成epsilon-NFA)
下一篇: 快速排序算法、计数排序算法
普通网友
博客等级 码龄22年 1万+粉丝 2784原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值