当前位置: 首页 > java >正文

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.xdnf.cn/news/17884.html

相关文章:

  • JMeter性能测试详细版(适合0基础小白学习--非常详细)
  • 基于SpringBoot的救援物资管理系统 受灾应急物资管理系统 物资管理小程序
  • 浏览器环境下AES-GCM JavaScript 加解密程序
  • Elasticsearch ABAC 配置:实现动态、细粒度的访问控制
  • 【C#】跨平台创建你的WinForms窗体应用(WindowsUbuntu)
  • 新手入门 Makefile:FPGA 项目实战教程(一)
  • Java面试场景题大全精简版
  • vue3使用leaflet地图
  • 力扣(LeetCode) ——225 用队列实现栈(C语言)
  • 算法基础 第3章 数据结构
  • C++类与对象核心知识点全解析(中)【六大默认成员函数详解】
  • P1281 [CERC1998] 书的复制
  • TCP 连接管理:深入分析四次握手与三次挥手
  • 2025年大模型安全岗的面试汇总(题目+回答)
  • 扩展用例-失败的嵌套
  • 大语言模型基础
  • 监控插件SkyWalking(二)集成方法
  • 7、C 语言数组进阶知识点总结
  • Mac 新电脑安装cocoapods报错ruby版本过低
  • 仪器制造业推广平台推荐有哪家
  • 计算机视觉(opencv)实战二——图像边界扩展cv2.copyMakeBorder()
  • K8S企业级应用与DaemonSet实战解析
  • 我们可以无损放大一个transformer吗
  • [vibe coding-lovable]lovable是不是ai界的复制忍者卡卡西?
  • 微美全息(WIMI.US)借区块链与聚类技术,开启物联网去中心化安全架构新纪元
  • Maven学习笔记
  • iOS Sqlite3
  • PDF 段落提取利器:Spring AI 的 ParagraphPdfDocumentReader 实战
  • docker 容器管理入门教程
  • 【科研绘图系列】R语言绘制微生物丰度和基因表达值的相关性网络图