• How do I resolve printer driver error 0x000007d1

    Home » Forums » AskWoody support » PC hardware » Questions: How to troubleshoot hardware problems » How do I resolve printer driver error 0x000007d1

    Author
    Topic
    #2638388

    I have a printer that was working on the desktop PC and no longer connects to it. The printer is set up with a wifi connection. It works with my cell and laptop.

    Is this a firewall problem? Or some windows update that messed it up. (I had not installed any recently)

    I tried uninstalling the printer, and reinstalling with all the software and drivers package. It still doesn’t work with the PC.

    Viewing 7 reply threads
    Author
    Replies
    • #2638433

      Deleting this registry key seems to have worked for lots of people over the years to resolve that error:

      Fix Printer error 0x000007d1, The specified driver is invalid in Windows 11/10

    • #2640292

      I actually don’t have this in the registry which I think is very odd. I deleted one that said upgrade but not POSTSP upgrade.

      I probably didn’t use the right terminology. My destop PC is connected to the internet with an ethernet cable to the modem. I think when the printer was working it was a network connection.

      Can you have a laptop and cell phone connected by wifi and a hard wired PC also connected to the printer in Windows 11 Pro 23H2?

       

       

       

    • #2640666

      Can you have a laptop and cell phone connected by wifi and a hard wired PC also connected to the printer

      Of course.

      The printer doesn’t care what machine / operating system you use, it accepts printer data and prints.

      Have you tried installing the printer manually? (“the printer I want isn’t listed”)
      You will need the IP / DNS name of the printer for this to work and you can get that using Angry IP scanner.

      Run Angry and click on the IP button.
      ip1

      Change the last number of the range to 254
      ip2

      Click Start and wait for it to finish.
      Select Utils > Delete from list > Dead hosts

      You can see my Brother printer from its name here.
      ip3

      Use your printer name in the IP/name field in the new printer dialog.

      cheers, Paul

    • #2641297

      I don’t seem to be able to get it past this, even after adding to allow list of Malwarebytes.

       

    • #2641304

      Hi @Paul-T !

      I just downloaded the file at the link in your post on sourceforge, and ran it through Virustotal. It got a 40/72 score, meaning that 40 of the 72 anti-crapware suites on Virustotal don’t like it for one reason or another. Some of the suites that flagged it are from major players in the field, such as Malwarebytes, ESET, Trend Micro and McAfee, while other major players (Microsoft, Webroot, BitDefender, to name a few) didn’t flag it at all. Given how it’s classified on the site with some of the labels and categories, I can see how some suites don’t like it.

      If you’re interested, here’s the link to the results:

      https://www.virustotal.com/gui/file/40dc213fe4551740e12cac575a9880753a9dacd510533f31bd7f635e743a7605/detection

      Basically, I believe that this is a case of what would normally be malicious techniques actually being put to GOOD use instead of malicious use. Problem is, some of the anti-crapware suites don’t really seem to have a way of inherently knowing that, even with the app itself on the whitelist, as documented in @Alith ‘s post above.

      So, is there another way to find the printer’s IP, perhaps?

    • #2641343

      You can use any of the free IP scanners out there, but most need to be installed / sign up to.

      Free IP Scanner – same AV issue.
      LizardSystem Network Scanner – installer.

      Here is a PowerShell version courtesy of powershell.one

      Copy this code block and paste it into a PowerShell window. It will take about 30 seconds to run.

      cheers, Paul

      function Test-OnlineFast
      {
          param
          (
              # make parameter pipeline-aware
              [Parameter(Mandatory)]
              [string[]]
              $ComputerName,
      
              $TimeoutMillisec = 1000
          )
      
          # hash table with error code to text translation
          $StatusCode_ReturnValue = 
          @{
              0='Success'
              11001='Buffer Too Small'
              11002='Destination Net Unreachable'
              11003='Destination Host Unreachable'
              11004='Destination Protocol Unreachable'
              11005='Destination Port Unreachable'
              11006='No Resources'
              11007='Bad Option'
              11008='Hardware Error'
              11009='Packet Too Big'
              11010='Request Timed Out'
              11011='Bad Request'
              11012='Bad Route'
              11013='TimeToLive Expired Transit'
              11014='TimeToLive Expired Reassembly'
              11015='Parameter Problem'
              11016='Source Quench'
              11017='Option Too Big'
              11018='Bad Destination'
              11032='Negotiating IPSEC'
              11050='General Failure'
          }
      
          # hash table with calculated property that translates
          # numeric return value into friendly text
      
          $statusFriendlyText = @{
              # name of column
              Name = 'Status'
              # code to calculate content of column
              Expression = { 
                  # take status code and use it as index into
                  # the hash table with friendly names
                  # make sure the key is of same data type (int)
                  $StatusCode_ReturnValue[([int]$_.StatusCode)]
              }
          }
      
          # calculated property that returns $true when status -eq 0
          $IsOnline = @{
              Name = 'Online'
              Expression = { $_.StatusCode -eq 0 }
          }
      
          # do DNS resolution when system responds to ping
          $DNSName = @{
              Name = 'DNSName'
              Expression = { if ($_.StatusCode -eq 0) { 
                      if ($_.Address -like '*.*.*.*') 
                      { [Net.DNS]::GetHostByAddress($_.Address).HostName  } 
                      else  
                      { [Net.DNS]::GetHostByName($_.Address).HostName  } 
                  }
              }
          }
      
          # convert list of computers into a WMI query string
          $query = $ComputerName -join "' or Address='"
      
          Get-CimInstance -ClassName Win32_PingStatus -Filter "(Address='$query') and timeout=$TimeoutMillisec" |
          Select-Object -Property Address, $IsOnline, $DNSName, $statusFriendlyText | Where-Object Status -eq "Success" | Format-Table -AutoSize
          
      }
      
      $MyIP = (get-netipaddress -AddressFamily IPv4 -AddressState preferred -PrefixOrigin dhcp).ipaddress.split('.')
      $MyIP = $MyIP[0]+'.'+$MyIP[1]+'.'+$MyIP[2]+'.'
      $iprange = 1..200 | ForEach-Object { "$MyIP$_" }
      Test-OnlineFast -ComputerName $iprange
      
      
    • #2641455

      I think I can print a test page/indo page from the printer directly. If that doesn’t work I’ll run the power shell thanks.

    • #2641959

      After a clean install of OS and turning off the firewall, the printer is now working.

      Thank you for your replies.

       

       

    Viewing 7 reply threads
    Reply To: How do I resolve printer driver error 0x000007d1

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: