PDA

View Full Version : در Windows 98



zoncpp
یک شنبه 30 دی 1386, 09:43 صبح
در پروژه ام توابع api زیر را فراخوانی می کنم. این توابع در ویندوزهای xp,2000,2003 و vista مشکلی ندارد.
OpenSCManager, CreateService, OpenService, ControlService. DeleteService
اما در ویندوز 98 اجرا نمی شوند!؟
من چه توابعی را به جای این توابع api در ویندوز 98 فراخوانی کنم؟:متفکر:
این توابع رو من، برای load کردن یک فایل sys. به کار می برم.

ghabil
یک شنبه 30 دی 1386, 10:54 صبح
ببین وقتی میگی API یعنی باید بری سراغ MSDN هرکدوم از این توابع رو که توی MSDN جستجو کنی توضیح کامل و اینکه توی هر ورژنی از ویندوز چطوری کار میکنند نوشته شده.

zoncpp
یک شنبه 30 دی 1386, 15:07 عصر
سوال من هم همینه،
در MSDN آمده که این توابع در Win 2000 به بعد کاربرد دارند، ولی نگفته که در ویندوز 98 برای install و load یک درایور از چه توابع دیگری می تونید استفاده کنید.
و چون زمان کمی برای search بیشتر داشتم، امدم اینجا تا با کمک شما زودتر به نتیجه برسم.

Inprise
دوشنبه 01 بهمن 1386, 20:32 عصر
بهت قویا توصیه میکنم که وقتت رو روی ویندوز 98 صرف نکنی ، مایکروسافت هم ازش حمایت نمیکنه ، حتی Patch های امنیتی هم منتشر نمیشن . ولی بهر حال :

Service API روی ویندوز 98 نیست . میتونی از CreateFile استفاده کنی . مثلا اینطوری :


CreateFile(
"\\\\.\\driver.sys",
0,
0,
NULL,
0,
FILE_FLAG_OVERLAPPED | FILE_FLAG_DELETE_ON_CLOSE,
NULL
);

اما بهترین روش برای نصب درایور روی ویندوز 98 استفاده از فایلهای inf و رجیستری است . اگر واقعا اصرار داری که برنامه ات ویندوز 98 رو حمایت کنه یک تابع جدا بنویس که ویندوز 98 رو بشناسه و اگر این سیستم میزبان بود با استفاده از فایل inf درایور نصبش کنه . همراه DDK ابزار تولید inf و راهنمای لازم وجود داره .

zoncpp
سه شنبه 02 بهمن 1386, 10:45 صبح
استفاده از تابع CreateFile که فکر نمی کنم درست باشه، چون قبلا تست کردم و تا جایی که یادمه جواب نداده. اصلا در Xp و بقیه ویندوز ها هم جواب نمیده.
تا جایی که من فهمیدم، برای load کردن یک فایل sys. باید به شکل سرویس ان رو باز کرد و با استفاده از تابع CreateFile به هندل این درایور load شده دسترسی داشت. که این روند در XP و بقیه ویندوزها جواب می ده.
ولی در ویندوز 98 به دلیل شناسایی نشدن توابع OpenSCManager, CreateService, OpenService, ControlService. DeleteService نمی شود این کار رو انجام داد.



اما بهترین روش برای نصب درایور روی ویندوز 98 استفاده از فایلهای inf و رجیستری است .
حالا، روش دوم شما رو امتحان نکردم. جستجو می کنم در موردش. البته اطلاعاتم هم کمه در این مورد، اگه تونستید بیشتر راهنماییم کنید. مرسی