الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]سؤال بخصوص الداله Zwquerysystemenvironmentvalue

مغلق
بدأه tmaaa في 1 مايو 2002 · 15 رد · 1,665 مشاهدة · في أرشيف قسم Windows APIs
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ربما تكون هذه اول مره اضع سؤال في هذا القسم فارجوا الا يخذلني الاخوان .

اولا اقدم اعتذاري لان السؤال سيكون باللغة الانجليزيه .

والسؤال كالاتي:

Using ZwQuerySystemEnvironmentValue how to query the value of a system environment variable stored in

CMOS ?

يعني باختصار كيف استخدم الدالة ZwQuerySystemEnvironmentValue ؟ اريد مثال .

لايهم باي لغة تكون الاجابة vb or delphi or vc or .... .

شاكرا لكم تعاونكم .

تحياتي

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#2

السلام عليكم

لمن يود المساعدة :

الدالة سابقة هي احدى الدوال المسماة Native Api . أعتقد انه الكثيرين سمعوا عن الكتاب الشهير Windows Nt/2000 Native Api فيه شرح للدالة وغيرها من الدوال لكن المشكلة ان هذه الدالة لم اعرف كيف استخدمها ( في كثير من الدوال لا اعرف استخدامها ) .

لا اطيل , لمعلومات عن الدالة : ---->

http://www.pearsonptg.com/samplechapter/1578701996.pdf

تحياتي

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#3

السلام عليكم

ألهذه الدرجة اصبحت المواضيع تهمل في المنتدى ؟!!

أضيف معلومة اخرى لمن له اهتمام بالموضوع :

الدالة المقابله لـ ZwQuerySystemEnvironmentValue في WinNT/2K/XP هي NTQuerySystemEnvironmentValue وهي من الدوال غير المصرح بها (undocumented function ) وموجودة في ملف ntdll.dll وهناك داله اخرى في نفس الملف اسمها NTQuerySystemEnvironmentValueEx .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#4

اخي ...

اعدك ان اعطيك الجواب الشافي في هذا الموضوع ...

بس و شلونك في Kernel-Mode Driver ؟ هل عندك المعلومات الاساسية حول الموضوع .؟

#5

السلام عليكم

مشكور اخي العزيز على الاهتمام بالسؤال .

بقي لي في الكود - تقريبا - معرفة القيمة التي ستعطى للمتغير الاول للدالة .

ان شاء الله اكتب ما قد توصلت اليه بعد كم شي ساعة .

ان كان لديك اي معلومات في الموضوع اتمنى الا تبخل علينا , كما اتمنى ممن لديه معلومات اطلاعنا عليها .

شاكرا للجميع تعاونهم .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#6

السلام عليكم

حبيت ان اضيف ان الـ System environment variablesيمكن الوصول اليها في winxp كالاتي :

My computer mouse right click

ٍSystem Properties في قسم Advanced ثم الضغط على الـ Environment Variables button .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#7

السلام عليكم

في عندي احساس ان الموضوع اصبح سخيف او انه لا قيمة له .

على العموم هذا ما توصلت اليه الى الان حول هذا الموضوع , واتمنى من الاستاذة المبرمجين ان يعطوا لنا من وقتهم الثمين بضع ثواني ...

 
#include  
#include  
#include  
#include  

#define STATUS_SUCCESS                          NO_ERROR 

typedef struct _UNICODE_STRING 
{ 
	USHORT Length; 
	USHORT MaximumLength; 
	PWSTR Buffer; 
} UNICODE_STRING, *PUNICODE_STRING; 

typedef DWORD (__stdcall *HXX_NTQUERYSYSTEMENVIRONMENTVALUE) 
	( 
        IN PUNICODE_STRING , 
        OUT PVOID, 
        IN ULONG, 
        OUT PULONG); 
typedef DWORD (__stdcall * 
HXX_RTLINITUNICODESTRING)( 
    PUNICODE_STRING DestinationString, 
    PCWSTR SourceString 
    ); 

HXX_NTQUERYSYSTEMENVIRONMENTVALUE hxx_NtQuerySystemEnvironmentValue; 
HXX_RTLINITUNICODESTRING hxx_RtlInitUnicodeString; 
//UNICODE_STRING 
//*************** functions declaration ***************** 
BOOL EnablePrivilege (LPCTSTR lpszPrivilege); 
//****************** function main ********************** 
int main(int argc, char* argv[]) 
{ 
UNICODE_STRING EncodedString; 
PVOID Env_Value=0; 
DWORD ret; 

HINSTANCE hNtDll =LoadLibrary ("NTDLL.DLL"); 

hxx_RtlInitUnicodeString=( HXX_RTLINITUNICODESTRING ) 
             GetProcAddress(hNtDll,"RtlInitUnicodeString"); 

hxx_RtlInitUnicodeString(&EncodedString,PWSTR("PATH")); 

hxx_NtQuerySystemEnvironmentValue= 
	   ( HXX_NTQUERYSYSTEMENVIRONMENTVALUE ) 
           GetProcAddress(hNtDll,"NtQuerySystemEnvironmentValue"); 

if(EnablePrivilege("SeSystemEnvironmentPrivilege")) 
  printf("SeSystemEnvironment Privilege privilege enabled .n"); 
else 
  { 
    printf("Failed to enable privilege .n"); 
    getch(); 
    return 0; 
  } 
ret=hxx_NtQuerySystemEnvironmentValue( 
                                &EncodedString, 
                                Env_Value, 
                                12, 
                                NULL 
                                      ); 
if( ret== STATUS_SUCCESS) 
  printf("STATUS_SUCCESS"); 
else 
  printf("Error"); 

getch(); 
        return 0; 
} 
//*********************** functions body **************** 
BOOL 
	EnablePrivilege 
		(LPCTSTR lpszPrivilege) 
{ 
HANDLE Token; 
TOKEN_PRIVILEGES TokenPrivileges, PreviousState; 
DWORD ReturnLength = 0; 
if (OpenProcessToken 
      (GetCurrentProcess (), 
       TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, 
       &Token)) 
  if (LookupPrivilegeValue 
        (NULL, 
         lpszPrivilege, 
         &TokenPrivileges.Privileges[0].Luid)) 
    { 
     TokenPrivileges.PrivilegeCount = 1; 
     TokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
     return 
       (AdjustTokenPrivileges 
          ( 
           Token, 
           FALSE, 
           &TokenPrivileges, 
           sizeof (TOKEN_PRIVILEGES), 
           &PreviousState, 
           &ReturnLength)); 
          } 
	return (FALSE); 
} // EnablePrivilege 
//*** CIONO1 : P-END # **********************************

Mapping NT Status Error Codes to Win32 Error Codes

http://support.microsoft.com/default.aspx?...b;EN-US;q113996

لا اعلم اين الخطأ ولماذا لا استطيع الحصول على قيمة الـ System Environment Value .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#8

اخي ... لما انت حاس انه سخيف ليه سألت !

و بعدين سألت هل لك معرفة بكتابة الدرايفرز Kernel-Mode Driver ) WDM ) و لم تجاوبني !

أو ببساطة هل تملك DDK او لا (Driver Development kit ) ؟

سلام ..

#9

السلام عليكم

بالنسبة لـ WDM لم أبدا بهذا النوع من البرمجة فليس لدي وقت كاف للبدء بها رغم ان لدي كتاب Windows Driver Model لــ Walter Oney .

انا رايت ان الموضوع اصبح سخيف لاني ملاحظ عدم الاهتمام بالمواضيع التي تطرح في المنتدى . على العموم كانت غلطة - ان شاء الله لن تتكرر - مني اني سألت .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#10

سلام ....

طلب الدالة ZwQuerySystemEnvironmentValue يتطلب منك وجود DDK لديك، اذهب إلى موقع مايكروسفت و اطلبها .

العمل مع WDM يطلب معرفة سابقة بالبنية التحتية لنظام ويندوز و هذا سبب سؤالي لك .

احصل على DDK و سأريك كيف العمل معها، لكن تأكد اولا من فهم البينة التحتية لويندوز .

#11

السلام عليكم

مشكور اخي العزيز .

لدي DDK , منتظر شرحك :)

عندي سؤال

هل التعامل مع الدالة يحتاج الى WDM ؟ انا ملاحظ بعض دوال الـ native api لا تحتاج الى ذلك - طبعا هذا يعتمد على حسب الغرض الذي يراد استخدامها فيه - . انا كنت ناوي افتح موضوع لجمع اكبر قدر ممكن من المعلومات عن native api لكن عدلت عن الفكرة .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#12

طيب من هنا إلى ما اكتب الشرح ....

انت قلت ان عندك ال ddk طيب ليه ما سويت include لملف ntddk.h .

طيب تمام ..... شوف المقال هذا

http://www.sysinternals.com/ntw2k/info/ntdll.shtml

http://www.sysinternals.com/ntw2k/info/native.shtml

عارف انك ما تبي مقالات و لا ارتباطات ولكن المقالين الذي بالاعلى سيوضحون لك الفكرة بشكل كامل، و فيه مثال تستطيع استخدامه كقالب لبناء Native Application .

انتظرني ....

#13

السلام عليكم

أخي العزيز

هل الدالة موجودة في ntddk.h ؟ انا فحصت الملف ووجدت انها غير مصرح بها هناك ولا هي موجودة في اي header file . هذا ان لم يكن الـ ddk الموجود لدي ناقص . فما هو الحال عندك ؟ امصرح بها ؟ في اي ملف ؟ .

مشكور على الرابطين ان شاء الله اقرأهم .

لي سؤال

ممكن توضح العبارة " عارف انك ما تبي مقالات و لا ارتباطات " ؟ لم افهم قصدك .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#14

اقصد انك تريد النقاش و ليس تبادل الارتباطات ... اي انني ساكتب لك و لكن اربدك ان تقرأ الارتباط فيما انتهى من اشغالي .

بالنسبه لملف ال ntddk هو مثل windows.h في البرمجة ويندوز ! هل CreateWindows معرفة في windows.h ام في winuser.h ؟

المسألة كلها ان ntddk يعرف الملفات المطلوبة في نفسه .

#15

السلام عليكم

مشكور اخي العزيز على تحملك لكثرة اسئلتي .

المشكلة ليست استعمال ntddk.h . عدم ادارجه لا يضر فبالامكان استخدام الطريقه التي في الكود السابق .

انت ذكرت انه لابد من وجود الـ DDK . لماذا ؟

حسب معلوماتي انه يمكن استعمال الـ Native api دون وجوده .

المشكلة كما ذكرت سابقا انني اريد ان اعرف كيف استخدم الدالة .

اريد ان اعرف ماهو الخطأ في الكود الذي كتبته , هل في القيم المعطاة لمتغيرات الدالة ام .......

ان كان الحصول على معلومات عن System Environment يحتاج الى نوع خاص من البرمجة ( مثلا WDM ) فارجو التوضيح .

اخ Developer .NET

هل استعملت الدالة من قبل ؟

طبعا المشكلة مازالت موضوعة للجميع حتى لايقال انه تم توجيه السؤال لشخص بعينه.

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#16

السلام عليكم

اندفن الموضوع كما كنت اتوقع .

شكرا لكل من حاول مساعدتي و لمن اتعب نفسه بقراءة الموضوع .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

هذا الموضوع مغلق.

مواضيع مشابهة