PDA

View Full Version : نحوه استفاده از تابع NtQuerySystemInformation



هم دانشگاهی
شنبه 13 مهر 1392, 09:59 صبح
سلام

چه جوری از تابع NtQuerySystemInformation در ویژوال سی پلاس پلاس استفاده کنم؟

چون وقتی کتابخانه اش را include میکنم یک سری خطا از کتابخانه اش میده مثل این:


error C2146: syntax error : missing ';' before identifier 'ContextRecord'


اگه ممکنه یه مثال هم بزنید.
ممنون

mehdi.mousavi
شنبه 13 مهر 1392, 10:12 صبح
سلام چه جوری از تابع NtQuerySystemInformation در ویژوال سی پلاس پلاس استفاده کنم؟ چون وقتی کتابخانه اش را include میکنم یک سری خطا از کتابخانه اش میده مثل این: اگه ممکنه یه مثال هم بزنید. ممنون

سلام.
اطلاعاتی که این تابع بر میگردونه، مختص OS هستش و ممکنه از یک نسخه ویندوز به دیگری تغییر کنه بنابراین نباید از این تابع استفاده کنید (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724509%28v=vs.85%29.aspx)!
اما برای رسیدن به هدف، می تونید از یک یا چند یک از توابع زیر (بسته به نیاز) استفاده کنید:


GetSystemInfo
GetProcessHandleCount
GetProcessMemoryInfo
GetSystemTimes
GetSystemRegistryQuota

موفق باشید.

بهروز عباسی
شنبه 13 مهر 1392, 10:44 صبح
این تابع جزو Native API هایی ویندوزه و در حالت استاندارد باید در Kernel land مورد استفاده قرار بگیره برای این کار هم باید پکیج WDK رو دانلود کنی و ازش استفاده کنه
البته این توابع رو در User land هم میشه استفاده کرد ، این هم یک مثال خوب (ولی به زبان دلفی !)
NtQuerySystemInformation Delphi Example
http://www.delphibasics.info/home/delphibasicsprojects/ntquerysysteminformationdelphiexample

هم دانشگاهی
شنبه 13 مهر 1392, 11:58 صبح
سلام.
اطلاعاتی که این تابع بر میگردونه، مختص OS هستش و ممکنه از یک نسخه ویندوز به دیگری تغییر کنه بنابراین نباید از این تابع استفاده کنید (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724509%28v=vs.85%29.aspx)!
اما برای رسیدن به هدف، می تونید از یک یا چند یک از توابع زیر (بسته به نیاز) استفاده کنید:



GetSystemInfo
GetProcessHandleCount
GetProcessMemoryInfo
GetSystemTimes
GetSystemRegistryQuota


موفق باشید.

ممنون
من میخوام لیست تمام فایل های باز شده توسط همه پروسه ها رو بدست بیارم.
میخواستم با این روش تمام handle ها رو بدست بیارم ولی نمیدونستم بعدش باید چی کار میکردم.

از چه روشی میشه این کار رو کرد؟

ممنون

mehdi.mousavi
شنبه 13 مهر 1392, 12:01 عصر
ممنون من میخوام لیست تمام فایل های باز شده توسط همه پروسه ها رو بدست بیارم. از چه روشی میشه این کار رو کرد؟

سلام.
این مقاله (http://www.codeproject.com/Articles/18975/Listing-Used-Files) رو مطالعه کنید (بهمراه Source Code اش) تا به پاسخ برسید.

موفق باشید.