草庐IT

$物理学家

全部标签

c# - 为什么系统调用 GetIpNetTable 的物理地址有 8 个字节(而不是 6 个字节)?

在我最新的项目中,我使用GetIpNetTable从C#使用.NET访问WindowsARP表我注意到,当我查看MAC地址时,我的条目的最后两个字节(7和8)不断变化!由于MAC地址通常只有6个字节,我想知道这两个字节包含什么...参见http://msdn.microsoft.com/en-us/library/cc704859%28v=prot.10%29.aspxypedefstruct_MIB_IPNETROW{DWORDdwIndex;DWORDdwPhysAddrLen;BYTEbPhysAddr[8];//WHY8BYTES??DWORDdwAddr;DWORDdwTyp

windows - 页面文件中的物理页面和页面之间有什么关系?

在Windows下,内核可以将物理内存页面交换到页面文件中的页面。为简单起见,我们假设只有一个分页文件。据我了解,分页文件由与物理内存页面大小相同的页面组成。即4K。我只是想知道:内核如何知道页面文件中的哪个页面空闲可以存储?(这里的空闲是指分页文件中的页面之前没有存储过其他物理内存页面。) 最佳答案 存在过度简化的风险。..实现虚拟内存的通常方法是磁盘是主要存储。除非有到文件的映射,否则虚拟页面不存在。该映射在流程的生命周期内保持不变。磁盘上的虚拟内存在可用时映射到物理内存。内核维护一些数据结构(例如位图)以指示页面文件的空闲区域

windows - 我可以阻止 Windows 过度急切地回收物理内存吗?

我正在编写一个服务器应用程序,我希望尽可能有效地使用机器的所有可用物理内存。计划是它将使用AWE分配物理页面,直到它检测到99%的物理内存并在1%空闲时停止,并且任何时候物理内存低于1%空闲时,它将释放它不需要的物理页面。然而,当我将这个计划付诸实践时,Windows似乎认为任何时候它有99%的RAM在使用中,释放更多物理内存是个好主意,因此它开始将各种内容分页到磁盘,我的系统崩溃了。我如何告诉Windows使用99%的RAM是可以的,并且它不需要尝试将内容分页回磁盘,直到它达到其默认的理想使用水平(我想它会大约90%...)注意:Raymond说“除非你设计的系统是计算机上唯一运行的

windows - wmic 可以获取路径或物理名称的模型信息吗?

是否可以在平面旧wmic命令中执行此powershell脚本?如果可能,我需要根据路径或驱动器盘符获取磁盘模型信息,但在运行powershell脚本时遇到问题。Get-WmiObjectWin32_DiskDrive|%{$disk=$_$partitions="ASSOCIATORSOF"+"{Win32_DiskDrive.DeviceID='$($disk.DeviceID)'}"+"WHEREAssocClass=Win32_DiskDriveToDiskPartition"Get-WmiObject-Query$partitions|%{$partition=$_$drive

windows - 在 Windows 内核地址空间中将虚拟地址转换为物理地址

对于Windowsx64上的内核空间虚拟地址(VA>0xFFFF000000000000),从虚拟地址到物理地址的转换是如何工作的?我知道它如何用于用户空间虚拟地址:VA由多个表中的多个索引组成,第一个(PML4)位于存储在CR3寄存器中的物理地址(和过程DirectoryTableBase在WinDbg中也称为“DirBase”)。我猜这与内核空间VA类似,但是它们的PML4表在哪里?我的目标是在不依赖DbgEng/WinDbgAPI的情况下解析内核故障转储。我已经能够分辨出每个内存页在文件中的位置,但转储文件中的大多数字段都在内核空间VA中表示。该文件头中的DirectoryTab

python - 如何在 Windows 中获取物理驱动器

我在Python中使用kernel32dll的包装程序进行编程,因此我可以使用此dll的任何函数,例如GetLogicalDrives()。我正在尝试获取物理驱动器的信息,即使它们未安装。我见过类似的问题,但我需要未安装驱动器的信息。我见过的所有方法都需要设备中的目录或文件,但如果没有挂载,我就没有,所以问题是:有没有一种方法可以为我提供系统中物理驱动器的列表,即使它们没有安装?我不得不说,使用Windows注册表,我已经在“HKEY_LOCAL_MACHINE\Hardware\Devicemap\Scsi\ScsiPortx”中获得了物理驱动器的数量,因为在这个键中,您可以看到驱动

c - 获取 CPU 型号名称、供应商 ID、Windows C 中的物理处理器数量

我看到了this主题,但我没有提供我需要的所有信息。是否有任何可移植的方式(仅限所有Windows的可移植)来获取cpu型号名称、供应商ID和物理处理器的数量? 最佳答案 您提供的链接适用于Windows的移动版本,因此如果您所说的可移植版本也指桌面版本,那么GetSystemInfo可用于(如所述)Window2000及更高版本的所有版本。如果您需要比这更旧的版本,那么您应该给出一些限制。 关于c-获取CPU型号名称、供应商ID、WindowsC中的物理处理器数量,我们在StackOv

c++ - 打开物理驱动器。 Windows

我尝试像这样打开物理驱动器ofstream*_fileWriter->open(_destPath,std::ofstream::out|std::ofstream::binary);_destPath=\\.\PhysicalDrive1但是,当我尝试做if(!(_fileWriter->is_open()))returnfalse;返回错误 最佳答案 您必须以提升的访问权限运行该程序。请求GENERIC_READ/GENERIC_WRITEhdrive=CreateFile(L"\\\\.\\PhysicalDrive0",GE

c++ - 如何确定计算机上安装的物理 RAM? ( Windows )

如何在Windows中使用C++将物理内存安装到我的计算机上?我的意思不仅是可以GlobalMemoryStatusEx()的容量参数,还有已用内存插槽的数量、内存类型(如DDR1/DDR2/DDR3)、插槽类型(DIMM/SO-DIMM)和内存总线的时钟速率。我需要使用SMBIOS吗?或者是否有其他方式获取此信息? 最佳答案 在我的机器上,您请求的大部分信息都可以通过WMI获得。看看Win32_PhysicalMemory和相关类(class)。比如wmicmemorychip在我的机器上的输出是:C:\>wmicmemorych

asp.net - 您如何在 ASP.NET 解决方案中调用物理上分离的 UI/BL 代码?

Chapter19:PhysicalTiersandDeploymentMSDN上描述了“分布式部署”(见图2)。一切都很好。根据我的经验,我们总是按照他们所描述的“非分布式部署”来部署基于Web的系统(图1)。我的理解是,在Microsoft世界中,作为独立事物的“应用程序服务器”并不真正存在(就像在Java世界中一样),因为它实际上已“嵌入”到操作系统/Windows中。所以我的问题是,如果您要将UI和业务逻辑(BL)分布到不同的服务器/层上,它们将如何通信?我知道一个答案是使用“服务层”——有哪些替代方案?你实际上会怎么做?从代码的角度来看它会是什么样子?