精华内容
下载资源
问答
  • Windows核心编程

    2021-02-04 17:51:43
    在学习《windows核心编程》开始,要了解一些常用的知识,这里收集了一些个人理解的知识点,便于以后的学习。 从句柄自身的类型来理解,它是一个32位无符号整数值,网上的说法基本统一为:句柄是对象的唯一标识,而...

    在学习《windows核心编程》开始,要了解一些常用的知识,这里收集了一些个人理解的知识点,便于以后的学习。

    句柄
    从句柄自身的类型来理解,它是一个32位无符号整数值,网上的说法基本统一为:句柄是对象的唯一标识,而这个整数值就是和对象一一对应(相互映射)。
    从语义通俗理解是提东西(大)的手柄(小)。因为windows内核对象(创建的线程、打开的文件、窗口等)拥有大量的属性,不可能每次都传递这么多字节,所以在进程的地址空间中设一张表,表里头专门保存一些编号和由这个编号对应一个地址,而由那个地址去引用实际的对象,这个我编号就是句柄。相等于指向指针的指针。

    为什么有句柄这一概念?
    源于内存管理的虚拟地址。

    在内存中句柄是如何唯一表示对象的?
    …待补充

    一.错误处理

    书中提到很多返回值,得知通过返回值是不能知道函数调用为什么会失败,这时候就需要Windows内部的错误检测机制:即书中提到的“采用线程本地存储区的机制来将相应的错误代码与“主调线程”关联到一起。它可以使不同的线程能独立运行,不会出现相互干扰对方的错误代码的情况。”

    讨论: 线程本地存储(TLS).
    TLS出现的原因:一个进程中,所有线程是共享同一个地址空间的。所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程。所以推荐用基于堆栈的自动变量或函数参数来访问数据,因为基于堆栈的变量总是和特定的线程相联系的。
    而有时候要用到全局或静态,为保证在多线程程序中能访问而不互相影响,OS提供了TLS。

    书中列举错误的三种表示:
    1.一个消息ID(一个可在源代码直接使用的宏名,用于与GetLastError()返回值比较)
    2.消息文本(描述错误内容的英文文本)
    3.编号(可理解为宏的具体值,在代码中最好不要直接出现,否则增加代码阅读理解的难度,不利于开发进行)
    当函数发生各种不同的错误时,为了使调用者可以通过GetLastError()函数来访问错误代码,以便于观察具体发生的错误而不是直接结束程序,需要我们设置线程的上一个错误代码,再让自己的函数返回这个错误值即可,调用SetLastError()并传入一个32位合适值即可。
    最后一点值得注意的是,错误发生后应立即用GetLastError()来诊断错误,成功调用的Windows函数可能使用用ERROR_SUCCESS改写GetLastError()函数的值,这个操作是不可逆。

    展开全文
  • windows核心编程

    千人学习 2018-03-06 20:01:37
    SDK 软件开发工具包(Software Development ... MFC MFC是一套框架 它是微软提供的, 用于在C++环境下编写用于程序的一个框架和引擎 它可以说是 WinAPI 和 C++ 结合后的再一次封装 它属于应用程序框架 Windows API ……
  • WINDOWS核心编程

    2020-04-24 19:08:20
    10.2.2设置文件指针的位置 10.2.3设置文件尾

    10.2.2设置文件指针的位置

    10.2.3设置文件尾

    10.3.1 将数据刷新至设备

    10.3.2 同步IO的取消

    10.4 异步IO设备基础

    10.4.1 OVERLAPPEND结构

    10.4.2 异步设备I/O的注意事项

    10.4.3 取消队列中的设备I/O请求

    10.5 接受I/O请求的完成通知

    10.5.1 触发设备内核对象

     

     

    展开全文
  • Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心编程源码,Windows核心...
  • WINdows核心编程.rar

    2019-06-06 01:52:32
    WINdows核心编程.pdf
  • windows核心编程.rar

    2019-06-14 14:56:02
    windows核心编程pdf资料!
  • Windows核心编程 光盘源代码
  • Windows核心编程.zip

    2021-03-28 10:46:44
    Windows核心编程.zip dll 进程 内存体系结构 栈\堆 内存映射文件 线程 字符和字符串处理
  • WINDOWS核心编程.CHM

    2015-12-07 13:58:30
    WINDOWS核心编程,建议看完WINDOWS程序设计的同学下载研究 WINDOWS核心编程,建议看完WINDOWS程序设计的同学下载研究 WINDOWS核心编程,建议看完WINDOWS程序设计的同学下载研究
  • windows核心编程 src.zip

    2019-07-29 11:48:53
    看我博客:https://blog.csdn.net/liaozhilong88/article/details/97626503 https://blog.csdn.net/liaozhilong88/article/details/97628371 Windows核心编程 第5版源码 Windows核心编程 第5版源码
  • Windows via C C++ - Windows核心编程 源代码
  • WINDOWS核心编程_笔记合集.zip
  • Windows核心编程培训相关知识,包括内核对象、进程、线程及线程同步、内存映射文件 、动态链接库等知识点。
  • 最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li...我是先从《Windows核心编程》开始了解一些Windows底层管理与硬件交互的原理,然后买了一套冬瓜哥撰写的《大话计算机》系列丛书,学有余力...

    v2-15c1cd6aeebe5c4d0a379e62b1c242de_1440w.jpg?source=172ae18b

    最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li(微软实习期间的Mentor,为人超好)在知乎回答过一些关于学习[Windows原理的书籍推荐](微软官方有没有公布过Windows的工作细节?),大家可以拜读其中一本来入门。我是先从《Windows核心编程》开始了解一些Windows底层管理与硬件交互的原理,然后买了一套冬瓜哥撰写的《大话计算机》系列丛书,学有余力的童鞋强烈推荐你去看看,这套书对计算机整体的运作原理讲解的很系统,涉及了计算机组成原理、网络原理、编译原理、操作系统、硬件等,可以作为不错的入门教材。

    [Windows核心编程(第5版)电子书及配套代码](ckjbug/Windows-Core-Programming)

    学习前需要理解一些系统专业词汇的概念,比如:系统资源、内存管理、句柄、内核态/用户态、Hook、事件、消息等。不然后续对Windows底层原理的理解会有些误差和盲区,例如很容易将系统资源和CPU资源(CPU使用率)相混淆。

    v2-12d09b8c04969372e59421cda42aa295_b.jpg

    v2-f0b2d662174a3d933d8e811221570fc8_b.jpg

    有哪些内核对象:

    令牌对象 Token
    事件对象 Event
    文件对象 File
    文件映射对象 Mapping File
    线程对象 Thread
    时钟对象 Timer
    线程池对象 ThreadPool
    I/O完成端对象 Completion port
    工作对象 Job
    邮槽对象 Mailslot
    互斥对象 Mutex
    管道对象 Pipe
    进程对象 Process
    信号灯对象 Semaphore
    ...

    内核对象的结构:

    公用部分(安全描述符、计数器) + 个性部分

    句柄、Windows数据类型:

    WORD:16位无符号整型数据
    DWORD:32位无符号整型数据(DWORD32)
    DWORD64:64位无符号整型数据
    INT:32位有符号整型数据类型
    INT_PTR:指向INT数据类型的指针类型
    INT32:32位符号整型
    INT64:64位符号整型
    UINT:无符号INT
    LONG:32位符号整型(LONG32)
    ULONG:无符号LONG
    LONGLONG:64位符号整型(LONG64)
    SHORT:无符号短整型(16位)
    LPARAM:消息的L参数
    WPARAM:消息的W参数
    HANDLE:对象的句柄,最基本的句柄类型
    HICON:图标的句柄
    HINSTANCE:程序实例的句柄
    HKEY:注册表键的句柄
    HMODULE:模块的句柄
    HWND:窗口的句柄
    LPSTR:字符指针,也就是字符串变量
    LPCSTR:字符串常量
    LPCTSTR:根据环境配置,如果定义了UNICODE宏,则是LPCWSTR类型,否则则为LPCSTR类型
    LPCWSTR:UNICODE字符串常量
    LPDWORD:指向DWORD类型数据的指针
    CHAR:8比特字节
    TCHAR:如果定义了UNICODE,则为WCHAR,否则为CHAR
    UCHAR:无符号CHAR
    WCHAR:16位Unicode字符
    BOOL:布尔型变量
    BYTE:字节类型(8位)
    CONST:常量
    FLOAT:浮点数据类型
    SIZE_T:表示内存大小,以字节为单位,其最大值是CPU最大寻址范围
    VOID:无类型,相当于标准C语言中的void
    WINAPI:Windows API的函数调用方式,常见于SDK头文件中对API函数的声明中,相当于_stdcall(更严格地说,这不是数据类型,而是一种函数调用约定
    BYTE 8位 unsigned char
    CHAR 8位 char
    BOOL 16位 int
    DWORD 32位 unsigned long int
    HANDLE 一般句柄
    HWND 32位 long int
    LONG 32位 long int
    LPCSTR 指向字符串的 const 指针
    LPSTR 指向字符串的指针
    SHORT 16位短整数
    UINT 32位无符号长整数
    WORD 16位无符号短整数
    BITMAP 独立于逻辑设备的位图(DIB)
    LOGBRUSH 逻辑刷
    LOGFONT 逻辑字体
    LOGPEN 逻辑笔
    MSG 窗口消息
    POINT 点
    RECT 矩形
    WNDCLASS 窗口类结构
    hBitmap 为保存DIB图像信息的内存域的句柄
    hBrush 当画图时用于填满设备范围的刷子的句柄
    hCtl 子窗口控件的句柄
    hCursor 鼠标光标句柄
    hDc 设备描述表句柄
    hDlg 文本字体的句柄
    hFont 文本字体的句柄
    hIcon 图标的句柄
    hInstance windows应用程序实例句柄
    hMem 内存块句柄
    hMenu 菜单或弹出式菜单句柄
    hModule 模式的句柄,常用于从一可执行文件获取资源数据
    hPalette 颜色调色板
    hPen 当在设备上画图时用于指明线型的笔的句柄
    hRgn 在窗口上剪贴一块区域的句柄
    hTask 独立于已执行的任务的句柄
    hWnd 窗口句柄
    展开全文
  • windows核心编程中文版下载,包含目录及29节pdf
  • Windows核心编程随笔

    2019-09-29 02:18:24
    最近在学习Windows底层原理,准备写个...我是先从《Windows核心编程》开始了解一些Windows底层管理程序与硬件交互的原理。 Windows核心编程(第5版)电子书的配套代码 学习前需要理解一些系统专业词汇的概念,比如...

    最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li(微软实习期间的Mentor,为人超好)在知乎回答过一些关于学习Windows原理的书籍推荐,大家可以去拜读其中一本来入门。我是先从《Windows核心编程》开始了解一些Windows底层管理程序与硬件交互的原理。

    Windows核心编程(第5版)电子书的配套代码

    学习前需要理解一些系统专业词汇的概念,比如:系统资源、内存管理、句柄、内核态/用户态、Hook、事件、消息等。不然后续对Windows底层原理的理解会有些误差和盲区,例如很容易将系统资源和CPU资源(CPU使用率)相混淆。

    有哪些内核对象:

    令牌对象 Token

    事件对象 Event

    文件对象 File

    文件映射对象 Mapping File

    线程对象 Thread

    时钟对象 Timer

    线程池对象 ThreadPool

    I/O完成端对象 Completion port

    工作对象 Job

    邮槽对象 Mailslot

    互斥对象 Mutex

    管道对象 Pipe

    进程对象 Process

    信号灯对象 Semaphore

    ...

    内核对象的结构:

    公用部分(安全描述符、计数器) + 个性部分

    1082520-20190926095811829-529832749.png

    句柄、Windows数据类型:

    WORD:16位无符号整型数据

    DWORD:32位无符号整型数据(DWORD32)

    DWORD64:64位无符号整型数据

    INT:32位有符号整型数据类型

    INT_PTR:指向INT数据类型的指针类型

    INT32:32位符号整型

    INT64:64位符号整型

    UINT:无符号INT

    LONG:32位符号整型(LONG32)

    ULONG:无符号LONG

    LONGLONG:64位符号整型(LONG64)

    SHORT:无符号短整型(16位)

    LPARAM:消息的L参数

    WPARAM:消息的W参数

    HANDLE:对象的句柄,最基本的句柄类型

    HICON:图标的句柄

    HINSTANCE:程序实例的句柄

    HKEY:注册表键的句柄

    HMODULE:模块的句柄

    HWND:窗口的句柄

    LPSTR:字符指针,也就是字符串变量

    LPCSTR:字符串常量

    LPCTSTR:根据环境配置,如果定义了UNICODE宏,则是LPCWSTR类型,否则则为LPCSTR类型

    LPCWSTR:UNICODE字符串常量

    LPDWORD:指向DWORD类型数据的指针

    CHAR:8比特字节

    TCHAR:如果定义了UNICODE,则为WCHAR,否则为CHAR

    UCHAR:无符号CHAR

    WCHAR:16位Unicode字符

    BOOL:布尔型变量

    BYTE:字节类型(8位)

    CONST:常量

    FLOAT:浮点数据类型

    SIZE_T:表示内存大小,以字节为单位,其最大值是CPU最大寻址范围

    VOID:无类型,相当于标准C语言中的void

    WINAPI:Windows API的函数调用方式,常见于SDK头文件中对API函数的声明中,相当于_stdcall(更严格地说,这不是数据类型,而是一种函数调用约定

    BYTE 8位 unsigned char

    CHAR 8位 char

    BOOL 16位 int

    DWORD 32位 unsigned long int

    HANDLE 一般句柄

    HWND 32位 long int

    LONG 32位 long int

    LPCSTR 指向字符串的 const 指针

    LPSTR 指向字符串的指针

    SHORT 16位短整数

    UINT 32位无符号长整数

    WORD 16位无符号短整数

    BITMAP 独立于逻辑设备的位图(DIB)

    LOGBRUSH 逻辑刷

    LOGFONT 逻辑字体

    LOGPEN 逻辑笔

    MSG 窗口消息

    POINT 点

    RECT 矩形

    WNDCLASS 窗口类结构

    hBitmap 为保存DIB图像信息的内存域的句柄

    hBrush 当画图时用于填满设备范围的刷子的句柄

    hCtl 子窗口控件的句柄

    hCursor 鼠标光标句柄

    hDc 设备描述表句柄

    hDlg 文本字体的句柄

    hFont 文本字体的句柄

    hIcon 图标的句柄

    hInstance windows应用程序实例句柄

    hMem 内存块句柄

    hMenu 菜单或弹出式菜单句柄

    hModule 模式的句柄,常用于从一可执行文件获取资源数据

    hPalette 颜色调色板

    hPen 当在设备上画图时用于指明线型的笔的句柄

    hRgn 在窗口上剪贴一块区域的句柄

    hTask 独立于已执行的任务的句柄

    hWnd 窗口句柄

    转载于:https://www.cnblogs.com/ckjbug/p/11589106.html

    展开全文
  • Windows核心程式设计 Windows核心编程随笔,原始码,电子书
  • windows核心编程总结

    2020-12-01 10:52:22
    windows核心编程总结 第一章 错误处理 1.常见windows函数返回值数据类型 VOID:不可能失败 BOOL:失败返回0,否则返回一个非0值 HANDLE:失败返回NULL,否则HANDLE标识一个可操作的对象 POVID:失败返回NULL,否则将...
  • Windows-core-programming-source-code:Windows核心编程光盘源码
  • VC Windows核心编程第五版随书源码集,这些例子是很好的学习VC 编程的资料,每一个都可以编译运行,对照《VC Windows核心编程》这本书,理论加实践,会有更好的学习效果。
  • Windows核心编程》PASCAL例子,源码下载,01-ErrorShow、04-ProcessInfo、07-SchedLab、Queue、DIPSLib、-ImgWalk、AppInst、Spreadsheet、CopyData、VMAlloc、VMAlloc、-VMStat、TimedMsgBox。
  • Windows核心编程 之 字符编码
  • windows核心编程

    2019-10-07 19:56:22
    这段时间把《windows核心编程》给读完了,感觉很爽,不愧为一本经典书籍呀。 读完这本书,我终于把原来不太明白的地方搞清楚了,感觉对windows又有了深一步的了解。我在这里要记录一下我一直以来写的错误代码。 1、...
  • windows核心编程第1章

    2020-08-26 14:52:51
    Windows核心编程》开篇并没有直接告诉我们 Microsoft Windows提供的诸多特性,而是先告诉我们Windows API如何处理进行错误处理。 通常我们调用Windows API都会遇到调用失败的情况,但是如果知道Windows API返回的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,360
精华内容 2,544
关键字:

windows核心编程