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

مشكلة في تحميل درايفر

مغلق
بدأه الاخير زمانه في 27 مارس 2007 · 1 رد · 1,510 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله ،

ارجو اني لا اكون ازعجكم بكثرة اسئلتي ،

جزاكم الله خيرا

،

انا احاول كتابة اداة بسيطة لتحميل درايفر كنت كاتبه بأستخدام ال ddk

هذا الجزء

 invoke OpenSCManager,NULL, NULL,SC_MANAGER_ALL_ACCESS
				  mov hSCManager,eax
				  .if hSCManager ==0
					  invoke	MessageBox,hWin,addr manager,addr cool,MB_OK
				  .else 
		   			invoke CreateService,hSCManager,addr serv,addr loadserv, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE,addr aPath, NULL, NULL, NULL, NULL, NULL
		   			mov hService,eax
		   			.if hService==0
		   				invoke GetLastError
		   				.if eax==ERROR_SERVICE_EXISTS
		   					invoke	MessageBox,hWin,addr exists,addr cool,MB_OK
			   				invoke OpenService,hSCManager, addr serv, SERVICE_ALL_ACCESS;
			   			.endif
					  .endif

					mov hService,eax
					.if hService==0
						invoke	MessageBox,hWin,addr creat,addr cool,MB_OK
					.else
						invoke StartService,hService,0,NULL
					;mov hstart,eax
						.if eax==0
														invoke GetLastError
							.if eax==ERROR_ACCESS_DENIED
								invoke MessageBox ,hWin,CTXT("ERROR_ACCESS_DENIED"),addr titl,MB_OK
							.elseif eax==ERROR_INVALID_HANDLE
								invoke MessageBox ,hWin,CTXT("ERROR_INVALID_HANDLE"),addr titl,MB_OK
							.elseif eax==ERROR_PATH_NOT_FOUND
								invoke MessageBox ,hWin,CTXT("ERROR_PATH_NOT_FOUND"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_ALREADY_RUNNING
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_ALREADY_RUNNING"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_DATABASE_LOCKED
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_DATABASE_LOCKED"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_DEPENDENCY_DELETED
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_DEPENDENCY_DELETED"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_DEPENDENCY_FAIL
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_DEPENDENCY_FAIL"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_DISABLED
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_DISABLED"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_LOGON_FAILED
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_LOGON_FAILED"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_MARKED_FOR_DELETE
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_MARKED_FOR_DELETE"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_NO_THREAD
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_NO_THREAD"),addr titl,MB_OK
							.elseif eax==ERROR_SERVICE_REQUEST_TIMEOUT
								invoke MessageBox ,hWin,CTXT("ERROR_SERVICE_REQUEST_TIMEOUT"),addr titl,MB_OK
							.else 
							invoke MessageBox ,hWin,CTXT("no thing "),addr titl,MB_OK
							.endif
						....
........
........

دالة StartService

تفشل ويرجع لي ال eax=0

وتظهر المسج بوكس الي انا واضعها للتأكد ،

لا ادري لماذا بقية الدوال تنجح وهذه الدالة تفشل ،

انا قلت اوكي استدعي دالة GetLastError لأعرف لماذا تفشل هذه الدالة

و وضعت مسج بوكس لأرى النتيجة ،

الغريب ان هذا الجزء هو الذي يتنفذ

.else 
							invoke MessageBox ,hWin,CTXT("no thing "),addr titl,MB_OK
							.endif

لا ادري ما السبب ؟؟

------

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

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

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