如果当您尝试从Word、Excel、Publisher 等(Publisher et al)Microsoft Office 程序(Microsoft Office program)中打印文件/文档时,您会收到打印错误消息(printing error message);函数地址导致了保护故障(Function address caused a protection fault)——那么这篇文章旨在帮助你。在这篇文章中,我们将确定一些可能触发错误的潜在已知原因,然后提供您可以尝试帮助修复此问题的可能解决方案。
当打印作业(print job)失败时,您会收到以下错误消息(error message)实例;
Function address 12345 caused a protection fault.
(exception code 12345)
The application property sheet page(s) may not function properly.
大多数遇到此打印错误(printing error)的用户报告说,如果他们尝试常规打印,则错误不会发生 - 只有当他们尝试从Office 应用程序(Office application)中打印时,才会出现该错误。请记住(Bear),此错误消息(error message)的各种实例具有不同的错误代码。但是,根本原因是相同的 - 因此,相同的修复程序应该适用于此错误的所有实例。
由于以下一种或多种(但不限于)已知原因,您可能会遇到错误消息;(error message)
- 正确的打印机未设置为默认值。
- 过时的打印机驱动程序。
- 损坏的打印机子项。
- 系统(System)文件损坏 -(corruption –) 系统(System) 文件损坏(file corruption)的可能性较小,但可能是此问题的罪魁祸首。通常,它出现在安全扫描(security scan)结束隔离打印服务(printing service)使用的某些项目之后。
修复 Function 地址(Fix Function address)导致的保护故障(protection fault)
如果您遇到此功能地址导致保护故障(Function address caused a protection fault)打印错误,您可以尝试以下我们推荐的解决方案(不分先后顺序),看看是否有助于解决问题。
- 运行打印机疑难解答
- 运行 SFC/DISM 扫描
- 更改默认打印机
- 更新打印机驱动程序
- 卸载打印机驱动程序(printer driver),重命名打印(rename printing)子项并重新启动Print Spooler 服务(Print Spooler service)
- 更改LegacyDefaultPrinterMode注册表项值数据
- 执行系统还原
让我们看一下与列出的每个解决方案相关的过程的描述。
1]运行打印机疑难解答
运行Windows 10内置的疑难解答(Troubleshooter)程序将重新启动您的打印机和驱动程序(printer and drivers)并检查是否有任何错误。在此过程中必须连接您的打印机。
要运行打印机疑难解答(Printer Troubleshooter),请执行以下操作:
- 单击 开始(Start) 并选择 设置。(Settings.)
- 转到 更新和安全。( Update and Security.)
- 单击 疑难解答(Troubleshooter) 选项卡。
- 向下滚动并单击 打印机。(Printers.)
- 单击 运行疑难解答( Run the troubleshooter) 按钮。
- 按照(Follow)屏幕上的说明并应用任何推荐的修复程序。
之后(Afterward),尝试打印,看看Function address引起的保护故障(Function address caused a protection fault)打印错误是否得到解决。如果没有,请继续下一个解决方案。
2]运行SFC/DISM扫描
SFC/DISM 是Windows中的 实用程序,允许用户扫描Windows 系统(Windows system)文件中的损坏并恢复损坏的文件。
为方便起见(ease and convenience),您可以使用以下过程运行扫描。
- 按 Windows 键 + R。
- 在“运行”对话框中,键入记事本(notepad)并按 Enter 键打开记事本。
- 将下面的命令复制并粘贴(Copy and paste)到文本编辑器(text editor)中。
@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。
- 以管理员权限重复运行批处理文件(batch file)(右键单击保存的文件并(file and select) 从上下文菜单中选择(context menu)以管理员身份运行(Run as Administrator)),直到它没有报告错误。
- 重新启动您的电脑。
再次尝试打印作业(print job),看看问题是否已解决。如果不继续下一个解决方案。
3]更改默认打印机
如果您要使用的打印机未在Windows设置中设置为默认值,也可能会出现(Windows)功能地址导致保护故障(Function address caused a protection fault)打印错误的情况。执行以下操作更改默认打印机(default printer):
- 按 Windows 键 + R。
- 在“运行”对话框(Run dialog)中,复制并粘贴(copy and paste) ms-settings:printers 并按 Enter 以打开 “设置”应用程序的“(Settings)打印机和扫描仪(Printers & scanners)” 窗口 。
- 进入打印机和扫描仪(Printers & scanners)选项卡后,在右侧窗格中向下滚动并取消选中允许 Windows 管理我的默认打印机(Allow Windows to manage my default printer)设置。
- 现在,单击您要使用的打印机,然后单击Set as default。
将正确的打印机设置为默认打印机后,重新启动计算机并查看打印错误(printing error)是否已解决。如果没有继续下一个解决方案。
4]更新打印机驱动程序
此解决方案要求您确保已为您的打印机安装了最新的打印驱动程序。 您可以从制造商的网站下载最新版本的打印机驱动程序。(printer driver)
或者,您可以通过设备管理器更新(Device Manager)打印机驱动程序(printer driver)。这是如何做:
- 按 Windows 键 + X 打开高级用户菜单(Power User Menu),然后按M键打开设备管理器。
- 进入设备管理器(Device Manager)后,向下滚动已安装设备列表并展开/折叠打印队列(Print queues )部分。
- 接下来,右键单击您遇到问题的打印机,然后从上下文菜单中选择更新驱动程序。(Update driver)
- 在下一个屏幕上,单击自动搜索更新的驱动程序软件。(Search automatically for updated driver software.)
- 等到(Wait)扫描完成。如果找到新的驱动程序版本(driver version),请按照屏幕上的说明将其下载并安装到您的计算机上。
- 重新启动您的设备。
尝试发送打印作业(print job),查看功能地址导致的保护故障(Function address caused a protection fault)打印错误是否已解决。如果没有,请继续下一个解决方案。
5]卸载打印机(Uninstall printer)驱动程序,重命名打印(rename printing)子键并重新启动Print Spooler服务(Print Spooler service)
在此解决方案中,您需要完成一系列任务(包括卸载打印机驱动程序(printer driver)、重命名打印子项和重新启动Print Spooler 服务(Print Spooler service)),以查看是否可以解决Function 地址导致的保护故障打印错误。(Function address caused a protection fault)
请执行下列操作:
- 登录到受影响的计算机。
- 按 Windows 键 + X 打开高级用户菜单(Power User Menu),然后按M键打开设备管理器。
- 进入设备管理器(Device Manager)后,浏览已安装设备的列表并展开打印队列(Print queues)下拉菜单。
- 接下来,右键单击要删除的打印机驱动程序并选择(printer driver)Uninstall Device。
- 再次单击卸载以确认该过程。(Uninstall)
卸载过程完成后,您可以退出设备管理器(Device Manager)。
- 接下来,按Windows 键(Windows key)+ R 调用“运行”对话框(Run dialog)。
- 在“运行”对话框中,键入printui.exe /s /t2 并按 Enter 以打开 打印机服务器属性 UI(Printer Server Properties UI)。
- 进入“打印服务器属性(Print Server Properties)” 屏幕后,转到“ 驱动程序(Drivers)” 选项卡并选择导致问题的驱动程序。选择驱动程序后,单击删除(Remove)按钮。
- 然后,“删除驱动程序和包”(Remove Driver And Package )对话框将提示您。
- 选择仅删除驱动程序的单选按钮。(Remove driver only.)
- 单击确定。(OK.)
该过程完成后,您可以退出“打印服务器属性(Print Server Properties)” 屏幕。
- 现在按Windows 键(Windows key)+ R 打开另一个运行对话框(Run dialog)。
- 在文本框中键入regedit并按 Enter 打开 注册表编辑器(Registry Editor)。
(Important:)重要提示(event something):在继续此过程之前备份注册表,以便在出现问题时能够恢复注册表。
- 导航或跳转(Navigate or jump)到下面的注册表项路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\
在该位置,继续使用.old 扩展名重命名(.old extension)Print Processors下的任何子项或项。这将迫使Windows忽略这些键并创建新的文件夹和值。
注意(Note):在这种情况下,只有一个子项(winprint),因此我们将其重命名为winprint.old。
完成此步骤后,您可以安全地关闭注册表编辑器(Registry Editor)。
- 再次调用Run 对话框并(Run dialog box and type) 在文本框中键入(text box and press Enter)services.msc ,然后按 Enter 打开 Services 窗口。
- 在“服务”窗口中,找到 Print Spooler 服务。
- 右键单击 打印后台(Print Spooler)处理程序 并选择 属性。(Properties.)
- 在“属性”窗口中,单击 停止。(Stop.)
这将停止打印队列进程(print queue process)。保持打印后台处理程序属性(Print Spooler Properties)窗口打开。
- 现在,打开文件资源管理器并导航(File Explorer and navigate)到以下位置:
C:\WINDOWS\system32\spool\PRINTERS
- 删除 打印机(Printers) 文件夹中的所有文件。
如果您没有看到任何文件,请单击 查看(View) 选项卡并选中 隐藏项目(Hidden Items) 框。
- 关闭文件资源管理器窗口。
- 在“后台打印程序属性”窗口(Print Spooler Properties window)中,单击“ 开始(Start)” 按钮重新启动服务。
再次重新启动计算机并在下次计算机启动(computer startup)时重新安装必要的打印机驱动程序。再次尝试打印作业(print job),看看问题是否已解决。
6]更改LegacyDefaultPrinterMode注册表键值数据
在此解决方案中,要解决Function address 导致的保护错误(Function address caused a protection fault)打印错误,您需要在Registry Editor中更改(Registry Editor)LegacyDefaultPrinterMode注册表项Value 数据(Value data)。
这是如何做:
记得备份注册表。
- 导航或跳转(Navigate or jump)到下面的注册表项路径:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
- 在右窗格中双击LegacyDefaultPrinterMode以编辑其属性。
- 将数值数据设置为1。
这将返回到Windows 10下的旧默认打印机行为(default printer behavior)。
检查问题是否已解决。否则继续下一个解决方案。
7]执行系统还原
如果您注意到最近开始出现功能地址导致保护故障(Function address caused a protection fault)打印错误,则完全有可能是您的系统最近经历的更改导致了该问题。
如果您不知道最终可能会破坏Office应用程序的打印功能的更改,您可以使用系统还原(System Restore)(任何更改,如应用程序安装、用户首选项和在此期间所做的任何其他内容都将丢失)恢复到您确定打印工作正常的日期。
要执行系统还原(System Restore),请执行以下操作:
- 按 Windows 键 + R。
- 在“运行”对话框中,键入rstrui 并按 Enter 以打开“ 系统还原(System Restore) 向导”。
- 到达System Restore的初始屏幕后,单击Next前进到下一个窗口。
- 在下一个屏幕上,选中与Show more restore points关联的框。
- 完成此操作后,选择一个日期早于您第一次开始注意到错误的日期的点。
- 单击下一步(Next) 前进到下一个菜单。
- 单击完成(Finish) 并在最后的提示处确认。
在下一次系统启动(system startup)时,您的旧计算机状态(computer state)将被强制执行。
Hopefully, any of these solutions will fix the issue for you!
Function address caused a Protection Fault - Printing error
If when yoυ try to print files/documents from within a Miсrosoft Office program like Word, Excel, Publisher et al and you reсeivе the printing error message; Function address caused a protection fault – then this post is intended to help you. In this post, we will identify some potential known causes that can trigger the error and then provide the possible solutions you can try to help remediate this issue.
When the print job fails, you receive the following instance of the error message;
Function address 12345 caused a protection fault.
(exception code 12345)
The application property sheet page(s) may not function properly.
Most users that are encountering this printing error, report that the error is not occurring if they try to print conventionally – the error only appears whenever they try to print from within an Office application. Bear in mind that there are various instances of this error message with different error codes. However, the underlying causes is the same – consequently, the same fix should work on all the instances of this error.
You might encounter the error message due to one or more (but not limited to) of the following known causes;
- The correct printer is not set as the default.
- Outdated printer driver.
- Corrupt printer subkeys.
- System file corruption – System file corruption is a less likely but a possible culprit for this problem. Typically, it appears after a security scan ended up quarantining some items used by the printing service.
Fix Function address caused a protection fault
If you’re faced with this Function address caused a protection fault printing error, you can try our recommended solutions below in no particular order and see if that helps to resolve the issue.
- Run Printer Troubleshooter
- Run SFC/DISM scan
- Change the default printer
- Update printer driver
- Uninstall printer driver, rename printing subkeys and restart Print Spooler service
- Change LegacyDefaultPrinterMode registry key Value data
- Perform System Restore
Let’s take a look at the description of the process involved in relation to each of the listed solutions.
Fix Protection fault Printer Properties error
1] Run Printer Troubleshooter
Running the Windows 10 in-built Troubleshooter will restart your printer and drivers and check for any errors. Your printer must be connected during this procedure.
To run the Printer Troubleshooter, do the following:
- Click Start and select Settings.
- Go to Update and Security.
- Click the Troubleshooter tab.
- Scroll down and click on Printers.
- Click the Run the troubleshooter button.
- Follow on-screen instructions and apply any recommended fixes.
Afterward, try printing and see if the Function address caused a protection fault printing error is resolved. If not, continue with the next solution.
2] Run SFC/DISM scan
The SFC/DISM is a utility in Windows that allows users to scan for corruptions in Windows system files and restore corrupted files.
For the purposes of ease and convenience, you can run the scan using the procedure below.
- Press Windows key + R.
- In the Run dialog box, type notepad and hit Enter to open Notepad.
- Copy and paste the command below into the text editor.
@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
- Save the file with a name and append the .bat file extension – eg; SFC_DISM_scan.bat.
- Repeatedly run the batch file with admin privilege (right-click the saved file and select Run as Administrator from the context menu) until it reports no errors.
- Restart your PC.
Try the print job again and see if the issue is resolved. If not proceed with the next solution.
3] Change the default printer
The Function address caused a protection fault printing error can also occur in a situation where the printer that you want to use is not set up as the default inside Windows settings. Do the following to change the default printer:
- Press Windows key + R.
- In the Run dialog box, copy and paste ms-settings:printers and hit Enter to open up the Printers & scanners window of the Settings app.
- Once you’re inside the Printers & scanners tab, scroll down on the right pane and uncheck the Allow Windows to manage my default printer setting.
- Now, click the printer that you want to use and click on Set as default.
After you establish the correct printer as the default, restart your computer and see if the printing error is resolved. If not continue with the next solution.
Read: How to reset Printer to default factory settings.
4] Update printer driver
This solution requires you to make sure you have installed the latest print drivers for your printer. You can download the latest version of the printer driver from the manufacturer’s website.
Alternatively, you can update the printer driver via Device Manager. Here’s how:
- Press Windows key + X to open the Power User Menu, then press M key to open Device Manager.
- Once you’re inside Device Manager, scroll down through the list of installed devices and expand/collapse the Print queues section.
- Next, right-click on the printer that you’re having issues with and choose Update driver from the context menu.
- At the next screen, click on Search automatically for updated driver software.
- Wait until the scan is complete. If a new driver version is found, follow the on-screen instructions to download & install it on your computer.
- Restart your device.
Try sending a print job and see if the Function address caused a protection fault printing error is resolved. If not, continue with the next solution.
5] Uninstall printer driver, rename printing subkeys and restart Print Spooler service
In this solution, there’s a sequence of tasks (which involves uninstalling printer driver, renaming printing subkeys and restarting Print Spooler service) that you need to complete to see if the Function address caused a protection fault printing error can be resolved.
Do the following:
- Log in to the affected computer.
- Press Windows key + X to open the Power User Menu, then press M key to open Device Manager.
- Once you’re inside Device Manager, navigate through the list of installed devices and expand the Print queues drop-down menu.
- Next, right-click on the printer driver that you want to remove and choose Uninstall Device.
- Click Uninstall once again to confirm the process.
Once the uninstall process completes, you can exit the Device Manager.
- Next, press Windows key + R to invoke the Run dialog box.
- In the Run dialog box, type printui.exe /s /t2 and hit Enter to open up the Printer Server Properties UI.
- Once you’re inside the Print Server Properties screen, go to the Drivers tab and select the driver that is causing the issue. With the driver selected, click the Remove button.
- You’ll then be prompted by the Remove Driver And Package dialog.
- Select the radio button for Remove driver only.
- Click OK.
Once the process is complete, you can exit the Print Server Properties screen.
- Now press Windows key + R to open up another Run dialog box.
- Type regedit inside the text box and press Enter to open up Registry Editor.
Important: Back up the registry before you continue with this procedure so that you can be able to restore the registry in the event something goes wrong.
- Navigate or jump to the registry key path below:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\
At the location, proceed to rename any subkeys or keys under Print Processors with the .old extension. This will force Windows to disregard those keys and create new folders and values instead.
Note: In this case, there’s just one subkey (winprint), so we renamed it to winprint.old.
Once this step is complete, you can safely close Registry Editor.
- Again, invoke the Run dialog box and type services.msc inside the text box and press Enter to open up the Services window.
- In the Services window, locate the Print Spooler service.
- Right-click on Print Spooler and select Properties.
- In the Properties window, click Stop.
This will stop the print queue process. Keep the Print Spooler Properties window open.
- Now, open File Explorer and navigate to the following location:
C:\WINDOWS\system32\spool\PRINTERS
- Delete all the files in the Printers folder.
If you don’t see any files, click the View tab and check the Hidden Items box.
- Close the File Explorer window.
- In the Print Spooler Properties window, click the Start button to restart the service.
Restart your computer once again and reinstall the necessary printer drivers at the next computer startup. Try the print job once more and see if the issue is resolved.
6] Change LegacyDefaultPrinterMode registry key Value data
In this solution, to resolve the Function address caused a protection fault printing error, you’ll need to change LegacyDefaultPrinterMode registry key Value data in Registry Editor.
Here’s how:
Remember to back up the registry.
- Navigate or jump to the registry key path below:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
- On the right pane double-click LegacyDefaultPrinterMode to edit it’s properties.
- Set the Value data to 1.
This will return to the old default printer behavior under Windows 10.
- Click OK to save changes.
- Restart PC.
Check to see if the issue is resolved. Else continue with the next solution.
7] Perform System Restore
If you noticed that the Function address caused a protection fault printing error started to occur recently, it’s entirely possible that the issue was facilitated by a change that your system has gone through recently.
If you have no idea what changed that might have ended up breaking the printing functionality of your Office applications, you can use System Restore (any changes like application installs, user preferences and anything else made during that time will be lost) to revert to a date where you’re certain that the printing was working properly.
To perform System Restore, do the following:
- Press Windows key + R.
- In the Run dialog box, type rstrui and hit Enter to open up the System Restore Wizard.
- Once you arrive at the initial screen of System Restore, click Next to advance to the next window.
- At the next screen, check the box associated with Show more restore points.
- After you’ve done this, select a point that has an older date than the one in which you first started to notice the error.
- Click Next to advance to the next menu.
- Click Finish and confirm at the final prompt.
At the next system startup, your older computer state will be enforced.
Hopefully, any of these solutions will fix the issue for you!