WindowsAPI ——NtQueryInformationProcess

NtQueryInformationProcess

作用

获取指定文件大小,in byte。

原型

 DWORD GetFileSize(__kernel_entry NTSTATUS NtQueryInformationProcess(
 		  HANDLE ProcessHandle,
 		  PROCESSINFOCLASS  ProcessInformationClass,
 		  PVOID ProcessInformation,
 		  ULONG ProcessInformationLength,
 		  PULONG ReturnLength
);

参数说明

  1. ProcessHandle:检索其信息的进程的句柄。
  2. ProcessInformationClass:要检索的进程信息的类型,此参数可以是PROCESSINFOCLASS枚举中的值之一 。
  3. ProcessInformation:指向调用应用程序提供的缓冲区的指针,函数将请求的信息写入该缓冲区。写入的信息大小取决于ProcessInformationClass参数的数据类型:
    PROCESS_BASIC_INFORMATION
    当ProcessInformationClass 参数是ProcessBasicInformation,缓冲器指向的PROCESSINFORMATION参数应该足够大,以保持单个PROCESS_BASIC_INFORMATION具有下述布局结构:
typedef struct _PROCESS_BASIC_INFORMATION {
PVOID Reserved1;
PPEB PebBaseAddress;
PVOID Reserved2[2];
ULONG_PTR UniqueProcessId;
PVOID Reserved3; 
} PROCESS_BASIC_INFORMATION;

此结构体等价于

typedef struct{
	DWORD ExitStatus;				//プロセス終了状態
	DWORD PebBaseAddress;			//プロセス環境ブロックアドレス
	DWORD AffinityMask;				//プロセス関連マスク
	DWORD BasePriority;				//进程优先级
	ULONG UniqueProcessId;			//进程ID
	ULONG InheritedFromUniqueProcessId;//父进程ID
} PROCESS_BASIC_INFORMATION;
  1. ProcessInformationLength:ProcessInformation参数指向的缓冲区的大小,以字节为单位。
  2. ReturnLength:指向返回信息大小的指针 。

追加说明

  1. 可能会在 Windows 的未来版本中更改或不可用
  2. 该函数一般用以获取父进程ID。

示例

	PROCESS_BASIC_INFORMATION   pbi;
	DWORD	Pid = GetCurrentProcessId();
	PROCNTQSIP NtQueryInfoProcess = (PROCNTQSIP)GetProcAddress(GetModuleHandle("ntdll"), 
																"NtQueryInformationProcess");
	HANDLE	hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, Pid );
	
	NtQueryInformationProcess(hProcess,
							ProcessBasicInformation,
							(PVOID)&pbi,
							sizeof(PROCESS_BASIC_INFORMATION),
							NULL
							);
							
	CloseHandle(hProcess);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值