PIDGenRc函数中lpstrRpc的由来和InitializePidVariables函数的关系

第一部分:

./base/ntsetup/syssetup/setupp.h:404:#define MAX_PID30_RPC  5

BOOL
InitializePidVariables(
)
{

   //
//  Get the Pid from HKEY_LOCAL_MACHINE\SYSTEM\Setup\Pid
//
Error = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
((MiniSetup || OobeSetup) ? szFinalPidKeyName : szPidKeyName),
0,
KEY_READ,
&Key );

    if( Error != ERROR_SUCCESS ) {
SetuplogError( LogSevFatalError,
SETUPLOG_USE_MESSAGEID,
MSG_LOG_PID_CANT_READ_PID, NULL,
SETUPLOG_USE_MESSAGEID,
MSG_LOG_X_PARAM_RETURNED_WINERR,
szRegOpenKeyEx,
Error,
szPidKeyName,
NULL,NULL);
return( FALSE );
}

    cbData = sizeof(Data);
Error = RegQueryValueEx( Key,
((MiniSetup || OobeSetup) ? szFinalPidValueName : szPidValueName),
0,
&Type,
( LPBYTE )Data,
&cbData );
RegCloseKey( Key );
if( (Error != ERROR_SUCCESS) ) {
SetuplogError( LogSevFatalError,
SETUPLOG_USE_MESSAGEID,
MSG_LOG_PID_CANT_READ_PID, NULL,
SETUPLOG_USE_MESSAGEID,
MSG_LOG_X_PARAM_RETURNED_WINERR,
szRegQueryValueEx,
Error,
szPidValueName,
NULL,NULL);
return( FALSE );
}

    //
// Take care of the mini-setup case first because it's quick.
// The Pid seeds left behind by textmode are long gone, so
// we're going to pull out a few rabbits.  We'll go read the
// real Pid (the one gui-mode generated the first time he
// ran through) and use that to determine which kind of
// PID to prompt for later on.
//
if( MiniSetup || OobeSetup ) {

        //
// tuck away the rpc code for later on
//
wcsncpy( Pid30Rpc, Data, MAX_PID30_RPC +1 );
Pid30Rpc[MAX_PID30_RPC] = (WCHAR)'\0';


//
// tuck away the rpc code for later on
//
wcsncpy( Pid30Rpc, Data, MAX_PID30_RPC +1 );
Pid30Rpc[MAX_PID30_RPC] = (WCHAR)'\0';

第二部分:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Setup\Pid]
"Pid"="76487270"

第三部分:补充,windows server 2003 sp0 简体中文版(20030327)的pid为:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Setup\Pid]
"Pid"="55039000"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93464.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx学习笔记(七)——Nginx负载均衡

⚖️ Nginx学习笔记(七)——Nginx负载均衡 📌 一、负载均衡核心概念 架构定位: #mermaid-svg-00aCvwmJ40DHNd66 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-00aC…

MQ积压如何处理

处理消息队列(MQ)积压是一个需要系统化分析的运维挑战。下面我将结合常见原因,分步骤说明处理方案,并区分应急措施和根本解决方案:​一、快速诊断积压原因(核心!)​​​监控告警分析…

Unity与OpenGL中的材质系统详解

引言 在现代3D图形开发中,材质是定义物体外观的核心元素。Unity引擎提供了强大且直观的材质系统,使得开发者能够轻松实现复杂的视觉效果。然而,对于熟悉OpenGL的开发者来说,理解Unity材质系统的工作原理以及如何在OpenGL中实现类…

k8s安装DragonflyDB取代redis

数据库类型线程模型吞吐量 (QPS)延迟 (μs)内存效率适用场景兼容性Memcached纯内存键值存储多线程100K - 500K10 - 100高缓存、会话存储无原生密码认证DragonflyDB多协议内存数据库多线程1M50 - 200中高高吞吐缓存、Redis 替代兼容 RedisKeyDBRedis 多线程分支多线程500K - 1M5…

Horse3D游戏引擎研发笔记(五):在QtOpenGL环境下,仿three.js的BufferGeometry管理VAO和EBO绘制四边形

一、背景介绍 在三维图形渲染中,几何形状的管理是引擎的核心功能之一。Three.js通过BufferGeometry接口实现了对顶点数据和索引数据的高效管理,而OpenGL则通过顶点数组对象(VAO)和元素数组对象(EBO)来实现…

Ping32 与 IP-GUARD 深度对比:Ping32,引领企业数据安全新方向

在数字化时代,企业数据宛如珍贵的宝藏,是推动业务发展、保持竞争优势的核心资产。但与此同时,数据安全威胁也如影随形,内部员工的误操作、恶意窃取,外部黑客的攻击,都可能让企业数据面临泄露风险&#xff0…

洛谷 P2842 纸币问题 1 -普及-

题目描述 某国有 nnn 种纸币,每种纸币面额为 aia_iai​ 并且有无限张,现在要凑出 www 的金额,试问最少用多少张纸币可以凑出来? 输入格式 第一行两个整数 n,wn,wn,w,分别表示纸币的种数和要凑出的金额。 第二行一行 nn…

第十四节:物理引擎集成:Cannon.js入门

第十四节:物理引擎集成:Cannon.js入门 引言 物理引擎为3D世界注入真实感,让物体遵循重力、碰撞和动量等物理规律。Cannon.js是Three.js生态中最强大的物理引擎之一,本文将深入解析其核心机制,并通过Vue3实现物理沙盒系…

二十四、Mybatis-基础操作-删除(预编译SQL)

mybatis环境准备概述与注意事项(springboot项目引入三项必要的起步依赖)项目目录结构mybatis基础操作-删除对应EmpMapper(接口)代码 package com.itheima.mapper;import org.apache.ibatis.annotations.*;Mapper public interface…

JavaScript 核心基础:类型检测、DOM 操作与事件处理

JavaScript 作为松散类型语言,掌握类型检测规则、DOM 元素获取方式及事件处理逻辑,是写出健壮代码的基础。本文系统梳理 JS 高频基础知识点,结合实战场景解析原理与用法,帮你建立清晰的知识框架。 一、JS 数据类型与类型检测&…

软件开发过程中的维护活动

软件开发过程中的维护活动软件维护是软件生命周期中持续时间最长、成本最高的阶段,它并非简单的“修理”,而是一系列旨在延长软件生命周期、保持其价值和适应性的工程化活动。研究表明,软件维护成本可占总成本的60%以上。理解并有效管理维护活…

STC8单片机驱动I2C屏幕:实现时间、日期与温湿度显示

STC8 单片机驱动 I2C 屏幕:实现时间、日期与温湿度显示 在单片机项目中,“数据可视化” 是核心需求之一 —— 将时间、温湿度等关键信息实时显示在屏幕上,能让项目更具实用性。本文以STC8 系列单片机为核心,搭配 I2C 接口的 OLED…

基于SpringBoot+Vue的智能消费记账系统(AI问答、WebSocket即时通讯、Echarts图形化分析)

🎈系统亮点:AI问答、WebSocket即时通讯、Echarts图形化分析;一.系统开发工具与环境搭建1.系统设计开发工具后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17前端: 技术…

[论文笔记] WiscKey: Separating Keys from Values in SSD-Conscious Storage

阅读 WiscKey 论文时随手记录一些笔记。 这篇论文的核心思想理解起来还是很简单的,但是具体涉及到实现还有一些想不明白的地方,后来看到 TiKV 的 Titan 实现也很有趣,索性把这些问题都记录下来并抛出来。 本文中和论文相关的内容&#xff0…

week1-[循环嵌套]画正方形

week1-[循环嵌套]画正方形 题目描述 输入一个正整数 nnn,请使用数字 000 到 999 拼成一个这样的正方形图案(参考样例输入输出):由上至下、由左至右依次由数字 000 到 999 填充。每次使用数字 999 填充后,将从头使用数字…

在 Vue2 中使用 pdf.js + pdf-lib 实现 PDF 预览、手写签名、文字批注与高保真导出

本文演示如何在前端(Vue.js)中结合 pdf.js、pdf-lib 与 Canvas 技术实现 PDF 预览、图片签名、手写批注、文字标注,并导出高保真 PDF。 先上demo截图,后续会附上代码仓库地址(目前还有部分问题暂未进行优化&#xff0…

tomcat 定时重启

tomcat 定时重启 定时重启的目的是:修复内存泄漏等问题,tomcat 长时间未重启,导致页面卡顿,卡死,无法访问,影响用户访问 1.编写脚本 su - tomcat [tomcat@u1abomap02 ~]$ ls restart_tomcat_gosi.sh tomcat_gosi.log vi restart_tomcat_gosi.sh #!/bin/bash# 定义日志目…

WinForm 简单用户登录记录器实现教程

目录 功能概述 实现思路 一、程序入口(Program.cs) 二、登录用户控件(Login.cs) 2.1 控件初始化与密码显示逻辑 2.2 登录控件设计器(Login.Designer.cs) 三、主窗体(Form1.cs&#xff09…

docker 安装 使用

Docker安装 一键安装命令 sudo curl -fsSL https://get.docker.com| bash -s docker --mirror Aliyun启动docker sudo service docker startpull镜像加速配置 sudo vi /etc/docker/daemon.json输入下列内容,最后按ESC,输入 :wq! 保存退出。 {"regis…

无人机探测器技术解析

一、工作模式 无人机探测器通过多模式协同实现全流程防御闭环: 1. 主动扫描模式 雷达主动探测:发射电磁波(如Ka/Ku波段),通过回波时差与多普勒频移计算目标距离、速度及航向,适用于广域扫描(…