驱动开发:内核使用IO/DPC定时器

本章将继续探索驱动开发中的基础部分,定时器在内核中同样很常用,在内核中定时器可以使用两种,即IO定时器,以及DPC定时器,一般来说IO定时器是DDK中提供的一种,该定时器可以为间隔为N秒做定时,但如果要实现毫秒级别间隔,微秒级别间隔,就需要用到DPC定时器,如果是秒级定时其两者基本上无任何差异,本章将简单介绍`IO/DPC`这两种定时器的使用技巧。

驱动开发:内核实现SSDT挂钩与摘钩

在前面的文章`《驱动开发:内核解析PE结构导出表》`中我们封装了两个函数`KernelMapFile()`函数可用来读取内核文件,`GetAddressFromFunction()`函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定`SSDT`函数的`Hook`挂钩操作,与`《驱动开发:内核层InlineHook挂钩函数》`所使用的挂钩技术基本一致,不同点是前者使用了`CR3`

驱动开发:应用DeviceIoContro模板精讲

在笔者上一篇文章`《驱动开发:应用DeviceIoContro开发模板》`简单为大家介绍了如何使用`DeviceIoContro`模板快速创建一个驱动开发通信案例,但是该案例过于简单也无法独立加载运行,本章将继续延申这个知识点,通过封装一套标准通用模板来实现驱动通信中的常用传递方式,这其中包括了如何传递字符串,传递整数,传递数组,传递结构体等方法。可以说如果你能掌握本章模板精讲的内容基本上市面上的

5.7 汇编语言:汇编高效乘法运算

汇编语言是一种面向机器的低级语言,用于编写计算机程序。汇编语言与计算机机器语言非常接近,汇编语言程序可以使用符号、助记符等来代替机器语言的二进制码,但最终会被汇编器编译成计算机可执行的机器码。乘法指令是一种在CPU中实现的基本算术操作,用于计算两个数的乘积。在汇编语言中,乘法指令通常是通过`mul(无符号乘法)`和`imul(有符号乘法)`这两个指令实现的。由于乘法指令在执行时所消耗的时钟周期较多

教你如何轻松搞定云上打印管理

摘要:加快自主创新,满足数字化用户多场景文印需求。 本文分享自华为云社区《有了司印云打印,云上打印管理轻松搞定!》,作者:云商店 。 作为与职场和个人办公息息相关的工作场景,打印长期以来都是办公业务的核心应用和基本能力之一,即使在移动办公、云办公的时代仍然如此。 当前,市面上的打印机品牌型号差异大,

基于随机森林算法进行硬盘故障预测

摘要:本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法,来训练一个硬盘故障预测模型,并测试效果。 本文分享自华为云社区《基于随机森林算法进行硬盘故障预测》,作者:HWCloudAI 。 实验目标 掌握使用机器学习方法训练模型的基本流程; 掌握使用pandas做数据分析

小白科普丨何为树、二叉树和森林?

摘要:本文为大家带来树、二叉树和森林的表示及如何进行相互转换。 本文分享自华为云社区《树、二叉树和森林的表示及相互转换》,作者:1+1=王。 树的基本概念 树的定义:树是n(n >= 0)个节点的==有限==集。当n=0是,称为空树。 树的特点: (1)树的根没有前驱,除根外的其他节点有且仅有一个前

9种跨域方式实现原理

摘要:当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。 本文分享自华为云社区《九种跨域方式实现原理咋回事》,作者:龙哥手记 一、什么是跨域? 1.什么是同源策略及其限制内容? 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同

Nginx的负载均衡策略

Nginx的负载均衡策略 共六种: 轮询、权重、ip_hash、least_conn、fair、url_hash 1、轮询(Round Robin)负载均衡策略:这是一种基本的负载均衡策略,将请求顺序转发给每个后端服务器,每个后端服务器依次处理请求,而轮询正是按照这样的方式平均地为每个后端服务器分配

迟来的秋招面经,17家公司,Java岗位

一位朋友秋招面试了17家公司(都是中小公司或者银行),Java 后端岗。下面是他的个人情况、求职经验已经这17家公司的面经。 # 个人情况和求职经验 其实现在是挺后悔大学没有好好的学习的,因为基本上都会提到一些成绩相关的事情,每次填成绩都只能填个50%(实际上更低),并且还有挂科,没有奖学金,没有学

【专项测试系列】-缓存击穿、穿透、雪崩专项测试

作者:刘须华 一、背景概述: R2M 缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量请求落到数据库,导致数据库资源占满,引起数据库故障。平时对缓存测试时除了关注增删修改查询等基本功能,应该要重点关注缓存穿透、

React跨路由组件动画

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:佳岚 回顾传统React动画 对于普通的 React 动画,我们大多使用官方推荐的 react-transition-group,其提供了四个基本组件 Tra

9.前端初步设计

空了挺长时间没写了。一些琐事耽误,然后另一方面就是在写前端。因为我不是学前端出身,所以前端相对比较弱,一下子我也搞的不是很全面,最主要的是没法讲的很细致,前端这东西吧,都说简单,但是想做的很好看那还是需要一些深入学习的。上一篇的文章是邮箱发送,意在做注册的时候发送验证码。现在页面基本完成了,毕竟登录

入门篇-其之四-字符串String的简单使用

什么是字符串? 在Java编程语言中,字符串用于表示文本数据。 字符串(String)属于引用数据类型,根据String的源码,其头部使用class进行修饰,属于类,即引用数据类型。 字符串的表示 字符串使用双引号""表示,在双引号中你可以写任意字符。 和前面定义并初始化基本数据类型的变量一样,定义

基础知识小结

为什么会存在这个 大概在2021年中左右,我决定未来5-8年还是在搞技术,所以我就在想我该如何完善自己的知识体系,要怎么样才能成为一个合格的、专业的前端工程师,如果后面不止于前端,我要怎么样才能在这个行业走的更远。所以就有了先提升基础的知识点的想法,虽然专业是软件工程,但是这些基础真的基本都还给书本

PowerDotNet平台化软件架构设计与实现系列(14):平台建设指南

软件开发中常见的几种不同服务模型包括SaaS(软件即服务)、LaaS(许可即服务)、PaaS(平台即服务)、CaaS(容器即服务)、IaaS(基础设施即服务)和FaaS(功能即服务)。 很多人认为IaaS和FaaS是趋势,是未来软件设计与开发人员的基本必备技能,PowerDotNet和PowerDo

2023 年微服务后端开发的 11 个最佳工具

前言 微服务架构以将复杂的应用程序分解为易管理的服务而闻名,然而,管理微服务是一项具有挑战性的任务。为了确保开发工作流程的高效性,需要采用特定的工具。 在本文中,小编将为您介绍2023年最热的11款后端微服务开发工具,并全面介绍它们的基本功能和常见用例。不论您是经验丰富的微服务开发人员,还是初涉微服

【pandas基础】--数据整理

pandas进行数据整理的意义在于,它是数据分析、数据科学和机器学习的前置步骤。 通过数据整理可以提前了解数据的概要,缺失值、重复值等情况,为后续的分析和建模提供更为可靠的数据基础。 本篇主要介绍利用pandas进行数据整理的各种方法。 1. 数据概要 获取数据概要信息可以帮助我们了解数据的基本情况

【pandas基础】--数据统计

在进行统计分析时,`pandas`提供了多种工具来帮助我们理解数据。 `pandas`提供了多个聚合函数,其中包括均值、标准差、最大值、最小值等等。 此外,`pandas`还可以进行基于列的统计分析,例如通过`groupby()`函数对数据进行聚合,并计算每组的统计分析结果。 除了基本的统计分析之外

【numpy基础】--目录(完结)

# 概述 NumPy是一个开源的科学计算库,它提供了高效的数值计算和数组操作功能,主要包括: * 多维数组的创建、操作和索引。 * 数组的切片、拼接和转置。 * 数组的乘法、除法、求导、积分、对数等基本运算。 * 数组的逐元素操作、求平均值、中位数、众数等统计量。 * 数组作为列表、元组等数据类型进