进程基本结构说明

从零构建PEMFC仿真模型:MATLAB/Simulink中的模块化拆解与系统集成 本文详细介绍了如何在MATLAB/Simulink环境中从零构建质子交换膜燃料电池(PEMFC)仿真模型,包括电化学模型、气体供应系统和热管理系统的模块化实现。通过多物理场耦合技巧和系统集成策略,帮助工程师和研究者高效开发PEMFC控制策略,优化性能并实现实时仿真。 阅读详情

 

注:下面的某些结构因为很复杂,成员过多,有些没有写全,列在一起的成员变量不一定在
源代码中就是连续的。
1、_EPROCESS 结构 : Ps.h (/base/ntos/inc/ ) ;242
typedef struct _EPROCESS { // 执行体进程块(Executive Process Block)
KPROCESS Pcb; //进程控制块,即PCB 块
EX_PUSH_LOCK ProcessLock; //进程锁
LARGE_INTEGER CreateTime; //进程创建的时间
LARGE_INTEGER ExitTime; //进程结束的时间
EX_RUNDOWN_REF RundownProtect; //? 裁减保护结构
HANDLE UniqueProcessId; //PID 号,进程的唯一标识符
LIST_ENTRY ActiveProcessLinks; //系统中的全局进程列表
/*++
Quota Fields.
typedef enum _PS_QUOTA_TYPE {
PsNonPagedPool = 0,
PsPagedPool = 1,
PsPageFile = 2,
PsQuotaTypes = 3
} PS_QUOTA_TYPE, *PPS_QUOTA_TYPE;
--*/
SIZE_T QuotaUsage[PsQuotaTypes]; //? 配额使用量
SIZE_T QuotaPeak[PsQuotaTypes]; //? 配额峰值
SIZE_T CommitCharge; //?
SIZE_T PeakVirtualSize; //进程的虚拟内存峰值
SIZE_T VirtualSize; //进程的虚拟内存内存大小
LIST_ENTRY SessionProcessLinks; //进程会话列表
PVOID DebugPort; //调试端口
PVOID ExceptionPort; //异常端口
PHANDLE_TABLE ObjectTable; //对象句柄列表
EX_FAST_REF Token; //访问令牌
PFN_NUMBER WorkingSetPage; //工作集页面
KGUARDED_MUTEX AddressCreationLock; //Address creation lock.
ULONG_PTR HardwareTrigger; //? 硬件触发器
//Describes the status of the portions of the address space that exist in the process.
PMM_AVL_TABLE PhysicalVadRoot;
PVOID CloneRoot; //Used in process forking
PFN_NUMBER NumberOfPrivatePages; //进程私有页面数量
PFN_NUMBER NumberOfLockedPages; //进程固定的页面数量
PVOID Win32Process; //WIN32 子系统进程
struct _EJOB *Job; //与进程相关的作业信息
PVOID SectionObject; //区域对象(文件映射对象)
PVOID SectionBaseAddress; //载入地址空间的基址
//配额块,限制非页交换区、页交换区、文件的使用
PEPROCESS_QUOTA_BLOCK QuotaBlock;
PPAGEFAULT_HISTORY WorkingSetWatch; //缺页历史记录
//Handle to the window station object that the process is associated with
HANDLE Win32WindowStation;
HANDLE InheritedFromUniqueProcessId;//父进程PID
PVOID LdtInformation; //Local Directory Table 信息
PVOID VadFreeHint; //VAD 结构指针,用于插入VAD 或移除时寻找空闲块
PVOID VdmObjects; //虚拟DOS 对象结构指针
PVOID DeviceMap; //Address of object directory to resolve device name references
PVOID Spare0[3]; //保留字节
union {
HARDWARE_PTE PageDirectoryPte; //进程页目录的硬件页表入口
ULONGLONG Filler; //填充字节
};
PVOID Session; //会话空间结构指针
UCHAR ImageFileName[ 16 ]; //进程运行的映像名称
LIST_ENTRY JobLinks; //作业的进程列表入口
PVOID LockedPagesList; //? 被锁的页面列表指针
LIST_ENTRY ThreadListHead; //进程中所有线程链表头
PVOID SecurityPort; // Used by rdr/security for authentication.
PVOID PaeTop; //PAE top level page directory
ULONG ActiveThreads; //活跃线程数
ACCESS_MASK GrantedAccess; //threads granted access
NTSTATUS LastThreadExitStatus; //最后一个线程的退出状态
ULONG DefaultHardErrorProcessing; //默认硬件错误处理
PPEB Peb; //进程环境块,存放在用户地址空间
EX_FAST_REF PrefetchTrace; //Pointer to the prefetch trace block.
//Read, write and other operation and transfer count
LARGE_INTEGER ReadOperationCount;
LARGE_INTEGER WriteOperationCount;
LARGE_INTEGER OtherOperationCount;
LARGE_INTEGER ReadTransferCount;
LARGE_INTEGER WriteTransferCount;
LARGE_INTEGER OtherTransferCount;
//当前页面大小加上可用物理内存的和,不包括非分页区的RAM。
SIZE_T CommitChargeLimit;
SIZE_T CommitChargePeak;
//AWE(Address windowing extensions)信息,AWE 能让应用程序访问到4GB 的内存空间
PVOID AweInfo;
//进程的安全验证信息,包括映像文件的完全路径
SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo;
MMSUPPORT Vm; //虚拟内存信息
LIST_ENTRY MmProcessLinks; //内存管理入口
ULONG ModifiedPageCount; //修改的页面数
#define PS_JOB_STATUS_NOT_REALLY_ACTIVE 0x00000001UL
#define PS_JOB_STATUS_ACCOUNTING_FOLDED 0x00000002UL
#define PS_JOB_STATUS_NEW_PROCESS_REPORTED 0x00000004UL
#define PS_JOB_STATUS_EXIT_PROCESS_REPORTED 0x00000008UL
#define PS_JOB_STATUS_REPORT_COMMIT_CHANGES 0x00000010UL
#define PS_JOB_STATUS_LAST_REPORT_MEMORY 0x00000020UL
#define PS_JOB_STATUS_REPORT_PHYSICAL_PAGE_CHANGES 0x00000040UL
ULONG JobStatus; //作业状态
??
ULONG Flags; //进程标识符,如PROCESS_EXITING、CREATE_FAILED 等
NTSTATUS ExitStatus; //进程的退出状态
//颜色链页框号号码,通过“颜色”(空闲或置零列表上的页面在处理器内存高速缓存
//中的位置)的字段链接物理页面
USHORT NextPageColor;
//子系统版本号信息
union {
struct {
UCHAR SubSystemMinorVersion;
UCHAR SubSystemMajorVersion;
};
USHORT SubSystemVersion;
};
UCHAR PriorityClass; //进程所属的优先级类
MM_AVL_TABLE VadRoot; //VAD(Virtual Address Descriptor)
ULONG Cookie; //Cookie
}EPROCESS, *PEPROCESS;
2、_KPROCESS 结构 Ke.h (/base/ntos/inc) ;944
typedef struct _KPROCESS { //Pcb 块的结构
DISPATCHER_HEADER Header; //调度程序头
LIST_ENTRY ProfileListHead; //双向链表,具体用途不明
ULONG_PTR DirectoryTableBase[2];//进程的页目录表基址
KGDTENTRY LdtDescriptor; //进程的LDT 描述符
KIDTENTRY Int21Descriptor; //进程的Int21 中断IDT 描述符,保持与DOS 兼容
USHORT IopmOffset; //IO 操作起始地址
UCHAR Iopl; //IO 操作权限级
volat ile KAFFINITY ActiveProcessors;//系统中活动的处理器数目
ULONG KernelTime; //在内核模式运行的时间和
ULONG UserTime; //在用户态运行的时间和
LIST_ENTRY ReadyListHead; //就绪态进程队列链表
SINGLE_LIST_ENTRY SwapListEntry; //交换态队列链表
PVOID VdmTrapcHandler; //VDM 陷阱处理程序
LIST_ENTRY ThreadListHead; //该进程所拥有的线程列表
KSPIN_LOCK ProcessLock; //进程锁
KAFFINITY Affinity; //默认亲和处理器集合
#define KPROCESS_AUTO_ALIGNMENT_BIT 0
#define KPROCESS_DISABLE_BOOST_BIT 1
#define KPROCESS_DISABLE_QUANTUM_BIT 2
union {
struct {
LONG AutoAlignment : 1; //内存边界自动对齐
LONG DisableBoost : 1; //禁止动态优先级增加特性
LONG DisableQuantum : 1; //禁止时间片轮转机制
LONG ReservedFlags : 29;
};
LONG ProcessFlags;
};
SCHAR BasePriority; //基本优先级
SCHAR QuantumReset; //时间片
UCHAR State; //进程所处的状态
UCHAR ThreadSeed; //线程种子
UCHAR PowerState; //电源状态
UCHAR IdealNode; //首选处理器
BOOLEAN Visited; //是否被访问
??
ULONG_PTR StackCount; //堆栈引用计数
LIST_ENTRY ProcessListEntry; //进程链表入口
} KPROCESS, *PKPROCESS, *PRKPROCESS;
3、PEB 结构 Pebteb.h (public/sdk/inc) ;75
//PEB 结构有些复杂,包含的信息比较多,在此只列出一小部分
#define PEBTEB_POINTER(x) x
#define PEBTEB_STRUCT(x) x
typedef struct PEBTEB_STRUCT(_PEB) {
BOOLEAN InheritedAddressSpace; //继承的地址空间
??
PEBTEB_POINTER(HANDLE) Mutant; // 互斥对象句柄
PEBTEB_POINTER(PVOID) ImageBaseAddress; //映像基址
PEBTEB_POINTER(PVOID) SubSystemData; //子系统数据
PEBTEB_POINTER(PVOID) ProcessHeap; //进程堆空间
PEBTEB_POINTER(struct _RTL_CRITICAL_SECTION*) FastPebLock;//临界区对象
PEBTEB_POINTER(PVOID) KernelCallbackTable; //内核调用表
PEBTEB_POINTER(PPEB_FREE_BLOCK) FreeList;//已释放的PEB 列表
ULONG NumberOfProcessors; //处理器数量
ULONG NtGlobalFlag; //全局标示符
LARGE_INTEGER CriticalSectionTimeout; //临界区域超时
PEBTEB_POINTER(PVOID) GdiSharedHandleTable;//GDI 共享的句柄列表
??
ULONG OSMajorVersion; //OS 版本号
ULONG OSMinorVersion; //OS 版本号
USHORT OSBuildNumber; //内核编译次数
USHORT OSCSDVersion; //CSD 版本号
ULONG OSPlatformId; //OS 平台信息
ULONG ImageSubsystem; //映像子系统
ULONG ImageSubsystemMajorVersion;//映像子系统版本号
ULONG ImageSubsystemMinorVersion;//映像子系统版本号
PEBTEB_POINTER(ULONG_PTR) ImageProcessAffinityMask;//映像进程相似性掩码
PEBTEB_STRUCT(GDI_HANDLE_BUFFER) GdiHandleBuffer;//GDI 句柄缓冲区
ULONG SessionId; //会话ID
PEBTEB_POINTER(SIZE_T) MinimumStackCommit; //初始化最小堆栈空间
??
} PEBTEB_STRUCT(PEB), * PEBTEB_STRUCT(PPEB);

辉芒微教程第七篇《PWM与PWM3调节LED灯的亮度》 这个其实就是PR3L = 128设置的,由于我们刚刚寄存器设置了8位模式,其设置的范围就是0-255,而128/255≈50%左右,因此PR3L就是我们的占空比调节的寄存器,我们可以通过它来调节占空比,大家可以试试它占空比设置10%,30%,60%来看看它的不同效果,灯的亮度是肯定不一样的,如果有条件的朋友,可以购买一款逻辑分析仪去看他的占空比。平平无期的这个东西有什么东东用,貌似是没什么用,只是一个概念而已,是不是不同设备可以设置1秒,3秒,10秒的周期就行?但是它占空比为什么是50%,怎么得来的? 阅读详情

相关推荐

Cesium进阶学习四、shadertoy(着色器)

Cesium进阶学习着色器

程迷学习的博客 4321

PEB结构学习

一、什么是PEB结构(Process Envirorment Block Structure)     英文翻译过来就是进程环境信息块,这里包含了一写进程的信息。我接触到这个东西主要是在研究软件的保护技术的时候,有种保护技术会检测是否有调试器正在调试保护软件,然后需要获取是否被调试的消息,这个消息存储在PEB结构中. 二、PEB结构(可以去msdn官网查看原文)     msdn地址:...

weixin_33672109的博客 1615

SAP采购申请详述;以及采购计划协议/交货计划行

SAP采购申请详述;以及采购计划协议/交货计划行

saplakes的博客 4341

进程结构体

进程结构体EPROCESS 每个windows进程在0环都有对应的结构体:EPROCESS这个结构体包含了进程所有重要的信息。 使用windbg查看:dt _EPROCESS EPROCESS与PEB是有区别的:EPROCESS在0环PEB在3环。 EPROCESS结构体属性(KPROCESS) +0x0 Pcb 是一个KPROCESS结构体 Windbg查看KPROCESS:dt _KPROCESS KPROCESS第一个属性: +0x0 Header DISPATCHER_HEARDER 只要是该DI

网络安全相关文章分享 5506

基于STM32的可穿戴式多生理参数实时监测与预警系统

针对传统可穿戴健康设备存在的生理参数监测种类单一、数据处理依赖云端导致响应滞后、续航能力弱等问题,设计一种基于STM32的可穿戴式多生理参数实时监测与预警系统。系统以STM32L476RG低功耗微控制器为核心,集成心率血氧传感器、体温传感器、血压传感器,实现人体心率、血氧饱和度、体温、收缩压/舒张压的同步采集;通过边缘端轻量化数据处理算法完成参数异常判定,结合低功耗硬件设计与软件休眠策略,在保证监测精度的同时延长续航。测试结果表明,系统心率监测误差≤2次/分钟,血氧饱和度误差≤2%,体温误差≤±0.2℃,血

m0_74026776的博客 2039

如何实现chrome谷歌浏览器多开(独立环境 独立cookie)

由于各种各样的原因,你可能需要在一个电脑登录某个平台,比如一个电脑登录3个公众号,或者3个知乎等等。最简单的方案是,直接安装3个不同的浏览器,比如一个谷歌浏览器,一个火狐浏览器,一个 Edge 浏览器。这个方案也能解决,但如果想多开10个呢?安装10个不同的浏览器也能解决,但感觉这样比较复杂,另外一方面安装太多的应用,会导致电脑卡顿。这里给大家介绍,我在 Win 和 Mac 系统下的躲开解决方案。Win 系统下的解决方案最为简单,原理就是给不同的谷歌浏览器,指向不同的用户存储路径即可。

lzqial1987的专栏 1万+

驱动开发:内核中进程与句柄互转

在内核开发中,经常需要进行进程和句柄之间的互相转换。进程通常由一个唯一的进程标识符(PID)来标识,而句柄是指对内核对象的引用。在Windows内核中,`EProcess`结构表示一个进程,而HANDLE是一个句柄。为了实现进程与句柄之间的转换,我们需要使用一些内核函数。对于进程PID和句柄的互相转换,可以使用函数如`OpenProcess`和`GetProcessId`。OpenProcess函数接受一个PID作为参数,并返回一个句柄。GetProcessId函数接受一个句柄作为参数,并返回该进程的P

微软技术分享 1万+

沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第六章 接收端结构及功能说明

总目录在这哦~ https://blog.youkuaiyun.com/z123canghai/article/details/107700878 第六章 接收端结构及功能说明 子目录 6.1 RX的模拟前端 6.2 RX的OOB信号 6.3 RX的均衡器 6.4 RX的CDR 时钟数据恢复 6.5 RX时钟输出结构 6.6 RX 的极性控制 6.7 RX 的PRBS 6.8 Rx字节、字的对齐功能 6.9 Rx接收弹性缓冲区 6.10 Rx的时钟纠正 6.11 Rx接收通道绑定 6...

滄海的博客 1万+

PEB结构

PEB进程环境快,下面是其一些结构 //===============================================================================================// typedef struct _UNICODE_STR { USHORT Length; USHORT MaximumLength; PWSTR pB

ShadowAssassin的专栏 6385

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 704

运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案

本文主要介绍了运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

内核级进程遍历

内核级进程遍历;

bcbobo21cn的专栏 717

编译zlib库给IOS平台用

在弹出的下面对话框中选择Unix Makefiles ,然后点击(Done)完成。使用 lipo与otool查看库类型为arm64,现在可在ios平台使用该库了。zlib自带CMakeLists.txt 所以用CMake-GUI来生成。修改为与系统当前安装的cmake版本 (如:3.22.1)选择zlib源码目录及输出目录,输入下图的CMAKE参数。点击Configure,在弹出的对话框中选择Yes。cmake --install . 进行安装。cmake --build . 进行编译。

994

进程一、进程基本概念

在课本上,进程被描述为运行起来的程序,内存中的程序。站在操作系统内核角度进程又能被描述成担当分配系统资源的实体。一个进程被加载到内存中并不是绝对唯一的,多个进程同时进行是常态,为了更好的管理就需要对各个进程做出更好的描述。上面说过操作系统是通过管理相对应的数据来进行资源管理分配的,在操作系统中有专门的数据结构专门记录存储描述各个进程的信息--PCB,Linux下PCB就是task_struct数据结构。带有相关信息的内核数据结构task_struct(描述) + 自己的代码程序和数据(实体)

2402_88062890的博客 917

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

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

【Linux】进程

本文将详细的介绍Linux环境的进程,与进程状态和进程优先级。

Yui_的博客 2049

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux命令:通过pstree快速显示进程及进程之间的关系

pstree是一个在类Unix系统中广泛使用的命令行工具,主要用于以树状结构可视化当前系统中进程之间的关系。这个命令显示的是进程间的父子关系,从一个初始进程(通常是init或systemd)开始,逐级展示每个进程及其子进程。pstree提供了多种选项来控制输出的格式和内容,如显示进程ID、用户名、完整命令行参数等。通过pstree,用户可以直观地看到哪个进程是父进程,哪个是子进程,有助于快速理解进程的层次结构和父子关系。在诊断系统问题时,pstree也可以帮助确定哪些进程是问题的根源,从而采取相应的措施进行

weixin_70208651的博客 2110

第一章 VHDL基本结构

第一章 VHDL基本结构 1.1   实体1.2   结构体1.3   块、子程序和进程  1.4   库和程序包 1.5   配置               一个完整的VHDL程序,或者说设计实体,通常要求最低能为VHDL综合器所支持,并能作为一个独立的设计单元,即元件的形式而存在的VHDL程序。在VHDL程序中,通常包含实体(ENTITY)、结构体(ARCHITECT

云,风扬起的地方 5030

进程概念 | 进程状态 | 进程优先级

子进程被创建的时候,他的代码,数据结构以及taskstruct都源自于父进程的代码和数据以及父进程的task struct。而采用对下进行软硬件资源管理的手段来保证资源是稳定的,高效的,安全的,能进行良好的工作。对于子进程fork函数返回零是为了让子进程能够区别自己是子进程的身份,因为子进程可以通过这个返回值知道自己是新创建的子进程从而执行相应的代码逻辑比如执行与父进程不同的任务。而对于进程管理,在进程运行的过程中,从进程加载,进程运行到进程结束的整个生命周期里,操作系统要对进程进行管理。

2301_78131481的博客 896

Linux进行概念--进程的基本概念与基本操作

进程具有独立性;进程数据拷贝时就进行的写时拷贝。

2302_80253411的博客 760

Linux进程简介

Linux进程管理摘要:Linux是多用户多任务操作系统,通过进程调度实现并发执行。进程是程序执行的动态实例,具有唯一进程ID(PID),由内核通过进程控制块(PCB)管理。进程内存映像包含代码段、数据段、堆栈段等结构。进程状态包括就绪、运行、阻塞等,并会相互转换。进程分为交互式、批处理和守护进程三类。常用命令如ps、top查看进程,kill终止进程。

hsjkdhs的博客 1093

Linux进程概念

冯诺依曼体系结构是当代计算机的基本结构,它主要包括几个板块,输入设备,输出设备,存储器,运算器和控制器。下面是简略版的图解析:输入设备主要包含鼠标,键盘,话筒等主要进行数据的传输;存储器即内存用于将接受输入设备的数据,为数据进行排队后交给CPU处理,在CPU数据返回后再传给输出设备,因此内存是冯诺依曼体系结构最重要的部分;接着是CPU,运算器和控制器结合构成了CPU,运算器主要负责进行代码的逻辑运算和算数运算,控制器主要负责对代码进行控制;最后是输出设备,主要是显示器,喇叭等负责数据的输出。

2401_86449430的博客 1万+

进程调度的基本过程

这里的A和B看到的内存都是虚拟内存,比如A操作某个内存中的数据,就需要把操作的虚拟内存地址告诉系统,系统再把操作的虚拟地址翻译成物理地址(有一个类似于hash表这样的映射结构,称为”页表“)。(3)进程的上下文:进程从CPU离开之前,需要”保存现场“,把当前CPU中各种寄存器的状态都记录到内存中,等下次进程回到CPU上执行的时候,就可以把寄存器的值恢复回去,进程就会沿着上次执行到的位置继续向后执行。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

qq_58032742的博客 195

操作系统进程调度的基本过程

如果进程处于就绪状态,高优先级的进程会被操作系统优先调度,并且调度该进程的时间多,频率高;进程调度时,操作系统会切换进程,会出现操作系统将进程从CPU上调度走的情况,因此调度走之前会保存本次进程执行的上下文(通常为CPU寄存器的值),下次再调度该进程时,需要按照这次的上下文,继续执行。以Linux系统为例,创建进程就是创建一个PCB结构体并在链表中插入,销毁进程就是在链表上把PCB删除,并且释放PCB,修改进程就是修改链表中的PCB内部的信息,浏览进程就是遍历链表的每一个节点,依次显示信息。

weixin_41965831的博客 437

Linux 进程概念 超详细!

进程是一个程序的执行实例,是正在执行的程序,比如我们编译出来的可执行文件(程序),在我们双击运行之后,程序被加载到内存中,自此程序就变成了进程,所以简单来说,把程序加载到内存中,就变成了进程。进程 = PCB+代码和数据将进程的信息放在一个叫做进程控制块(PCB)的数据结构中,那么可以认为是进程的属性集合。

subenhao的博客 912

进程,线程解析

进程提供更强的隔离性和安全性,但资源开销大;线程则轻量高效,适合需要高并发的场景,但共享资源可能导致竞争条件(需同步机制如锁)。在实际编程中,选择进程还是线程取决于需求:如果任务需要独立资源(如不同安全级别),用进程;如果任务共享数据且需快速响应,用线程。

2302_79276567的博客 882

linux系统创建进程,Linux系统中进程的创建

1.Linux中的进程进程是程序执行的一个实例,也是系统资源调度的最小单位。如果同一个程序被多个用户同时运行,那么这个程序就有多个相对独立的进程,与此同时他们又共享相同的执行代码,在Linux系统中进程的概念类似于任务或者线程(task & threads).进程是一个程序运行时候的一个实例实际上说的是它就是一个可以充分描述程序以达到了其可以运行状态的的一个数据和代码集合。一个进程会被产生...

weixin_31951989的博客 768
上一篇: 映射MAP与映像IMAGE
下一篇: 如何建立内核级钩子控制操作系统实现程序隐身
tomorrowsprogress
博客等级 码龄20年 16粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值