آدرس تابع باعث خطای حفاظت - خطای چاپ شد

اگر هنگام تلاش برای چاپ فایل ها/اسناد از داخل یک برنامه مایکروسافت آفیس(Microsoft Office) مانند Word ، Excel ، Publisher و همکاران، پیام خطای چاپ را دریافت کردید. (printing error)آدرس عملکرد باعث نقص حفاظتی شد(Function address caused a protection fault) - پس این پست برای کمک به شما در نظر گرفته شده است. در این پست، ما برخی از علل بالقوه شناخته شده را که می‌توانند باعث بروز خطا شوند را شناسایی می‌کنیم و سپس راه‌حل‌های احتمالی را برای کمک به رفع این مشکل ارائه می‌کنیم.

هنگامی که کار چاپ با شکست مواجه می شود، نمونه ای از پیام خطای زیر را دریافت می کنید.

Function address 12345 caused a protection fault.
(exception code 12345)
The application property sheet page(s) may not function properly.

آدرس عملکرد باعث نقص حفاظتی شد

اکثر کاربرانی که با این خطای چاپ مواجه می‌شوند، گزارش می‌دهند که اگر بخواهند به صورت متعارف چاپ کنند، خطا رخ نمی‌دهد - این خطا فقط زمانی ظاهر می‌شود که بخواهند از داخل یک برنامه Office چاپ کنند. به خاطر داشته باشید(Bear) که موارد مختلفی از این پیام خطا با کدهای خطای مختلف وجود دارد. با این حال، دلایل اصلی یکسان است - در نتیجه، رفع یکسان باید در تمام موارد این خطا کار کند.

ممکن است به دلیل یک یا چند مورد (اما نه محدود به) از دلایل شناخته شده زیر با پیام خطا مواجه شوید.

  • چاپگر صحیح به عنوان پیش فرض تنظیم نشده است.
  • درایور چاپگر قدیمی
  • کلیدهای فرعی چاپگر خراب
  • خرابی فایل سیستم(System) – خراب شدن فایل سیستم(System) عاملی کمتر اما احتمالی برای این مشکل است. به طور معمول، پس از یک اسکن امنیتی به نظر می رسد که برخی از موارد استفاده شده توسط سرویس چاپ را قرنطینه کند.

آدرس عملکرد رفع اشکال(Fix Function) حفاظتی ایجاد کرد

اگر با این خطا مواجه شدید که نشانی عملکرد باعث خطای(Function address caused a protection fault) چاپ شده است، می‌توانید راه‌حل‌های پیشنهادی ما در زیر را بدون ترتیب خاصی امتحان کنید و ببینید آیا این به حل مشکل کمک می‌کند یا خیر.

  1. عیب‌یابی چاپگر را اجرا کنید
  2. اسکن SFC/DISM را اجرا کنید
  3. چاپگر پیش فرض را تغییر دهید
  4. درایور چاپگر را به روز کنید
  5. درایور چاپگر را حذف کنید، نام کلیدهای فرعی چاپ را تغییر دهید و سرویس Print Spooler را مجددا راه اندازی کنید(Print Spooler)
  6. داده های مقدار کلید رجیستری LegacyDefaultPrinterMode را تغییر دهید
  7. System Restore را انجام دهید

بیایید نگاهی به شرح فرآیند درگیر در رابطه با هر یک از راه حل های ذکر شده بیندازیم.

(Fix Protection)رفع خطای Protection fault Printer Properties

1] عیب یاب چاپگر را اجرا کنید

اجرای عیب‌یابی(Troubleshooter) داخلی ویندوز 10(Windows 10) ، چاپگر و درایورهای شما را مجددا راه‌اندازی می‌کند و هرگونه خطا را بررسی می‌کند. چاپگر شما باید در طول این روش متصل باشد.

برای  اجرای عیب‌یابی چاپگر(run the Printer Troubleshooter) ، موارد زیر را انجام دهید:

  • روی  Start کلیک کنید  و  تنظیمات را انتخاب کنید.(Settings.)
  • به  قسمت Update and Security بروید.( Update and Security.)
  • روی  تب Troubleshooter  کلیک کنید.
  • به پایین اسکرول کنید و روی  Printers کلیک کنید.(Printers.)
  • روی دکمه  Run the troubleshooter  کلیک کنید.
  • دستورالعمل های روی صفحه را دنبال کنید(Follow) و هر گونه اصلاحات توصیه شده را اعمال کنید.

پس از آن(Afterward) ، چاپ را امتحان کنید و ببینید آیا آدرس تابع باعث خطای(Function address caused a protection fault) چاپ خطای حفاظت شده است یا خیر. اگر نه، راه حل بعدی را ادامه دهید.

2] اسکن SFC/DISM را اجرا کنید

SFC/DISM  یک ابزار کاربردی در ویندوز  است(Windows) که به کاربران اجازه می دهد تا خرابی های موجود در فایل های سیستم ویندوز(Windows) را اسکن کرده و فایل های خراب را بازیابی کنند.

به منظور سهولت و راحتی، می توانید اسکن را با استفاده از روش زیر اجرا کنید.

  • کلید Windows + R را فشار دهید.
  • در کادر محاوره ای Run، notepad را تایپ کرده و Enter را بزنید تا Notepad باز شود.
  • دستور زیر را در ویرایشگر متن کپی و پیست کنید.
@echo off
date /t & time /t
echo Dism /Online /Cleanup-Image /StartComponentCleanup
Dism /Online /Cleanup-Image /StartComponentCleanup
echo ...
date /t & time /t
echo Dism /Online /Cleanup-Image /RestoreHealth
Dism /Online /Cleanup-Image /RestoreHealth
echo ...
date /t & time /t
echo SFC /scannow
SFC /scannow
date /t & time /t
pause
  • فایل را با یک نام ذخیره کنید و پسوند فایل bat را اضافه  کنید - به عنوان مثال. SFC_DISM_scan.bat .
  • فایل دسته ای را به طور(run the batch file with admin privilege) مکرر با امتیاز مدیر اجرا  کنید (روی فایل ذخیره شده کلیک راست کرده و  Run as Administrator را از منوی زمینه انتخاب کنید) تا زمانی که هیچ خطایی گزارش نشود.
  • کامپیوتر خود را مجددا راه اندازی کنید.

کار چاپ را دوباره امتحان کنید و ببینید آیا مشکل حل شده است یا خیر. در غیر این صورت راه حل بعدی را ادامه دهید.

3] چاپگر پیش فرض را تغییر دهید

آدرس عملکرد باعث خطای(Function address caused a protection fault) چاپ خطای حفاظتی می‌شود همچنین می‌تواند در شرایطی رخ دهد که چاپگری که می‌خواهید استفاده کنید به‌عنوان پیش‌فرض در تنظیمات ویندوز(Windows) تنظیم نشده باشد. برای تغییر چاپگر پیش فرض موارد زیر را انجام دهید:

  • کلید Windows + R را فشار دهید.
  • در کادر محاوره‌ای Run ، ms-settings:printers  را کپی و جای‌گذاری کنید و Enter را بزنید تا   پنجره  Printers & Scanners در برنامه (Printers & scanners)تنظیمات(Settings) باز  شود.
  • هنگامی که داخل تب Printers & Scanners هستید ، در قسمت سمت راست به پایین اسکرول کنید و علامت Allow Windows to management my printer default(Allow Windows to manage my default printer) settings را بردارید .
  • اکنون، روی چاپگری که می خواهید استفاده کنید کلیک کنید و روی Set as default کلیک کنید .

پس از اینکه چاپگر صحیح را به عنوان پیش فرض تعیین کردید، رایانه خود را مجدداً راه اندازی کنید و ببینید آیا خطای چاپ برطرف شده است. در غیر این صورت راه حل بعدی را ادامه دهید.

بخوانید(Read) :  نحوه بازنشانی چاپگر به تنظیمات کارخانه پیش فرض .

4] درایور چاپگر را به روز کنید

این راه حل مستلزم آن است که مطمئن شوید آخرین درایورهای چاپ را برای چاپگر خود نصب کرده اید. می توانید  آخرین نسخه درایور چاپگر را(download the latest version of the printer driver)  از وب سایت سازنده دانلود کنید.

همچنین، می‌توانید درایور چاپگر را(update the printer driver) از طریق Device Manager به‌روزرسانی کنید. در اینجا به این صورت است:

  • کلید Windows + X را فشار دهید تا منوی Power User(Power User Menu) باز شود ، سپس کلید M را فشار دهید تا Device Manager باز شود.
  • هنگامی که وارد Device Manager شدید ، در لیست دستگاه های نصب شده به پایین اسکرول کنید و بخش Print queues را بزرگ یا کوچک کنید.
  • سپس روی چاپگری که با آن مشکل دارید کلیک راست کرده و از منوی زمینه گزینه Update driver را انتخاب کنید.(Update driver)
  • در صفحه بعد، بر روی Search automatically for updated driver software کلیک کنید.(Search automatically for updated driver software.)
  • صبر کنید(Wait) تا اسکن کامل شود. اگر نسخه درایور جدیدی پیدا شد، دستورالعمل های روی صفحه را دنبال کنید تا آن را دانلود و بر روی رایانه خود نصب کنید.
  • دستگاه خود را مجددا راه اندازی کنید.

سعی کنید یک کار چاپ ارسال کنید و ببینید آیا آدرس عملکرد باعث خطای(Function address caused a protection fault) چاپ خطا شده است یا خیر. اگر نه، راه حل بعدی را ادامه دهید.

5] درایور چاپگر را حذف(Uninstall) کنید، نام کلیدهای فرعی چاپ را تغییر دهید و سرویس Print Spooler را مجدداً راه اندازی کنید(Print Spooler)

در این راه حل، دنباله ای از کارها (شامل حذف نصب درایور چاپگر، تغییر نام کلیدهای فرعی چاپ و راه اندازی مجدد سرویس Print Spooler ) وجود دارد که باید آن ها را تکمیل کنید تا ببینید آیا آدرس عملکرد باعث خطای(Function address caused a protection fault) چاپ محافظت شده است یا خیر.

موارد زیر را انجام دهید:

  • به رایانه آسیب دیده وارد شوید.
  • کلید Windows + X را فشار دهید تا منوی Power User(Power User Menu) باز شود ، سپس کلید M را فشار دهید تا Device Manager باز شود.
  • هنگامی که وارد Device Manager شدید ، در لیست دستگاه های نصب شده پیمایش کنید و منوی کشویی Print queues را گسترش دهید.(Print queues)
  • سپس روی درایور چاپگری که می‌خواهید حذف شود کلیک راست کرده و Uninstall Device را انتخاب کنید .
  •  برای تایید فرآیند یک بار دیگر روی Uninstall کلیک کنید .

پس از اتمام فرآیند حذف، می‌توانید از Device Manager خارج شوید .

  • سپس، کلیدهای Windows + R را فشار دهید تا کادر محاوره‌ای Run فراخوانی شود .
  • در کادر محاوره‌ای Run، printui.exe /s /t2 را تایپ  کنید و Enter را بزنید تا  رابط کاربری Printer Server Properties(Printer Server Properties UI) باز شود .
  • هنگامی که در داخل صفحه Print Server Properties قرار گرفتید  ، به  تب Drivers  بروید و درایوری را که مشکل را ایجاد کرده است انتخاب کنید. با انتخاب درایور، روی دکمه Remove کلیک کنید.
  • سپس با گفتگوی Remove Driver And Package از شما خواسته می شود .
  • دکمه رادیویی را فقط برای حذف درایور انتخاب کنید.(Remove driver only.)
  • روی OK کلیک کنید.(OK.)

پس از تکمیل فرآیند، می توانید از صفحه Print Server Properties خارج شوید  .

  • حالا کلید Windows + R را فشار دهید تا کادر محاوره ای Run دیگری باز شود .
  • regedit را(regedit) در کادر متن  تایپ کنید و Enter را فشار دهید  تا  ویرایشگر رجیستری(Registry Editor) باز شود .

مهم: قبل از ادامه این روش از (Important:) رجیستری نسخه پشتیبان تهیه کنید تا در(Back up the registry) صورت بروز مشکل، بتوانید رجیستری را بازیابی کنید.

  • به مسیر کلید رجیستری زیر بروید یا به آن بروید:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\

در محل، به تغییر نام کلیدهای فرعی یا کلیدها در قسمت Print Processors با پسوند .old ادامه دهید(.old extension) . این کار ویندوز(Windows) را مجبور می‌کند تا آن کلیدها را نادیده بگیرد و در عوض پوشه‌ها و مقادیر جدیدی ایجاد کند.

توجه(Note) : در این مورد، فقط یک کلید فرعی وجود دارد (winprint)، بنابراین نام آن را به winprint.old تغییر دادیم .

پس از تکمیل این مرحله، می توانید با خیال راحت ویرایشگر رجیستری(Registry Editor) را ببندید .

  • دوباره کادر محاوره ای Run را فراخوانی کنید و services.msc را(services.msc) در داخل کادر متنی تایپ کنید و Enter را فشار دهید  تا   پنجره Services باز شود.(Services)
  • در  پنجره Services ، سرویس (Services) Print Spooler را پیدا  کنید.
  • روی  Print Spooler کلیک راست کرده و (Print Spooler)Properties  را انتخاب کنید  .
  • در پنجره Properties، روی  Stop کلیک کنید.(Stop.)

این فرآیند صف چاپ را متوقف می کند. پنجره Print Spooler Properties(Print Spooler Properties) را باز نگه دارید .

  • اکنون File Explorer را باز کرده و به مکان زیر بروید:

C:\WINDOWS\system32\spool\PRINTERS

  • تمام فایل های موجود در  پوشه Printers را حذف  کنید.

اگر هیچ فایلی را نمی بینید، روی  تب View  کلیک کنید و  کادر Hidden Items را  علامت بزنید.

  • پنجره File Explorer را ببندید.
  • در پنجره Print Spooler Properties ، روی  دکمه Start  کلیک کنید تا سرویس دوباره راه اندازی شود.

رایانه خود را یکبار دیگر راه اندازی کنید و درایورهای لازم چاپگر را در راه اندازی بعدی رایانه مجدداً نصب کنید. یک بار دیگر کار چاپ را امتحان کنید و ببینید آیا مشکل حل شده است یا خیر.

6] داده های مقدار کلید رجیستری LegacyDefaultPrinterMode را تغییر دهید(LegacyDefaultPrinterMode)

در این راه حل، برای رفع خطای چاپ خطای آدرس عملکرد(Function address caused a protection fault) ، باید کلید رجیستری LegacyDefaultPrinterMode Value data را در ویرایشگر رجیستری(Registry Editor) تغییر دهید .

در اینجا چگونه است:

به یاد داشته باشید که از رجیستری نسخه پشتیبان تهیه کنید.

  • (Navigate)به مسیر کلید رجیستری زیر بروید یا به آن بروید :
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
  • در قسمت سمت راست روی LegacyDefaultPrinterMode دوبار کلیک کنید تا خصوصیات آن را ویرایش کنید.
  • Value data را روی ۱ قرار دهید.(1.)

این به رفتار پیش‌فرض چاپگر در ویندوز 10(Windows 10) باز می‌گردد .

  • برای ذخیره تغییرات روی OK کلیک کنید .
  • کامپیوتر را مجددا راه اندازی کنید.

بررسی کنید که آیا مشکل حل شده است یا خیر. در غیر این صورت راه حل بعدی را ادامه دهید.

7] بازیابی سیستم را انجام دهید

اگر متوجه شدید که آدرس عملکرد باعث شده است که خطای(Function address caused a protection fault) چاپ خطای حفاظتی اخیراً رخ دهد، کاملاً ممکن است که این مشکل با تغییری که اخیراً سیستم شما انجام داده است، تسهیل شده باشد.

اگر نمی‌دانید چه تغییری ممکن است منجر به شکستن عملکرد چاپ برنامه‌های آفیس(Office) شما شود ، می‌توانید از System Restore (هر گونه تغییر مانند نصب برنامه، تنظیمات برگزیده کاربر و هر چیز دیگری که در آن زمان انجام شود از بین می‌رود) برای بازگشت به یک تاریخی که در آن مطمئن هستید که چاپ به درستی کار می کند.

برای انجام بازیابی سیستم ، موارد زیر را انجام دهید:

  • کلید Windows + R را فشار دهید.
  • در کادر محاوره‌ای Run، rstrui را تایپ کرده  و Enter را بزنید تا  System Restore  Wizard باز شود.
  • هنگامی که به صفحه اولیه System Restore رسیدید(System Restore) ، روی Next کلیک کنید تا به پنجره بعدی بروید.
  • در صفحه بعدی، کادر مربوط به نمایش نقاط بازیابی بیشتر را علامت(Show more restore points) بزنید.
  • پس از انجام این کار، نقطه‌ای را انتخاب کنید که تاریخ آن قدیمی‌تر از تاریخی است که برای اولین بار متوجه خطا شده‌اید.
  •  برای رفتن به منوی بعدی روی Next کلیک کنید .
  • روی Finish کلیک کنید  و در آخرین فرمان تایید کنید.

در راه اندازی بعدی سیستم، وضعیت رایانه قدیمی شما اعمال می شود.

Hopefully, any of these solutions will fix the issue for you!



About the author

من یک دانشمند کامپیوتر با تمرکز بر حریم خصوصی و حساب های کاربری و ایمنی خانواده هستم. من در چند سال گذشته روی بهبود امنیت گوشی های هوشمند کار کرده ام و تجربه کار با شرکت های بازی را دارم. من همچنین در مورد مسائل مربوط به حساب های کاربری و بازی در موارد متعدد نوشته ام.



Related posts