mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-12 05:17:22 +00:00
Merge pull request #7282 from vinaypamnani-msft/vp-cm-troubleshoot
Remove migrated troubleshoot docs
This commit is contained in:
commit
a89bba8db8
@ -19924,13 +19924,118 @@
|
||||
"source_path": "windows/client-management/mdm/wmi-providers-supported-in-windows.md",
|
||||
"redirect_url": "/windows/client-management/wmi-providers-supported-in-windows",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "education/windows/set-up-school-pcs-shared-pc-mode.md",
|
||||
"redirect_url": "/windows/configuration/set-up-shared-or-guest-pc",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/advanced-troubleshooting-802-authentication.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/802-1x-authentication-issues-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/advanced-troubleshooting-boot-problems.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/windows-boot-issues-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/advanced-troubleshooting-wireless-network-connectivity.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/wireless-network-connectivity-issues-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/data-collection-for-802-authentication.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/data-collection-for-troubleshooting-802-1x-authentication-issues",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/determine-appropriate-page-file-size.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/how-to-determine-the-appropriate-page-file-size-for-64-bit-versions-of-windows",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/generate-kernel-or-complete-crash-dump.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/generate-a-kernel-or-complete-crash-dump",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/introduction-page-file.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/introduction-to-the-page-file",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/system-failure-recovery-options.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/configure-system-failure-and-recovery-options",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-event-id-41-restart.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/event-id-41-restart",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-inaccessible-boot-device.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/stop-error-7b-or-inaccessible-boot-device-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-networking.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/networking-overview",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-stop-error-on-broadcom-driver-update.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/stop-error-broadcom-network-driver-update",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-stop-errors.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/stop-error-or-blue-screen-error-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-tcpip-connectivity.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/tcp-ip-connectivity-issues-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-tcpip-netmon.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/collect-data-using-network-monitor",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-tcpip-port-exhaust.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/tcp-ip-port-exhaustion-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-tcpip-rpc-errors.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/rpc-errors-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-tcpip.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/networking/networking-overview",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-windows-freeze.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/windows-based-computer-freeze-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/troubleshoot-windows-startup.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/performance/windows-startup-issues-troubleshooting",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/client-management/windows-10-support-solutions.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/welcome-windows-client",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "education/windows/set-up-school-pcs-shared-pc-mode.md",
|
||||
"redirect_url": "/windows/configuration/set-up-shared-or-guest-pc",
|
||||
"redirect_document_id": false
|
||||
},
|
||||
{
|
||||
"source_path": "windows/deployment/update/windows-update-errors.md",
|
||||
"redirect_url": "/troubleshoot/windows-client/deployment/common-windows-update-errors?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json",
|
||||
"redirect_document_id": false
|
||||
|
@ -1,117 +0,0 @@
|
||||
---
|
||||
title: Advanced Troubleshooting 802.1X Authentication
|
||||
ms.reviewer:
|
||||
description: Troubleshoot authentication flow by learning how 802.1X Authentication works for wired and wireless clients.
|
||||
ms.prod: w10
|
||||
author: aczechowski
|
||||
ms.author: aaroncz
|
||||
manager: dougeby
|
||||
ms.localizationpriority: medium
|
||||
ms.topic: troubleshooting
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Advanced troubleshooting 802.1X authentication
|
||||
|
||||
## Overview
|
||||
|
||||
This article includes general troubleshooting for 802.1X wireless and wired clients. While troubleshooting 802.1X and wireless, it's important to know how the flow of authentication works, and then figure out where it's breaking. It involves many third-party devices and software. Most of the time, we have to identify where the problem is, and another vendor has to fix it. We don't make access points or switches, so it's not an end-to-end Microsoft solution.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This troubleshooting technique applies to any scenario in which wireless or wired connections with 802.1X authentication are attempted and then fail to establish. The workflow covers Windows 7 through Windows 10 (and Windows 11) for clients, and Windows Server 2008 R2 through Windows Server 2012 R2 for NPS.
|
||||
|
||||
## Known issues
|
||||
|
||||
None
|
||||
|
||||
## Data collection
|
||||
|
||||
See [Advanced troubleshooting 802.1X authentication data collection](data-collection-for-802-authentication.md).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Viewing [NPS authentication status events](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc735320(v%3dws.10)) in the Windows Security [event log](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc722404(v%3dws.11)) is one of the most useful troubleshooting methods to obtain information about failed authentications.
|
||||
|
||||
NPS event log entries contain information about the connection attempt, including the name of the connection request policy that matched the connection attempt and the network policy that accepted or rejected the connection attempt. If you don't see both success and failure events, see the [NPS audit policy](#audit-policy) section later in this article.
|
||||
|
||||
Check the Windows Security event log on the NPS Server for NPS events that correspond to the rejected ([event ID 6273](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc735399(v%3dws.10))) or the accepted ([event ID 6272](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc735388(v%3dws.10))) connection attempts.
|
||||
|
||||
In the event message, scroll to the bottom, and then check the [Reason Code](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd197570(v%3dws.10)) field and the text that's associated with it.
|
||||
|
||||

|
||||
*Example: event ID 6273 (Audit Failure)*<br><br>
|
||||
|
||||

|
||||
*Example: event ID 6272 (Audit Success)*<br>
|
||||
|
||||
The WLAN AutoConfig operational log lists information and error events based on conditions detected by or reported to the WLAN AutoConfig service. The operational log contains information about the wireless network adapter, the properties of the wireless connection profile, the specified network authentication, and, if connectivity problems occur, the reason for the failure. For wired network access, the Wired AutoConfig operational log is an equivalent one.
|
||||
|
||||
On the client side, go to **Event Viewer (Local)\Applications and Services Logs\Microsoft\Windows\WLAN-AutoConfig/Operational** for wireless issues. For wired network access issues, go to **..\Wired-AutoConfig/Operational**. See the following example:
|
||||
|
||||

|
||||
|
||||
Most 802.1X authentication issues are because of problems with the certificate that's used for client or server authentication. Examples include invalid certificate, expiration, chain verification failure, and revocation check failure.
|
||||
|
||||
First, validate the type of EAP method that's used:
|
||||
|
||||

|
||||
|
||||
If a certificate is used for its authentication method, check whether the certificate is valid. For the server (NPS) side, you can confirm what certificate is being used from the EAP property menu. In **NPS snap-in**, go to **Policies** > **Network Policies**. Select and hold (or right-click) the policy, and then select **Properties**. In the pop-up window, go to the **Constraints** tab, and then select the **Authentication Methods** section.
|
||||
|
||||

|
||||
|
||||
The CAPI2 event log is useful for troubleshooting certificate-related issues.
|
||||
By default, this log isn't enabled. To enable this log, expand **Event Viewer (Local)\Applications and Services Logs\Microsoft\Windows\CAPI2**, select and hold (or right-click) **Operational**, and then select **Enable Log**.
|
||||
|
||||

|
||||
|
||||
For information about how to analyze CAPI2 event logs, see
|
||||
[Troubleshooting PKI Problems on Windows Vista](/previous-versions/windows/it-pro/windows-vista/cc749296%28v=ws.10%29).
|
||||
|
||||
When troubleshooting complex 802.1X authentication issues, it's important to understand the 802.1X authentication process. Here's an example of wireless connection process with 802.1X authentication:
|
||||
|
||||

|
||||
|
||||
If you [collect a network packet capture](troubleshoot-tcpip-netmon.md) on both the client and the server (NPS) side, you can see a flow like the one below. Type **EAPOL** in the Display Filter for a client-side capture, and **EAP** for an NPS-side capture. See the following examples:
|
||||
|
||||

|
||||
*Client-side packet capture data*<br><br>
|
||||
|
||||

|
||||
*NPS-side packet capture data*<br>
|
||||
|
||||
|
||||
> [!NOTE]
|
||||
> If you have a wireless trace, you can also [view ETL files with network monitor](/windows/desktop/ndf/using-network-monitor-to-view-etl-files) and apply the **ONEX_MicrosoftWindowsOneX** and **WLAN_MicrosoftWindowsWLANAutoConfig** Network Monitor filters. If you need to load the required [parser](/archive/blogs/netmon/parser-profiles-in-network-monitor-3-4), see the instructions under the **Help** menu in Network Monitor. Here's an example:
|
||||
|
||||

|
||||
|
||||
## Audit policy
|
||||
|
||||
By default, NPS audit policy (event logging) for connection success and failure is enabled. If you find that one or both types of logging are disabled, use the following steps to troubleshoot.
|
||||
|
||||
View the current audit policy settings by running the following command on the NPS server:
|
||||
```console
|
||||
auditpol /get /subcategory:"Network Policy Server"
|
||||
```
|
||||
|
||||
If both success and failure events are enabled, the output should be:
|
||||
<pre>
|
||||
System audit policy
|
||||
Category/Subcategory Setting
|
||||
Logon/Logoff
|
||||
Network Policy Server Success and Failure
|
||||
</pre>
|
||||
|
||||
If it says, "No auditing," you can run this command to enable it:
|
||||
```console
|
||||
auditpol /set /subcategory:"Network Policy Server" /success:enable /failure:enable
|
||||
```
|
||||
|
||||
Even if audit policy appears to be fully enabled, it sometimes helps to disable and then re-enable this setting. You can also enable Network Policy Server logon/logoff auditing by using Group Policy. To get to the success/failure setting, select **Computer Configuration** > **Policies** > **Windows Settings** > **Security Settings** > **Advanced Audit Policy Configuration** > **Audit Policies** > **Logon/Logoff** > **Audit Network Policy Server**.
|
||||
|
||||
## More references
|
||||
|
||||
[Troubleshooting Windows Vista 802.11 Wireless Connections](/previous-versions/windows/it-pro/windows-vista/cc766215(v=ws.10))<br>
|
||||
[Troubleshooting Windows Vista Secure 802.3 Wired Connections](/previous-versions/windows/it-pro/windows-vista/cc749352(v=ws.10))
|
@ -1,356 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for Windows boot problems
|
||||
description: Learn to troubleshoot when Windows can't boot. This article includes advanced troubleshooting techniques intended for use by support agents and IT professionals.
|
||||
ms.prod: w10
|
||||
ms.technology: windows
|
||||
ms.localizationpriority: medium
|
||||
ms.date: 06/02/2022
|
||||
author: aczechowski
|
||||
ms.author: aaroncz
|
||||
ms.reviewer:
|
||||
manager: dougeby
|
||||
ms.topic: troubleshooting
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for Windows boot problems
|
||||
|
||||
<p class="alert is-flex is-primary"><span class="has-padding-left-medium has-padding-top-extra-small"><a class="button is-primary" href="https://vsa.services.microsoft.com/v1.0/?partnerId=7d74cf73-5217-4008-833f-87a1a278f2cb&flowId=DMC&initialQuery=boot" target='_blank'><b>Try our Virtual Agent</b></a></span><span class="has-padding-small"> - It can help you quickly identify and fix common Windows boot issues.</span>
|
||||
|
||||
> [!NOTE]
|
||||
> This article is intended for use by support agents and IT professionals. If you're looking for more general information about recovery options, see [Recovery options in Windows 10](https://support.microsoft.com/windows/recovery-options-in-windows-31ce2444-7de3-818c-d626-e3b5a3024da5).
|
||||
|
||||
## Summary
|
||||
|
||||
There are several reasons why a Windows-based computer may have problems during startup. To troubleshoot boot problems, first determine in which of the following phases the computer gets stuck:
|
||||
|
||||
| Phase | Boot Process | BIOS | UEFI |
|
||||
|-----------|----------------------|------------------------------------|-----------------------------------|
|
||||
| 1 | PreBoot | MBR/PBR (Bootstrap Code) | UEFI Firmware |
|
||||
| 2 | Windows Boot Manager | %SystemDrive%\bootmgr | \EFI\Microsoft\Boot\bootmgfw.efi |
|
||||
| 3 | Windows OS Loader | %SystemRoot%\system32\winload.exe | %SystemRoot%\system32\winload.efi |
|
||||
| 4 | Windows NT OS Kernel | %SystemRoot%\system32\ntoskrnl.exe | |
|
||||
|
||||
1. **PreBoot**: The PC's firmware initiates a power-on self test (POST) and loads firmware settings. This pre-boot process ends when a valid system disk is detected. Firmware reads the master boot record (MBR), and then starts Windows Boot Manager.
|
||||
|
||||
2. **Windows Boot Manager**: Windows Boot Manager finds and starts the Windows loader (Winload.exe) on the Windows boot partition.
|
||||
|
||||
3. **Windows operating system loader**: Essential drivers required to start the Windows kernel are loaded and the kernel starts to run.
|
||||
|
||||
4. **Windows NT OS Kernel**: The kernel loads into memory the system registry hive and other drivers that are marked as BOOT_START.
|
||||
|
||||
The kernel passes control to the session manager process (Smss.exe) which initializes the system session, and loads and starts the devices and drivers that aren't marked BOOT_START.
|
||||
|
||||
<a name="boot-sequence"></a>
|
||||
|
||||
Here's a summary of the boot sequence, what will be seen on the display, and typical boot problems at that point in the sequence. Before you start troubleshooting, you have to understand the outline of the boot process and display status to ensure that the issue is properly identified at the beginning of the engagement. Select the thumbnail to view it larger.
|
||||
|
||||
:::image type="content" source="images/boot-sequence-thumb.png" alt-text="Diagram of the boot sequence flowchart." lightbox="images/boot-sequence.png":::
|
||||
|
||||
Each phase has a different approach to troubleshooting. This article provides troubleshooting techniques for problems that occur during the first three phases.
|
||||
|
||||
> [!NOTE]
|
||||
> If the computer repeatedly boots to the recovery options, run the following command at a command prompt to break the cycle:
|
||||
>
|
||||
> `Bcdedit /set {default} recoveryenabled no`
|
||||
>
|
||||
> If the F8 options don't work, run the following command:
|
||||
>
|
||||
> `Bcdedit /set {default} bootmenupolicy legacy`
|
||||
|
||||
## BIOS phase
|
||||
|
||||
To determine whether the system has passed the BIOS phase, follow these steps:
|
||||
|
||||
1. If there are any external peripherals connected to the computer, disconnect them.
|
||||
|
||||
2. Check whether the hard disk drive light on the physical computer is working. If it's not working, this dysfunction indicates that the startup process is stuck at the BIOS phase.
|
||||
|
||||
3. Press the NumLock key to see whether the indicator light toggles on and off. If it doesn't toggle, this dysfunction indicates that the startup process is stuck at BIOS.
|
||||
|
||||
If the system is stuck at the BIOS phase, there may be a hardware problem.
|
||||
|
||||
## Boot loader phase
|
||||
|
||||
If the screen is black except for a blinking cursor, or if you receive one of the following error codes, this status indicates that the boot process is stuck in the Boot Loader phase:
|
||||
|
||||
- Boot Configuration Data (BCD) missing or corrupted
|
||||
- Boot file or MBR corrupted
|
||||
- Operating system Missing
|
||||
- Boot sector missing or corrupted
|
||||
- Bootmgr missing or corrupted
|
||||
- Unable to boot due to system hive missing or corrupted
|
||||
|
||||
To troubleshoot this problem, use Windows installation media to start the computer, press **Shift** + **F10** for a command prompt, and then use any of the following methods.
|
||||
|
||||
### Method 1: Startup Repair tool
|
||||
|
||||
The Startup Repair tool automatically fixes many common problems. The tool also lets you quickly diagnose and repair more complex startup problems. When the computer detects a startup problem, the computer starts the Startup Repair tool. When the tool starts, it performs diagnostics. These diagnostics include analyzing startup log files to determine the cause of the problem. When the Startup Repair tool determines the cause, the tool tries to fix the problem automatically.
|
||||
|
||||
To do this task of invoking the Startup Repair tool, follow these steps.
|
||||
|
||||
> [!NOTE]
|
||||
> For additional methods to start WinRE, see [Windows Recovery Environment (Windows RE)](/windows-hardware/manufacture/desktop/windows-recovery-environment--windows-re--technical-reference#entry-points-into-winre).
|
||||
|
||||
1. Start the system to the installation media for the installed version of Windows. For more information, see [Create installation media for Windows](https://support.microsoft.com/windows/create-installation-media-for-windows-99a58364-8c02-206f-aa6f-40c3b507420d).
|
||||
|
||||
2. On the **Install Windows** screen, select **Next** > **Repair your computer**.
|
||||
|
||||
3. On the **Choose an option** screen, select **Troubleshoot**.
|
||||
|
||||
4. On the **Advanced options** screen, select **Startup Repair**.
|
||||
|
||||
5. After Startup Repair, select **Shutdown**, then turn on your PC to see if Windows can boot properly.
|
||||
|
||||
The Startup Repair tool generates a log file to help you understand the startup problems and the repairs that were made. You can find the log file in the following location:
|
||||
|
||||
`%windir%\System32\LogFiles\Srt\Srttrail.txt`
|
||||
|
||||
For more information, see [Troubleshoot blue screen errors](https://support.microsoft.com/sbs/windows/troubleshoot-blue-screen-errors-5c62726c-6489-52da-a372-3f73142c14ad).
|
||||
|
||||
### Method 2: Repair Boot Codes
|
||||
|
||||
To repair boot codes, run the following command:
|
||||
|
||||
```command
|
||||
BOOTREC /FIXMBR
|
||||
```
|
||||
|
||||
To repair the boot sector, run the following command:
|
||||
|
||||
```command
|
||||
BOOTREC /FIXBOOT
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Running `BOOTREC` together with `Fixmbr` overwrites only the master boot code. If the corruption in the MBR affects the partition table, running `Fixmbr` may not fix the problem.
|
||||
|
||||
### Method 3: Fix BCD errors
|
||||
|
||||
If you receive BCD-related errors, follow these steps:
|
||||
|
||||
1. Scan for all the systems that are installed. To do this step, run the following command:
|
||||
|
||||
```command
|
||||
Bootrec /ScanOS
|
||||
```
|
||||
|
||||
2. Restart the computer to check whether the problem is fixed.
|
||||
|
||||
3. If the problem isn't fixed, run the following commands:
|
||||
|
||||
```command
|
||||
bcdedit /export c:\bcdbackup
|
||||
|
||||
attrib c:\boot\bcd -r -s -h
|
||||
|
||||
ren c:\boot\bcd bcd.old
|
||||
|
||||
bootrec /rebuildbcd
|
||||
```
|
||||
|
||||
4. Restart the system.
|
||||
|
||||
### Method 4: Replace Bootmgr
|
||||
|
||||
If methods 1, 2 and 3 don't fix the problem, replace the Bootmgr file from drive C to the System Reserved partition. To do this replacement, follow these steps:
|
||||
|
||||
1. At a command prompt, change the directory to the System Reserved partition.
|
||||
|
||||
2. Run the `attrib` command to unhide the file:
|
||||
|
||||
```command
|
||||
attrib -r -s -h
|
||||
```
|
||||
|
||||
3. Navigate to the system drive and run the same command:
|
||||
|
||||
```command
|
||||
attrib -r -s -h
|
||||
```
|
||||
|
||||
4. Rename the `bootmgr` file as `bootmgr.old`:
|
||||
|
||||
```command
|
||||
ren c:\bootmgr bootmgr.old
|
||||
```
|
||||
|
||||
5. Navigate to the system drive.
|
||||
|
||||
6. Copy the `bootmgr` file, and then paste it to the System Reserved partition.
|
||||
|
||||
7. Restart the computer.
|
||||
|
||||
### Method 5: Restore system hive
|
||||
|
||||
If Windows can't load the system registry hive into memory, you must restore the system hive. To do this step, use the Windows Recovery Environment or use the Emergency Repair Disk (ERD) to copy the files from the `C:\Windows\System32\config\RegBack` directory to `C:\Windows\System32\config`.
|
||||
|
||||
If the problem persists, you may want to restore the system state backup to an alternative location, and then retrieve the registry hives to be replaced.
|
||||
|
||||
> [!NOTE]
|
||||
> Starting in Windows 10, version 1803, Windows no longer automatically backs up the system registry to the RegBack folder.This change is by design, and is intended to help reduce the overall disk footprint size of Windows. To recover a system with a corrupt registry hive, Microsoft recommends that you use a system restore point. For more information, see [The system registry is no longer backed up to the RegBack folder starting in Windows 10 version 1803](/troubleshoot/windows-client/deployment/system-registry-no-backed-up-regback-folder).
|
||||
|
||||
## Kernel Phase
|
||||
|
||||
If the system gets stuck during the kernel phase, you experience multiple symptoms or receive multiple error messages. These error messages include, but aren't limited to, the following examples:
|
||||
|
||||
- A Stop error appears after the splash screen (Windows Logo screen).
|
||||
|
||||
- Specific error code is displayed. For example, `0x00000C2` , `0x0000007B` , or `inaccessible boot device`.
|
||||
- [Advanced troubleshooting for Stop error 7B or Inaccessible_Boot_Device](./troubleshoot-inaccessible-boot-device.md)
|
||||
- [Advanced troubleshooting for Event ID 41 "The system has rebooted without cleanly shutting down first"](troubleshoot-event-id-41-restart.md)
|
||||
|
||||
- The screen is stuck at the "spinning wheel" (rolling dots) "system busy" icon.
|
||||
|
||||
- A black screen appears after the splash screen.
|
||||
|
||||
To troubleshoot these problems, try the following recovery boot options one at a time.
|
||||
|
||||
### Scenario 1: Try to start the computer in Safe mode or Last Known Good Configuration
|
||||
|
||||
On the **Advanced Boot Options** screen, try to start the computer in **Safe Mode** or **Safe Mode with Networking**. If either of these options works, use Event Viewer to help identify and diagnose the cause of the boot problem. To view events that are recorded in the event logs, follow these steps:
|
||||
|
||||
1. Use one of the following methods to open Event Viewer:
|
||||
|
||||
- Go to the **Start** menu, select **Administrative Tools**, and then select **Event Viewer**.
|
||||
|
||||
- Start the Event Viewer snap-in in Microsoft Management Console (MMC).
|
||||
|
||||
2. In the console tree, expand Event Viewer, and then select the log that you want to view. For example, choose **System log** or **Application log**.
|
||||
|
||||
3. In the details pane, open the event that you want to view.
|
||||
|
||||
4. On the **Edit** menu, select **Copy**. Open a new document in the program in which you want to paste the event. For example, Microsoft Word. Then select **Paste**.
|
||||
|
||||
5. Use the up arrow or down arrow key to view the description of the previous or next event.
|
||||
|
||||
### Clean boot
|
||||
|
||||
To troubleshoot problems that affect services, do a clean boot by using System Configuration (`msconfig`).
|
||||
Select **Selective startup** to test the services one at a time to determine which one is causing the problem. If you can't find the cause, try including system services. However, in most cases, the problematic service is third-party.
|
||||
|
||||
Disable any service that you find to be faulty, and try to start the computer again by selecting **Normal startup**.
|
||||
|
||||
For detailed instructions, see [How to perform a clean boot in Windows](https://support.microsoft.com/topic/how-to-perform-a-clean-boot-in-windows-da2f9573-6eec-00ad-2f8a-a97a1807f3dd).
|
||||
|
||||
If the computer starts in Disable Driver Signature mode, start the computer in Disable Driver Signature Enforcement mode, and then follow the steps that are documented in the following article to determine which drivers or files require driver signature enforcement:
|
||||
[Troubleshooting boot problem caused by missing driver signature (x64)](/archive/blogs/askcore/troubleshooting-boot-issues-due-to-missing-driver-signature-x64)
|
||||
|
||||
> [!NOTE]
|
||||
> If the computer is a domain controller, try Directory Services Restore mode (DSRM).
|
||||
>
|
||||
> This method is an important step if you encounter Stop error "0xC00002E1" or "0xC00002E2"
|
||||
|
||||
#### Examples
|
||||
|
||||
> [!WARNING]
|
||||
> Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft can't guarantee that these problems can be solved. Modify the registry at your own risk.
|
||||
|
||||
*Error code INACCESSIBLE_BOOT_DEVICE (STOP 0x7B)*
|
||||
|
||||
To troubleshoot this Stop error, follow these steps to filter the drivers:
|
||||
|
||||
1. Go to Windows Recovery Environment (WinRE) by putting an ISO disk of the system in the disk drive. The ISO should be of the same version of Windows or a later version.
|
||||
|
||||
2. Open the registry.
|
||||
|
||||
3. Load the system hive, and name it **test**.
|
||||
|
||||
4. Under the following registry subkey, check for lower filter and upper filter items for non-Microsoft drivers:
|
||||
|
||||
`HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class`
|
||||
|
||||
5. For each third-party driver that you locate, select the upper or lower filter, and then delete the value data.
|
||||
|
||||
6. Search through the whole registry for similar items. Process as appropriate, and then unload the registry hive.
|
||||
|
||||
7. Restart the server in Normal mode.
|
||||
|
||||
For more troubleshooting steps, see [Advanced troubleshooting for Stop error 7B or Inaccessible_Boot_Device](./troubleshoot-inaccessible-boot-device.md).
|
||||
|
||||
To fix problems that occur after you install Windows updates, check for pending updates by using these steps:
|
||||
|
||||
1. Open a Command Prompt window in WinRE.
|
||||
|
||||
2. Run the command:
|
||||
|
||||
```command
|
||||
DISM /image:C:\ /get-packages
|
||||
```
|
||||
|
||||
3. If there are any pending updates, uninstall them by running the following commands:
|
||||
|
||||
```command
|
||||
DISM /image:C:\ /remove-package /packagename: name of the package
|
||||
|
||||
DISM /Image:C:\ /Cleanup-Image /RevertPendingActions
|
||||
```
|
||||
|
||||
Try to start the computer.
|
||||
|
||||
If the computer doesn't start, follow these steps:
|
||||
|
||||
1. Open a command prompt window in WinRE, and start a text editor, such as Notepad.
|
||||
|
||||
2. Navigate to the system drive, and search for `windows\winsxs\pending.xml`.
|
||||
|
||||
3. If the pending.xml file is found, rename the file as `pending.xml.old`.
|
||||
|
||||
4. Open the registry, and then load the component hive in HKEY_LOCAL_MACHINE as test.
|
||||
|
||||
5. Highlight the loaded test hive, and then search for the `pendingxmlidentifier` value.
|
||||
|
||||
6. If the `pendingxmlidentifier` value exists, delete it.
|
||||
|
||||
7. Unload the test hive.
|
||||
|
||||
8. Load the system hive, name it **test**.
|
||||
|
||||
9. Navigate to the following subkey:
|
||||
|
||||
`HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TrustedInstaller`
|
||||
|
||||
10. Change the **Start** value from `1` to `4`.
|
||||
|
||||
11. Unload the hive.
|
||||
|
||||
12. Try to start the computer.
|
||||
|
||||
If the Stop error occurs late in the startup process, or if the Stop error is still being generated, you can capture a memory dump. A good memory dump can help determine the root cause of the Stop error. For more information, see [Generate a kernel or complete crash dump](./generate-kernel-or-complete-crash-dump.md).
|
||||
|
||||
For more information about page file problems in Windows 10 or Windows Server 2016, see [Introduction to page files](./introduction-page-file.md).
|
||||
|
||||
For more information about Stop errors, see [Advanced troubleshooting for Stop error or blue screen error issue](./troubleshoot-stop-errors.md).
|
||||
|
||||
Sometimes the dump file shows an error that's related to a driver. For example, `windows\system32\drivers\stcvsm.sys` is missing or corrupted. In this instance, follow these guidelines:
|
||||
|
||||
- Check the functionality that's provided by the driver. If the driver is a third-party boot driver, make sure that you understand what it does.
|
||||
|
||||
- If the driver isn't important and has no dependencies, load the system hive, and then disable the driver.
|
||||
|
||||
- If the stop error indicates system file corruption, run the system file checker in offline mode.
|
||||
|
||||
- To do this action, open WinRE, open a command prompt, and then run the following command:
|
||||
|
||||
```command
|
||||
SFC /Scannow /OffBootDir=C:\ /OffWinDir=C:\Windows
|
||||
```
|
||||
|
||||
For more information, see [Using system file checker (SFC) to fix issues](/archive/blogs/askcore/using-system-file-checker-sfc-to-fix-issues).
|
||||
|
||||
- If there's disk corruption, run the check disk command:
|
||||
|
||||
```command
|
||||
chkdsk /f /r
|
||||
```
|
||||
|
||||
- If the Stop error indicates general registry corruption, or if you believe that new drivers or services were installed, follow these steps:
|
||||
|
||||
1. Start WinRE, and open a command prompt window.
|
||||
2. Start a text editor, such as Notepad.
|
||||
3. Navigate to `C:\Windows\System32\Config\`.
|
||||
4. Rename the all five hives by appending `.old` to the name.
|
||||
5. Copy all the hives from the `Regback` folder, paste them in the `Config` folder, and then try to start the computer in Normal mode.
|
||||
|
||||
> [!NOTE]
|
||||
> Starting in Windows 10, version 1803, Windows no longer automatically backs up the system registry to the RegBack folder.This change is by design, and is intended to help reduce the overall disk footprint size of Windows. To recover a system with a corrupt registry hive, Microsoft recommends that you use a system restore point. For more information, see [The system registry is no longer backed up to the RegBack folder starting in Windows 10 version 1803](/troubleshoot/windows-client/deployment/system-registry-no-backed-up-regback-folder).
|
@ -1,324 +0,0 @@
|
||||
---
|
||||
title: Advanced Troubleshooting Wireless Network Connectivity
|
||||
ms.reviewer:
|
||||
manager: dougeby
|
||||
description: Learn how to troubleshoot Wi-Fi connections. Troubleshooting Wi-Fi connections requires understanding the basic flow of the Wi-Fi autoconnect state machine.
|
||||
ms.prod: w10
|
||||
author: aczechowski
|
||||
ms.localizationpriority: medium
|
||||
ms.author: aaroncz
|
||||
ms.topic: troubleshooting
|
||||
---
|
||||
|
||||
# Advanced troubleshooting wireless network connectivity
|
||||
|
||||
> [!NOTE]
|
||||
> Home users: This article is intended for use by support agents and IT professionals. If you're looking for more general information about Wi-Fi problems in Windows 10, check out this [Windows 10 Wi-Fi fix article](https://support.microsoft.com/en-in/help/4000432/windows-10-fix-wi-fi-problems).
|
||||
|
||||
## Overview
|
||||
|
||||
This overview describes the general troubleshooting of establishing Wi-Fi connections from Windows clients.
|
||||
Troubleshooting Wi-Fi connections requires understanding the basic flow of the Wi-Fi autoconnect state machine. Understanding this flow makes it easier to determine the starting point in a repro scenario in which a different behavior is found.
|
||||
This workflow involves knowledge and use of [TextAnalysisTool](https://github.com/TextAnalysisTool/Releases), an extensive text filtering tool that is useful with complex traces with numerous ETW providers such as wireless_dbg trace scenario.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This article applies to any scenario in which Wi-Fi connections fail to establish. The troubleshooter is developed with Windows 10 clients in focus, but also may be useful with traces as far back as Windows 7.
|
||||
|
||||
> [!NOTE]
|
||||
> This troubleshooter uses examples that demonstrate a general strategy for navigating and interpreting wireless component [Event Tracing for Windows](/windows/desktop/etw/event-tracing-portal) (ETW). It's not meant to be representative of every wireless problem scenario.
|
||||
|
||||
Wireless ETW is incredibly verbose and calls out many innocuous errors (rather flagged behaviors that have little or nothing to do with the problem scenario). Searching for or filtering on "err", "error", and "fail" will seldom lead you to the root cause of a problematic Wi-Fi scenario. Instead it will flood the screen with meaningless logs that will obfuscate the context of the actual problem.
|
||||
|
||||
It's important to understand the different Wi-Fi components involved, their expected behaviors, and how the problem scenario deviates from those expected behaviors.
|
||||
The intention of this troubleshooter is to show how to find a starting point in the verbosity of wireless_dbg ETW and home in on the responsible components that are causing the connection problem.
|
||||
|
||||
### Known Issues and fixes
|
||||
|
||||
| OS version | Fixed in |
|
||||
| --- | --- |
|
||||
| **Windows 10, version 1803** | [KB4284848](https://support.microsoft.com/help/4284848) |
|
||||
| **Windows 10, version 1709** | [KB4284822](https://support.microsoft.com/help/4284822) |
|
||||
| **Windows 10, version 1703** | [KB4338827](https://support.microsoft.com/help/4338827) |
|
||||
|
||||
Make sure that you install the latest Windows updates, cumulative updates, and rollup updates. To verify the update status, refer to the appropriate update-history webpage for your system:
|
||||
- [Windows 10 version 1809](https://support.microsoft.com/help/4464619)
|
||||
- [Windows 10 version 1803](https://support.microsoft.com/help/4099479)
|
||||
- [Windows 10 version 1709](https://support.microsoft.com/en-us/help/4043454)
|
||||
- [Windows 10 version 1703](https://support.microsoft.com/help/4018124)
|
||||
- [Windows 10 version 1607 and Windows Server 2016](https://support.microsoft.com/help/4000825)
|
||||
- [Windows 10 version 1511](https://support.microsoft.com/help/4000824)
|
||||
- [Windows 8.1 and Windows Server 2012 R2](https://support.microsoft.com/help/4009470)
|
||||
- [Windows Server 2012](https://support.microsoft.com/help/4009471)
|
||||
- [Windows 7 SP1 and Windows Server 2008 R2 SP1](https://support.microsoft.com/help/4009469)
|
||||
|
||||
## Data Collection
|
||||
|
||||
1. Network Capture with ETW. Enter the following command at an elevated command prompt:
|
||||
|
||||
```console
|
||||
netsh trace start wireless_dbg capture=yes overwrite=yes maxsize=4096 tracefile=c:\tmp\wireless.etl
|
||||
```
|
||||
2. Reproduce the issue.
|
||||
- If there's a failure to establish connection, try to manually connect.
|
||||
- If it's intermittent but easily reproducible, try to manually connect until it fails. Record the time of each connection attempt, and whether it was a success or failure.
|
||||
- If the issue is intermittent but rare, netsh trace stop command needs to be triggered automatically (or at least alerted to admin quickly) to ensure trace doesn’t overwrite the repro data.
|
||||
- If intermittent connection drops trigger stop command on a script (ping or test network constantly until fail, then netsh trace stop).
|
||||
3. Stop the trace by entering the following command:
|
||||
|
||||
```console
|
||||
netsh trace stop
|
||||
```
|
||||
4. To convert the output file to text format:
|
||||
|
||||
```console
|
||||
netsh trace convert c:\tmp\wireless.etl
|
||||
```
|
||||
|
||||
See the [example ETW capture](#example-etw-capture) at the bottom of this article for an example of the command output. After running these commands, you'll have three files: wireless.cab, wireless.etl, and wireless.txt.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
The following view is a high-level one of the main wifi components in Windows.
|
||||
|
||||
|Wi-fi Components|Description|
|
||||
|--- |--- |
|
||||
||The Windows Connection Manager (Wcmsvc) is closely associated with the UI controls (taskbar icon) to connect to various networks, including wireless networks. It accepts and processes input from the user and feeds it to the core wireless service.|
|
||||
||The WLAN Autoconfig Service (WlanSvc) handles the following core functions of wireless networks in windows:<li> Scanning for wireless networks in range<li>Managing connectivity of wireless networks|
|
||||
||The Media Specific Module (MSM) handles security aspects of connection being established.|
|
||||
||The Native WiFi stack consists of drivers and wireless APIs to interact with wireless miniports and the supporting user-mode Wlansvc.|
|
||||
||Third-party wireless miniport drivers interface with the upper wireless stack to provide notifications to and receive commands from Windows.|
|
||||
|
||||
The wifi connection state machine has the following states:
|
||||
- Reset
|
||||
- Ihv_Configuring
|
||||
- Configuring
|
||||
- Associating
|
||||
- Authenticating
|
||||
- Roaming
|
||||
- Wait_For_Disconnected
|
||||
- Disconnected
|
||||
|
||||
Standard wifi connections tend to transition between states such as:
|
||||
|
||||
- Connecting
|
||||
|
||||
Reset --> Ihv_Configuring --> Configuring --> Associating --> Authenticating --> Connected
|
||||
|
||||
- Disconnecting
|
||||
|
||||
Connected --> Roaming --> Wait_For_Disconnected --> Disconnected --> Reset
|
||||
|
||||
Filtering the ETW trace with the [TextAnalysisTool](https://github.com/TextAnalysisTool/Releases) (TAT) is an easy first step to determine where a failed connection setup is breaking down. A useful [wifi filter file](#wifi-filter-file) is included at the bottom of this article.
|
||||
|
||||
Use the **FSM transition** trace filter to see the connection state machine. You can see [an example](#textanalysistool-example) of this filter applied in the TAT at the bottom of this page.
|
||||
|
||||
An example of a good connection setup is:
|
||||
|
||||
```console
|
||||
44676 [2]0F24.1020::2018-09-17 10:22:14.658 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Disconnected to State: Reset
|
||||
45473 [1]0F24.1020::2018-09-17 10:22:14.667 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Reset to State: Ihv_Configuring
|
||||
45597 [3]0F24.1020::2018-09-17 10:22:14.708 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Ihv_Configuring to State: Configuring
|
||||
46085 [2]0F24.17E0::2018-09-17 10:22:14.710 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Configuring to State: Associating
|
||||
47393 [1]0F24.1020::2018-09-17 10:22:14.879 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Associating to State: Authenticating
|
||||
49465 [2]0F24.17E0::2018-09-17 10:22:14.990 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Authenticating to State: Connected
|
||||
```
|
||||
|
||||
An example of a failed connection setup is:
|
||||
|
||||
```console
|
||||
44676 [2]0F24.1020::2018-09-17 10:22:14.658 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Disconnected to State: Reset
|
||||
45473 [1]0F24.1020::2018-09-17 10:22:14.667 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Reset to State: Ihv_Configuring
|
||||
45597 [3]0F24.1020::2018-09-17 10:22:14.708 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Ihv_Configuring to State: Configuring
|
||||
46085 [2]0F24.17E0::2018-09-17 10:22:14.710 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Configuring to State: Associating
|
||||
47393 [1]0F24.1020::2018-09-17 10:22:14.879 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Associating to State: Authenticating
|
||||
49465 [2]0F24.17E0::2018-09-17 10:22:14.990 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State: Authenticating to State: Roaming
|
||||
```
|
||||
|
||||
By identifying the state at which the connection fails, one can focus more specifically in the trace on logs prior to the last known good state.
|
||||
|
||||
Examining **[Microsoft-Windows-WLAN-AutoConfig]** logs prior to the bad state change should show evidence of error. Often, however, the error is propagated up through other wireless components.
|
||||
In many cases the next component of interest will be the MSM, which lies just below Wlansvc.
|
||||
|
||||
The important components of the MSM include:
|
||||
- Security Manager (SecMgr) - handles all pre and post-connection security operations.
|
||||
- Authentication Engine (AuthMgr) – Manages 802.1x auth requests
|
||||
|
||||

|
||||
|
||||
Each of these components has its own individual state machines that follow specific transitions.
|
||||
Enable the **FSM transition, SecMgr Transition,** and **AuthMgr Transition** filters in TextAnalysisTool for more detail.
|
||||
|
||||
Further to the preceding example, the combined filters look like the following command example:
|
||||
|
||||
```console
|
||||
[2] 0C34.2FF0::08/28/17-13:24:28.693 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Reset to State: Ihv_Configuring
|
||||
[2] 0C34.2FF0::08/28/17-13:24:28.693 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Ihv_Configuring to State: Configuring
|
||||
[1] 0C34.2FE8::08/28/17-13:24:28.711 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Configuring to State: Associating
|
||||
[0] 0C34.275C::08/28/17-13:24:28.902 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition INACTIVE (1) --> ACTIVE (2)
|
||||
[0] 0C34.275C::08/28/17-13:24:28.902 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition ACTIVE (2) --> START AUTH (3)
|
||||
[4] 0EF8.0708::08/28/17-13:24:28.928 [Microsoft-Windows-WLAN-AutoConfig]Port (14) Peer 0x186472F64FD2 AuthMgr Transition ENABLED --> START_AUTH
|
||||
[3] 0C34.2FE8::08/28/17-13:24:28.902 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Associating to State: Authenticating
|
||||
[1] 0C34.275C::08/28/17-13:24:28.960 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition START AUTH (3) --> WAIT FOR AUTH SUCCESS (4)
|
||||
[4] 0EF8.0708::08/28/17-13:24:28.962 [Microsoft-Windows-WLAN-AutoConfig]Port (14) Peer 0x186472F64FD2 AuthMgr Transition START_AUTH --> AUTHENTICATING
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.751 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition WAIT FOR AUTH SUCCESS (7) --> DEACTIVATE (11)
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.7512788 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition DEACTIVATE (11) --> INACTIVE (1)
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.7513404 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Authenticating to State: Roaming
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> In the next to last line the SecMgr transition is suddenly deactivating:<br>
|
||||
>\[2\] 0C34.2FF0::08/28/17-13:24:29.7512788 \[Microsoft-Windows-WLAN-AutoConfig\]Port\[13\] Peer 8A:15:14:B6:25:10 SecMgr Transition DEACTIVATE (11) --> INACTIVE (1)<br><br>
|
||||
>This transition is what eventually propagates to the main connection state machine and causes the Authenticating phase to devolve to Roaming state. As before, it makes sense to focus on tracing prior to this SecMgr behavior to determine the reason for the deactivation.
|
||||
|
||||
Enabling the **Microsoft-Windows-WLAN-AutoConfig** filter will show more detail leading to the DEACTIVATE transition:
|
||||
|
||||
```console
|
||||
[3] 0C34.2FE8::08/28/17-13:24:28.902 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Associating to State: Authenticating
|
||||
[1] 0C34.275C::08/28/17-13:24:28.960 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition START AUTH (3) --> WAIT FOR AUTH SUCCESS (4)
|
||||
[4] 0EF8.0708::08/28/17-13:24:28.962 [Microsoft-Windows-WLAN-AutoConfig]Port (14) Peer 0x186472F64FD2 AuthMgr Transition START_AUTH --> AUTHENTICATING
|
||||
[0]0EF8.2EF4::08/28/17-13:24:29.549 [Microsoft-Windows-WLAN-AutoConfig]Received Security Packet: PHY_STATE_CHANGE
|
||||
[0]0EF8.2EF4::08/28/17-13:24:29.549 [Microsoft-Windows-WLAN-AutoConfig]Change radio state for interface = Intel(R) Centrino(R) Ultimate-N 6300 AGN : PHY = 3, software state = on , hardware state = off )
|
||||
[0] 0EF8.1174::08/28/17-13:24:29.705 [Microsoft-Windows-WLAN-AutoConfig]Received Security Packet: PORT_DOWN
|
||||
[0] 0EF8.1174::08/28/17-13:24:29.705 [Microsoft-Windows-WLAN-AutoConfig]FSM Current state Authenticating , event Upcall_Port_Down
|
||||
[0] 0EF8.1174:: 08/28/17-13:24:29.705 [Microsoft-Windows-WLAN-AutoConfig]Received IHV PORT DOWN, peer 0x186472F64FD2
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.751 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition WAIT FOR AUTH SUCCESS (7) --> DEACTIVATE (11)
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.7512788 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition DEACTIVATE (11) --> INACTIVE (1)
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.7513404 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Authenticating to State: Roaming
|
||||
```
|
||||
|
||||
The trail backwards reveals a **Port Down** notification:
|
||||
|
||||
\[0\] 0EF8.1174:: 08/28/17-13:24:29.705 \[Microsoft-Windows-WLAN-AutoConfig\]Received IHV PORT DOWN, peer 0x186472F64FD2
|
||||
|
||||
Port events indicate changes closer to the wireless hardware. The trail can be followed by continuing to see the origin of this indication.
|
||||
|
||||
Below, the MSM is the native wifi stack. These drivers are Windows native wifi drivers that talk to the wifi miniport drivers. It's responsible for converting Wi-Fi (802.11) packets to 802.3 (Ethernet) so that TCPIP and other protocols and can use it.
|
||||
|
||||
Enable trace filter for **[Microsoft-Windows-NWifi]:**
|
||||
|
||||
```console
|
||||
[3] 0C34.2FE8::08/28/17-13:24:28.902 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Associating to State: Authenticating
|
||||
[1] 0C34.275C::08/28/17-13:24:28.960 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition START AUTH (3) --> WAIT FOR AUTH SUCCESS (4)
|
||||
[4] 0EF8.0708::08/28/17-13:24:28.962 [Microsoft-Windows-WLAN-AutoConfig]Port (14) Peer 0x8A1514B62510 AuthMgr Transition START_AUTH --> AUTHENTICATING
|
||||
[0]0000.0000::08/28/17-13:24:29.127 [Microsoft-Windows-NWiFi]DisAssoc: 0x8A1514B62510 Reason: 0x4
|
||||
[0]0EF8.2EF4::08/28/17-13:24:29.549 [Microsoft-Windows-WLAN-AutoConfig]Received Security Packet: PHY_STATE_CHANGE
|
||||
[0]0EF8.2EF4::08/28/17-13:24:29.549 [Microsoft-Windows-WLAN-AutoConfig]Change radio state for interface = Intel(R) Centrino(R) Ultimate-N 6300 AGN : PHY = 3, software state = on , hardware state = off )
|
||||
[0] 0EF8.1174::08/28/17-13:24:29.705 [Microsoft-Windows-WLAN-AutoConfig]Received Security Packet: PORT_DOWN
|
||||
[0] 0EF8.1174::08/28/17-13:24:29.705 [Microsoft-Windows-WLAN-AutoConfig]FSM Current state Authenticating , event Upcall_Port_Down
|
||||
[0] 0EF8.1174:: 08/28/17-13:24:29.705 [Microsoft-Windows-WLAN-AutoConfig]Received IHV PORT DOWN, peer 0x186472F64FD2
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.751 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition WAIT FOR AUTH SUCCESS (7) --> DEACTIVATE (11)
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.7512788 [Microsoft-Windows-WLAN-AutoConfig]Port[13] Peer 8A:15:14:B6:25:10 SecMgr Transition DEACTIVATE (11) --> INACTIVE (1)
|
||||
[2] 0C34.2FF0::08/28/17-13:24:29.7513404 [Microsoft-Windows-WLAN-AutoConfig]FSM Transition from State:
|
||||
Authenticating to State: Roaming
|
||||
```
|
||||
|
||||
In the trace above, we see the line:
|
||||
|
||||
```console
|
||||
[0]0000.0000::08/28/17-13:24:29.127 [Microsoft-Windows-NWiFi]DisAssoc: 0x8A1514B62510 Reason: 0x4
|
||||
```
|
||||
|
||||
This line is followed by **PHY_STATE_CHANGE** and **PORT_DOWN** events due to a disassociate coming from the Access Point (AP), as an indication to deny the connection. This denail could be due to invalid credentials, connection parameters, loss of signal/roaming, and various other reasons for aborting a connection. The action here would be to examine the reason for the disassociate sent from the indicated AP MAC (8A:15:14:B6:25:10). This action would be done by examining internal logging/tracing from the AP.
|
||||
|
||||
### Resources
|
||||
|
||||
[802.11 Wireless Tools and Settings](/previous-versions/windows/it-pro/windows-server-2003/cc755892(v%3dws.10))<br>
|
||||
[Understanding 802.1X authentication for wireless networks](/previous-versions/windows/it-pro/windows-server-2003/cc759077%28v%3dws.10%29)<br>
|
||||
|
||||
## Example ETW capture
|
||||
|
||||
```console
|
||||
C:\tmp>netsh trace start wireless_dbg capture=yes overwrite=yes maxsize=4096 tracefile=c:\tmp\wireless.etl
|
||||
|
||||
Trace configuration:
|
||||
-------------------------------------------------------------------
|
||||
Status: Running
|
||||
Trace File: C:\tmp\wireless.etl
|
||||
Append: Off
|
||||
Circular: On
|
||||
Max Size: 4096 MB
|
||||
Report: Off
|
||||
|
||||
C:\tmp>netsh trace stop
|
||||
Correlating traces ... done
|
||||
Merging traces ... done
|
||||
Generating data collection ... done
|
||||
The trace file and additional troubleshooting information have been compiled as "c:\tmp\wireless.cab".
|
||||
File location = c:\tmp\wireless.etl
|
||||
Tracing session was successfully stopped.
|
||||
|
||||
C:\tmp>netsh trace convert c:\tmp\wireless.etl
|
||||
|
||||
Input file: c:\tmp\wireless.etl
|
||||
Dump file: c:\tmp\wireless.txt
|
||||
Dump format: TXT
|
||||
Report file: -
|
||||
Generating dump ... done
|
||||
|
||||
C:\tmp>dir
|
||||
Volume in drive C has no label.
|
||||
Volume Serial Number is 58A8-7DE5
|
||||
|
||||
Directory of C:\tmp
|
||||
|
||||
01/09/2019 02:59 PM [DIR] .
|
||||
01/09/2019 02:59 PM [DIR] ..
|
||||
01/09/2019 02:59 PM 4,855,952 wireless.cab
|
||||
01/09/2019 02:56 PM 2,752,512 wireless.etl
|
||||
01/09/2019 02:59 PM 2,786,540 wireless.txt
|
||||
3 File(s) 10,395,004 bytes
|
||||
2 Dir(s) 46,648,332,288 bytes free
|
||||
```
|
||||
|
||||
## Wifi filter file
|
||||
|
||||
Copy and paste all the lines below and save them into a text file named "wifi.tat." Load the filter file into the TextAnalysisTool by clicking **File > Load Filters**.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<TextAnalysisTool.NET version="2018-01-03" showOnlyFilteredLines="False">
|
||||
<filters>
|
||||
<filter enabled="n" excluding="n" description="" foreColor="000000" backColor="d3d3d3" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-OneX]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Unknown]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-EapHost]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[]***" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-Winsock-AFD]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-WinHttp]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-WebIO]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-Winsock-NameResolution]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-TCPIP]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-DNS-Client]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-NlaSvc]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-Iphlpsvc-Trace]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-DHCPv6-Client]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-Dhcp-Client]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-NCSI]" />
|
||||
<filter enabled="y" excluding="n" description="" backColor="90ee90" type="matches_text" case_sensitive="n" regex="n" text="AuthMgr Transition" />
|
||||
<filter enabled="y" excluding="n" description="" foreColor="0000ff" backColor="add8e6" type="matches_text" case_sensitive="n" regex="n" text="FSM transition" />
|
||||
<filter enabled="y" excluding="n" description="" foreColor="000000" backColor="dda0dd" type="matches_text" case_sensitive="n" regex="n" text="SecMgr transition" />
|
||||
<filter enabled="y" excluding="n" description="" foreColor="000000" backColor="f08080" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-NWiFi]" />
|
||||
<filter enabled="y" excluding="n" description="" foreColor="000000" backColor="ffb6c1" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-WiFiNetworkManager]" />
|
||||
<filter enabled="y" excluding="n" description="" foreColor="000000" backColor="dda0dd" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-WLAN-AutoConfig]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-NetworkProfile]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-WFP]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[Microsoft-Windows-WinINet]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="[MSNT_SystemTrace]" />
|
||||
<filter enabled="y" excluding="y" description="" foreColor="000000" backColor="ffffff" type="matches_text" case_sensitive="n" regex="n" text="Security]Capability" />
|
||||
</filters>
|
||||
</TextAnalysisTool.NET>
|
||||
```
|
||||
|
||||
## TextAnalysisTool example
|
||||
|
||||
In the following example, the **View** settings are configured to **Show Only Filtered Lines**.
|
||||
|
||||

|
@ -1,382 +0,0 @@
|
||||
---
|
||||
title: Data collection for troubleshooting 802.1X authentication
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
description: Use the steps in this article to collect data that can be used to troubleshoot 802.1X authentication issues.
|
||||
ms.prod: w10
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.topic: troubleshooting
|
||||
---
|
||||
|
||||
# Data collection for troubleshooting 802.1X authentication
|
||||
|
||||
Use the following steps to collect data that can be used to troubleshoot 802.1X authentication issues. When you have collected data, see [Advanced troubleshooting 802.1X authentication](advanced-troubleshooting-802-authentication.md).
|
||||
|
||||
## Capture wireless/wired functionality logs
|
||||
|
||||
Use the following steps to collect wireless and wired logs on Windows and Windows Server:
|
||||
|
||||
1. Create C:\MSLOG on the client machine to store captured logs.
|
||||
2. Launch an elevated command prompt on the client machine, and run the following commands to start a RAS trace log and a Wireless/Wired scenario log.
|
||||
|
||||
**Wireless Windows 8.1, Windows 10, and Windows 11:**
|
||||
```
|
||||
netsh ras set tracing * enabled
|
||||
netsh trace start scenario=wlan,wlan_wpp,wlan_dbg,wireless_dbg globallevel=0xff capture=yes maxsize=1024 tracefile=C:\MSLOG\%COMPUTERNAME%_wireless_cli.etl
|
||||
```
|
||||
|
||||
<br>**Wireless Windows 7 and Windows 8:**
|
||||
```
|
||||
netsh ras set tracing * enabled
|
||||
netsh trace start scenario=wlan,wlan_wpp,wlan_dbg globallevel=0xff capture=yes maxsize=1024 tracefile=C:\MSLOG\%COMPUTERNAME%_wireless_cli.etl
|
||||
```
|
||||
|
||||
<br>**Wired client, regardless of version**
|
||||
```
|
||||
netsh ras set tracing * enabled
|
||||
netsh trace start scenario=lan globallevel=0xff capture=yes maxsize=1024 tracefile=C:\MSLOG\%COMPUTERNAME%_wired_cli.etl
|
||||
```
|
||||
|
||||
3. Run the following command to enable CAPI2 logging and increase the size:
|
||||
```
|
||||
wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:true
|
||||
wevtutil sl Microsoft-Windows-CAPI2/Operational /ms:104857600
|
||||
```
|
||||
|
||||
4. Create C:\MSLOG on the NPS to store captured logs.
|
||||
|
||||
5. Launch an elevated command prompt on the NPS server and run the following commands to start a RAS trace log and a Wireless/Wired scenario log:
|
||||
|
||||
**Windows Server 2012 R2, Windows Server 2016 wireless network:**
|
||||
```
|
||||
netsh ras set tracing * enabled
|
||||
netsh trace start scenario=wlan,wlan_wpp,wlan_dbg,wireless_dbg globallevel=0xff capture=yes maxsize=1024 tracefile=C:\MSLOG\%COMPUTERNAME%_wireless_nps.etl
|
||||
```
|
||||
|
||||
<br>**Windows Server 2008 R2, Windows Server 2012 wireless network**
|
||||
```
|
||||
netsh ras set tracing * enabled
|
||||
netsh trace start scenario=wlan,wlan_wpp,wlan_dbg globallevel=0xff capture=yes maxsize=1024 tracefile=C:\MSLOG\%COMPUTERNAME%_wireless_nps.etl
|
||||
```
|
||||
|
||||
<br>**Wired network**
|
||||
```
|
||||
netsh ras set tracing * enabled
|
||||
netsh trace start scenario=lan globallevel=0xff capture=yes maxsize=1024 tracefile=C:\MSLOG\%COMPUTERNAME%_wired_nps.etl
|
||||
```
|
||||
|
||||
6. Run the following command to enable CAPI2 logging and increase the size:
|
||||
```
|
||||
wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:true
|
||||
wevtutil sl Microsoft-Windows-CAPI2/Operational /ms:104857600
|
||||
```
|
||||
7. Run the following command from the command prompt on the client machine and start PSR to capture screen images:
|
||||
|
||||
> [!NOTE]
|
||||
> When the mouse button is clicked, the cursor will blink in red while capturing a screen image.
|
||||
|
||||
```
|
||||
psr /start /output c:\MSLOG\%computername%_psr.zip /maxsc 100
|
||||
```
|
||||
8. Repro the issue.
|
||||
9. Run the following command on the client PC to stop the PSR capturing:
|
||||
|
||||
```
|
||||
psr /stop
|
||||
```
|
||||
|
||||
10. Run the following commands from the command prompt on the NPS server.
|
||||
|
||||
- To stop RAS trace log and wireless scenario log:
|
||||
|
||||
```
|
||||
netsh trace stop
|
||||
netsh ras set tracing * disabled
|
||||
```
|
||||
- To disable and copy CAPI2 log:
|
||||
|
||||
```
|
||||
wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:false
|
||||
wevtutil.exe epl Microsoft-Windows-CAPI2/Operational C:\MSLOG\%COMPUTERNAME%_CAPI2.evtx
|
||||
```
|
||||
|
||||
11. Run the following commands on the client PC.
|
||||
- To stop RAS trace log and wireless scenario log:
|
||||
```
|
||||
netsh trace stop
|
||||
netsh ras set tracing * disabled
|
||||
```
|
||||
|
||||
- To disable and copy the CAPI2 log:
|
||||
```
|
||||
wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:false
|
||||
wevtutil.exe epl Microsoft-Windows-CAPI2/Operational C:\MSLOG\%COMPUTERNAME%_CAPI2.evtx
|
||||
```
|
||||
|
||||
12. Save the following logs on the client and the NPS:
|
||||
|
||||
**Client**
|
||||
- C:\MSLOG\%computername%_psr.zip
|
||||
- C:\MSLOG\%COMPUTERNAME%_CAPI2.evtx
|
||||
- C:\MSLOG\%COMPUTERNAME%_wireless_cli.etl
|
||||
- C:\MSLOG\%COMPUTERNAME%_wireless_cli.cab
|
||||
- All log files and folders in %Systemroot%\Tracing
|
||||
|
||||
**NPS**
|
||||
- C:\MSLOG\%COMPUTERNAME%_CAPI2.evtx
|
||||
- C:\MSLOG\%COMPUTERNAME%_wireless_nps.etl (%COMPUTERNAME%_wired_nps.etl for wired scenario)
|
||||
- C:\MSLOG\%COMPUTERNAME%_wireless_nps.cab (%COMPUTERNAME%_wired_nps.cab for wired scenario)
|
||||
- All log files and folders in %Systemroot%\Tracing
|
||||
|
||||
## Save environment and configuration information
|
||||
|
||||
### On Windows client
|
||||
|
||||
1. Create C:\MSLOG to store captured logs.
|
||||
2. Launch a command prompt as an administrator.
|
||||
3. Run the following commands.
|
||||
- Environment information and Group Policy application status
|
||||
|
||||
```
|
||||
gpresult /H C:\MSLOG\%COMPUTERNAME%_gpresult.htm
|
||||
msinfo32 /report c:\MSLOG\%COMPUTERNAME%_msinfo32.txt
|
||||
ipconfig /all > c:\MSLOG\%COMPUTERNAME%_ipconfig.txt
|
||||
route print > c:\MSLOG\%COMPUTERNAME%_route_print.txt
|
||||
```
|
||||
- Event logs
|
||||
|
||||
```
|
||||
wevtutil epl Application c:\MSLOG\%COMPUTERNAME%_Application.evtx
|
||||
wevtutil epl System c:\MSLOG\%COMPUTERNAME%_System.evtx
|
||||
wevtutil epl Security c:\MSLOG\%COMPUTERNAME%_Security.evtx
|
||||
wevtutil epl Microsoft-Windows-GroupPolicy/Operational C:\MSLOG\%COMPUTERNAME%_GroupPolicy_Operational.evtx
|
||||
wevtutil epl "Microsoft-Windows-WLAN-AutoConfig/Operational" c:\MSLOG\%COMPUTERNAME%_Microsoft-Windows-WLAN-AutoConfig-Operational.evtx
|
||||
wevtutil epl "Microsoft-Windows-Wired-AutoConfig/Operational" c:\MSLOG\%COMPUTERNAME%_Microsoft-Windows-Wired-AutoConfig-Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-CredentialRoaming_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertPoleEng/Operational c:\MSLOG\%COMPUTERNAME%_CertPoleEng_Operational.evtx
|
||||
```
|
||||
- For Windows 8 and later, also run these commands for event logs:
|
||||
|
||||
```
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-Lifecycle-System_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-Lifecycle-User/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-Lifecycle-User_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServices-Deployment/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServices-Deployment_Operational.evtx
|
||||
```
|
||||
- Certificates Store information:
|
||||
|
||||
```
|
||||
certutil -v -silent -store MY > c:\MSLOG\%COMPUTERNAME%_cert-Personal-Registry.txt
|
||||
certutil -v -silent -store ROOT > c:\MSLOG\%COMPUTERNAME%_cert-TrustedRootCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy ROOT > c:\MSLOG\%COMPUTERNAME%_cert-TrustedRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise ROOT > c:\MSLOG\%COMPUTERNAME%_TrustedRootCA-Enterprise.txt
|
||||
certutil -v -silent -store TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-Reg.txt
|
||||
certutil -v -silent -store -grouppolicy TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-Enterprise.txt
|
||||
certutil -v -silent -store CA > c:\MSLOG\%COMPUTERNAME%_cert-IntermediateCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy CA > c:\MSLOG\%COMPUTERNAME%_cert-IntermediateCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise CA > c:\MSLOG\%COMPUTERNAME%_cert-Intermediate-Enterprise.txt
|
||||
certutil -v -silent -store AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-Enterprise.txt
|
||||
certutil -v -silent -store SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-Enterprise.txt
|
||||
certutil -v -silent -store -enterprise NTAUTH > c:\MSLOG\%COMPUTERNAME%_cert-NtAuth-Enterprise.txt
|
||||
certutil -v -silent -user -store MY > c:\MSLOG\%COMPUTERNAME%_cert-User-Personal-Registry.txt
|
||||
certutil -v -silent -user -store ROOT > c:\MSLOG\%COMPUTERNAME%_cert-User-TrustedRootCA-Registry.txt
|
||||
certutil -v -silent -user -store -enterprise ROOT > c:\MSLOG\%COMPUTERNAME%_cert-User-TrustedRootCA-Enterprise.txt
|
||||
certutil -v -silent -user -store TRUST > c:\MSLOG\%COMPUTERNAME%_cert-User-EnterpriseTrust-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy TRUST > c:\MSLOG\%COMPUTERNAME%_cert-User-EnterpriseTrust-GroupPolicy.txt
|
||||
certutil -v -silent -user -store CA > c:\MSLOG\%COMPUTERNAME%_cert-User-IntermediateCA-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy CA > c:\MSLOG\%COMPUTERNAME%_cert-User-IntermediateCA-GroupPolicy.txt
|
||||
certutil -v -silent -user -store Disallowed > c:\MSLOG\%COMPUTERNAME%_cert-User-UntrustedCertificates-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy Disallowed > c:\MSLOG\%COMPUTERNAME%_cert-User-UntrustedCertificates-GroupPolicy.txt
|
||||
certutil -v -silent -user -store AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-3rdPartyRootCA-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-3rdPartyRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -user -store SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-SmartCardRoot-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-SmartCardRoot-GroupPolicy.txt
|
||||
certutil -v -silent -user -store UserDS > c:\MSLOG\%COMPUTERNAME%_cert-User-UserDS.txt
|
||||
```
|
||||
- Wireless LAN client information:
|
||||
|
||||
```
|
||||
netsh wlan show all > c:\MSLOG\%COMPUTERNAME%_wlan_show_all.txt
|
||||
netsh wlan export profile folder=c:\MSLOG\
|
||||
```
|
||||
- Wired LAN Client information
|
||||
|
||||
```
|
||||
netsh lan show interfaces > c:\MSLOG\%computername%_lan_interfaces.txt
|
||||
netsh lan show profiles > c:\MSLOG\%computername%_lan_profiles.txt
|
||||
netsh lan show settings > c:\MSLOG\%computername%_lan_settings.txt
|
||||
netsh lan export profile folder=c:\MSLOG\
|
||||
```
|
||||
4. Save the logs stored in C:\MSLOG.
|
||||
|
||||
### On NPS
|
||||
|
||||
1. Create C:\MSLOG to store captured logs.
|
||||
2. Launch a command prompt as an administrator.
|
||||
3. Run the following commands.
|
||||
- Environmental information and Group Policies application status:
|
||||
|
||||
```
|
||||
gpresult /H C:\MSLOG\%COMPUTERNAME%_gpresult.txt
|
||||
msinfo32 /report c:\MSLOG\%COMPUTERNAME%_msinfo32.txt
|
||||
ipconfig /all > c:\MSLOG\%COMPUTERNAME%_ipconfig.txt
|
||||
route print > c:\MSLOG\%COMPUTERNAME%_route_print.txt
|
||||
```
|
||||
- Event logs:
|
||||
|
||||
```
|
||||
wevtutil epl Application c:\MSLOG\%COMPUTERNAME%_Application.evtx
|
||||
wevtutil epl System c:\MSLOG\%COMPUTERNAME%_System.evtx
|
||||
wevtutil epl Security c:\MSLOG\%COMPUTERNAME%_Security.evtx
|
||||
wevtutil epl Microsoft-Windows-GroupPolicy/Operational c:\MSLOG\%COMPUTERNAME%_GroupPolicy_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-CredentialRoaming_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertPoleEng/Operational c:\MSLOG\%COMPUTERNAME%_CertPoleEng_Operational.evtx
|
||||
```
|
||||
- Run the following commands on Windows Server 2012 and later:
|
||||
|
||||
```
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-Lifecycle-System_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-Lifecycle-User/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-Lifecycle-User_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServices-Deployment/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServices-Deployment_Operational.evtx
|
||||
```
|
||||
- Certificates store information
|
||||
|
||||
```
|
||||
certutil -v -silent -store MY > c:\MSLOG\%COMPUTERNAME%_cert-Personal-Registry.txt
|
||||
certutil -v -silent -store ROOT > c:\MSLOG\%COMPUTERNAME%_cert-TrustedRootCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy ROOT > c:\MSLOG\%COMPUTERNAME%_cert-TrustedRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise ROOT > c:\MSLOG\%COMPUTERNAME%_TrustedRootCA-Enterprise.txt
|
||||
certutil -v -silent -store TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-Reg.txt
|
||||
certutil -v -silent -store -grouppolicy TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-Enterprise.txt
|
||||
certutil -v -silent -store CA > c:\MSLOG\%COMPUTERNAME%_cert-IntermediateCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy CA > c:\MSLOG\%COMPUTERNAME%_cert-IntermediateCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise CA > c:\MSLOG\%COMPUTERNAME%_cert-Intermediate-Enterprise.txt
|
||||
certutil -v -silent -store AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-Enterprise.txt
|
||||
certutil -v -silent -store SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-Enterprise.txt
|
||||
certutil -v -silent -store -enterprise NTAUTH > c:\MSLOG\%COMPUTERNAME%_cert-NtAuth-Enterprise.txt
|
||||
certutil -v -silent -user -store MY > c:\MSLOG\%COMPUTERNAME%_cert-User-Personal-Registry.txt
|
||||
certutil -v -silent -user -store ROOT > c:\MSLOG\%COMPUTERNAME%_cert-User-TrustedRootCA-Registry.txt
|
||||
certutil -v -silent -user -store -enterprise ROOT > c:\MSLOG\%COMPUTERNAME%_cert-User-TrustedRootCA-Enterprise.txt
|
||||
certutil -v -silent -user -store TRUST > c:\MSLOG\%COMPUTERNAME%_cert-User-EnterpriseTrust-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy TRUST > c:\MSLOG\%COMPUTERNAME%_cert-User-EnterpriseTrust-GroupPolicy.txt
|
||||
certutil -v -silent -user -store CA > c:\MSLOG\%COMPUTERNAME%_cert-User-IntermediateCA-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy CA > c:\MSLOG\%COMPUTERNAME%_cert-User-IntermediateCA-GroupPolicy.txt
|
||||
certutil -v -silent -user -store Disallowed > c:\MSLOG\%COMPUTERNAME%_cert-User-UntrustedCertificates-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy Disallowed > c:\MSLOG\%COMPUTERNAME%_cert-User-UntrustedCertificates-GroupPolicy.txt
|
||||
certutil -v -silent -user -store AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-3rdPartyRootCA-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-3rdPartyRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -user -store SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-SmartCardRoot-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-SmartCardRoot-GroupPolicy.txt
|
||||
certutil -v -silent -user -store UserDS > c:\MSLOG\%COMPUTERNAME%_cert-User-UserDS.txt
|
||||
```
|
||||
- NPS configuration information:
|
||||
|
||||
```
|
||||
netsh nps show config > C:\MSLOG\%COMPUTERNAME%_nps_show_config.txt
|
||||
netsh nps export filename=C:\MSLOG\%COMPUTERNAME%_nps_export.xml exportPSK=YES
|
||||
```
|
||||
3. Take the following steps to save an NPS accounting log.
|
||||
1. Open **Administrative tools > Network Policy Server**.
|
||||
2. On the Network Policy Server administration tool, select **Accounting** in the left pane.
|
||||
3. Click **Change Log File Properties**.
|
||||
4. On the **Log File** tab, note the log file naming convention shown as **Name** and the log file location shown in **Directory** box.
|
||||
5. Copy the log file to C:\MSLOG.
|
||||
|
||||
4. Save the logs stored in C:\MSLOG.
|
||||
|
||||
## Certification Authority (CA) (OPTIONAL)
|
||||
|
||||
1. On a CA, launch a command prompt as an administrator. Create C:\MSLOG to store captured logs.
|
||||
2. Run the following commands.
|
||||
- Environmental information and Group Policies application status
|
||||
|
||||
```
|
||||
gpresult /H C:\MSLOG\%COMPUTERNAME%_gpresult.txt
|
||||
msinfo32 /report c:\MSLOG\%COMPUTERNAME%_msinfo32.txt
|
||||
ipconfig /all > c:\MSLOG\%COMPUTERNAME%_ipconfig.txt
|
||||
route print > c:\MSLOG\%COMPUTERNAME%_route_print.txt
|
||||
```
|
||||
- Event logs
|
||||
|
||||
```
|
||||
wevtutil epl Application c:\MSLOG\%COMPUTERNAME%_Application.evtx
|
||||
wevtutil epl System c:\MSLOG\%COMPUTERNAME%_System.evtx
|
||||
wevtutil epl Security c:\MSLOG\%COMPUTERNAME%_Security.evtx
|
||||
wevtutil epl Microsoft-Windows-GroupPolicy/Operational c:\MSLOG\%COMPUTERNAME%_GroupPolicy_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-CredentialRoaming_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertPoleEng/Operational c:\MSLOG\%COMPUTERNAME%_CertPoleEng_Operational.evtx
|
||||
```
|
||||
- Run the following lines on Windows 2012 and up
|
||||
|
||||
```
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-Lifecycle-System_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServicesClient-Lifecycle-User/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServicesClient-Lifecycle-User_Operational.evtx
|
||||
wevtutil epl Microsoft-Windows-CertificateServices-Deployment/Operational c:\MSLOG\%COMPUTERNAME%_CertificateServices-Deployment_Operational.evtx
|
||||
```
|
||||
- Certificates store information
|
||||
|
||||
```
|
||||
certutil -v -silent -store MY > c:\MSLOG\%COMPUTERNAME%_cert-Personal-Registry.txt
|
||||
certutil -v -silent -store ROOT > c:\MSLOG\%COMPUTERNAME%_cert-TrustedRootCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy ROOT > c:\MSLOG\%COMPUTERNAME%_cert-TrustedRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise ROOT > c:\MSLOG\%COMPUTERNAME%_TrustedRootCA-Enterprise.txt
|
||||
certutil -v -silent -store TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-Reg.txt
|
||||
certutil -v -silent -store -grouppolicy TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise TRUST > c:\MSLOG\%COMPUTERNAME%_cert-EnterpriseTrust-Enterprise.txt
|
||||
certutil -v -silent -store CA > c:\MSLOG\%COMPUTERNAME%_cert-IntermediateCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy CA > c:\MSLOG\%COMPUTERNAME%_cert-IntermediateCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise CA > c:\MSLOG\%COMPUTERNAME%_cert-Intermediate-Enterprise.txt
|
||||
certutil -v -silent -store AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-3rdPartyRootCA-Enterprise.txt
|
||||
certutil -v -silent -store SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-Registry.txt
|
||||
certutil -v -silent -store -grouppolicy SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-GroupPolicy.txt
|
||||
certutil -v -silent -store -enterprise SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-SmartCardRoot-Enterprise.txt
|
||||
certutil -v -silent -store -enterprise NTAUTH > c:\MSLOG\%COMPUTERNAME%_cert-NtAuth-Enterprise.txt
|
||||
certutil -v -silent -user -store MY > c:\MSLOG\%COMPUTERNAME%_cert-User-Personal-Registry.txt
|
||||
certutil -v -silent -user -store ROOT > c:\MSLOG\%COMPUTERNAME%_cert-User-TrustedRootCA-Registry.txt
|
||||
certutil -v -silent -user -store -enterprise ROOT > c:\MSLOG\%COMPUTERNAME%_cert-User-TrustedRootCA-Enterprise.txt
|
||||
certutil -v -silent -user -store TRUST > c:\MSLOG\%COMPUTERNAME%_cert-User-EnterpriseTrust-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy TRUST > c:\MSLOG\%COMPUTERNAME%_cert-User-EnterpriseTrust-GroupPolicy.txt
|
||||
certutil -v -silent -user -store CA > c:\MSLOG\%COMPUTERNAME%_cert-User-IntermediateCA-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy CA > c:\MSLOG\%COMPUTERNAME%_cert-User-IntermediateCA-GroupPolicy.txt
|
||||
certutil -v -silent -user -store Disallowed > c:\MSLOG\%COMPUTERNAME%_cert-User-UntrustedCertificates-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy Disallowed > c:\MSLOG\%COMPUTERNAME%_cert-User-UntrustedCertificates-GroupPolicy.txt
|
||||
certutil -v -silent -user -store AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-3rdPartyRootCA-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy AuthRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-3rdPartyRootCA-GroupPolicy.txt
|
||||
certutil -v -silent -user -store SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-SmartCardRoot-Registry.txt
|
||||
certutil -v -silent -user -store -grouppolicy SmartCardRoot > c:\MSLOG\%COMPUTERNAME%_cert-User-SmartCardRoot-GroupPolicy.txt
|
||||
certutil -v -silent -user -store UserDS > c:\MSLOG\%COMPUTERNAME%_cert-User-UserDS.txt
|
||||
```
|
||||
- CA configuration information
|
||||
|
||||
```
|
||||
reg save HKLM\System\CurrentControlSet\Services\CertSvc c:\MSLOG\%COMPUTERNAME%_CertSvc.hiv
|
||||
reg export HKLM\System\CurrentControlSet\Services\CertSvc c:\MSLOG\%COMPUTERNAME%_CertSvc.txt
|
||||
reg save HKLM\SOFTWARE\Microsoft\Cryptography c:\MSLOG\%COMPUTERNAME%_Cryptography.hiv
|
||||
reg export HKLM\SOFTWARE\Microsoft\Cryptography c:\MSLOG\%COMPUTERNAME%_Cryptography.txt
|
||||
```
|
||||
3. Copy the following files, if exist, to C:\MSLOG: %windir%\CAPolicy.inf
|
||||
4. Sign in to a domain controller and create C:\MSLOG to store captured logs.
|
||||
5. Launch Windows PowerShell as an administrator.
|
||||
6. Run the following PowerShell cmdlets. Replace the domain name in ";.. ,DC=test,DC=local"; with appropriate domain name. The example shows commands for "; test.local"; domain.
|
||||
|
||||
```powershell
|
||||
Import-Module ActiveDirectory
|
||||
Get-ADObject -SearchBase ";CN=Public Key Services,CN=Services,CN=Configuration,DC=test,DC=local"; -Filter * -Properties * | fl * > C:\MSLOG\Get-ADObject_$Env:COMPUTERNAME.txt
|
||||
```
|
||||
7. Save the following logs.
|
||||
- All files in C:\MSLOG on the CA
|
||||
- All files in C:\MSLOG on the domain controller
|
||||
|
@ -1,129 +0,0 @@
|
||||
---
|
||||
title: How to determine the appropriate page file size for 64-bit versions of Windows
|
||||
description: Learn how to determine the appropriate page file size for 64-bit versions of Windows.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: Deland-Han
|
||||
ms.localizationpriority: medium
|
||||
ms.author: delhan
|
||||
ms.date: 8/28/2019
|
||||
ms.reviewer: dcscontentpm
|
||||
manager: dansimp
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# How to determine the appropriate page file size for 64-bit versions of Windows
|
||||
|
||||
Page file sizing depends on the system crash dump setting requirements and the peak usage or expected peak usage of the system commit charge. Both considerations are unique to each system, even for systems that are identical. This uniqueness means that page file sizing is also unique to each system and can't be generalized.
|
||||
|
||||
## Determine the appropriate page file size
|
||||
|
||||
Use the following considerations for page file sizing for all versions of Windows and Windows Server.
|
||||
|
||||
### Crash dump setting
|
||||
|
||||
If you want a crash dump file to be created during a system crash, a page file or a dedicated dump file must exist and be large enough to back up the system crash dump setting. Otherwise, a system memory dump file isn't created.
|
||||
|
||||
For more information, see [Support for system crash dumps](introduction-page-file.md#support-for-system-crash-dumps) section.
|
||||
|
||||
### Peak system commit charge
|
||||
|
||||
The system commit charge can't exceed the system commit limit. This limit is the sum of physical memory (RAM) and all page files combined. If no page files exist, the system commit limit is slightly less than the physical memory that is installed. Peak system-committed memory usage can vary greatly between systems. Therefore, physical memory and page file sizing also vary.
|
||||
|
||||
### Quantity of infrequently accessed pages
|
||||
|
||||
The purpose of a page file is to *back* (support) infrequently accessed modified pages so that they can be removed from physical memory. This removal provides more available space for more frequently accessed pages. The "\Memory\Modified Page List Bytes" performance counter measures, in part, the number of infrequently accessed modified pages that are destined for the hard disk. However, not all the memory on the modified page list is written out to disk. Typically, several hundred megabytes of memory remains resident on the modified list. Therefore, consider extending or adding a page file if all the following conditions are true:
|
||||
|
||||
- More available physical memory (\Memory\Available MBytes) is required.
|
||||
|
||||
- The modified page list contains a significant amount of memory.
|
||||
|
||||
- The existing page files are fairly full (\Paging Files(*)\% Usage).
|
||||
|
||||
## Support for system crash dumps
|
||||
|
||||
A system crash (also known as a “bug check” or a "Stop error") occurs when the system can't run correctly. The dump file that is produced from this event is called a system crash dump. A page file or dedicated dump file is used to write a crash dump file (Memory.dmp) to disk. Therefore, a page file or a dedicated dump file must be large enough to support the kind of crash dump selected. Otherwise, the system can't create the crash dump file.
|
||||
|
||||
>[!Note]
|
||||
>During startup, system-managed page files are sized respective to the system crash dump settings. This assumes that enough free disk space exists.
|
||||
|
||||
|System crash dump setting |Minimum page file size requirement|
|
||||
|-----------|-------------------|
|
||||
|Small memory dump (256 KB) |1 MB|
|
||||
|Kernel memory dump |Depends on kernel virtual memory usage|
|
||||
|Complete memory dump |1 x RAM plus 257 MB*|
|
||||
|Automatic memory dump |Depends on kernel virtual memory usage. For details, see Automatic memory dump.|
|
||||
|
||||
\* 1 MB of header data and device drivers can total 256 MB of secondary crash dump data.
|
||||
|
||||
The **Automatic memory dump** setting is enabled by default. This setting is an alternative to a kind of crash dump. This setting automatically selects the best page file size, depending on the frequency of system crashes.
|
||||
|
||||
The Automatic memory dump feature initially selects a small paging file size. It would accommodate the kernel memory most of the time. If the system crashes again within four weeks, the Automatic memory dump feature sets the page file size as either the RAM size or 32 GB, whichever is smaller.
|
||||
|
||||
Kernel memory crash dumps require enough page file space or dedicated dump file space to accommodate the kernel mode side of virtual memory usage. If the system crashes again within four weeks of the previous crash, a Complete memory dump is selected at restart. This dump requires a page file or dedicated dump file of at least the size of physical memory (RAM) plus 1 MB for header information plus 256 MB for potential driver data to support all the potential data that is dumped from memory. Again, the system-managed page file will be increased to back this kind of crash dump. If the system is configured to have a page file or a dedicated dump file of a specific size, make sure that the size is sufficient to back the crash dump setting that is listed in the table earlier in this section together with and the peak system commit charge.
|
||||
|
||||
### Dedicated dump files
|
||||
|
||||
Computers that are running Microsoft Windows or Microsoft Windows Server usually must have a page file to support a system crash dump. System administrators can now create a dedicated dump file instead.
|
||||
|
||||
A dedicated dump file is a page file that isn't used for paging. Instead, it is “dedicated” to back a system crash dump file (Memory.dmp) when a system crash occurs. Dedicated dump files can be put on any disk volume that can support a page file. We recommend that you use a dedicated dump file if you want a system crash dump but you don't want a page file. To learn how to create it, see [Overview of memory dump file options for Windows](/troubleshoot/windows-server/performance/memory-dump-file-options).
|
||||
|
||||
## System-managed page files
|
||||
|
||||
By default, page files are system-managed. This system management means that the page files increase and decrease based on many factors, such as the amount of physical memory installed, the process of accommodating the system commit charge, and the process of accommodating a system crash dump.
|
||||
|
||||
For example, when the system commit charge is more than 90 percent of the system commit limit, the page file is increased to back it. This surge continues to occur until the page file reaches three times the size of physical memory or 4 GB, whichever is larger. Therefore, it's assumes that the logical disk that is hosting the page file is large enough to accommodate the growth.
|
||||
|
||||
The following table lists the minimum and maximum page file sizes of system-managed page files in Windows 10 and Windows 11.
|
||||
|
||||
|Minimum page file size |Maximum page file size|
|
||||
|---------------|------------------|
|
||||
|Varies based on page file usage history, amount of RAM (RAM ÷ 8, max 32 GB) and crash dump settings. |3 × RAM or 4 GB, whichever is larger. This size is then limited to the volume size ÷ 8. However, it can grow to within 1 GB of free space on the volume if necessary for crash dump settings.|
|
||||
|
||||
## Performance counters
|
||||
|
||||
Several performance counters are related to page files. This section describes the counters and what they measure.
|
||||
|
||||
### \Memory\Page/sec and other hard page fault counters
|
||||
|
||||
The following performance counters measure hard page faults (which include, but aren't limited to, page file reads):
|
||||
|
||||
- \Memory\Page/sec
|
||||
|
||||
- \Memory\Page Reads/sec
|
||||
|
||||
- \Memory\Page Inputs/sec
|
||||
|
||||
The following performance counters measure page file writes:
|
||||
|
||||
- \Memory\Page Writes/sec
|
||||
|
||||
- \Memory\Page Output/sec
|
||||
|
||||
Hard page faults are faults that must be resolved by retrieving the data from disk. Such data can include portions of DLLs, .exe files, memory-mapped files, and page files. These faults might or might not be related to a page file or to a low-memory condition. Hard page faults are a standard function of the operating system. They occur when the following items are read:
|
||||
|
||||
- Parts of image files (.dll and .exe files) as they're used
|
||||
|
||||
- Memory-mapped files
|
||||
|
||||
- A page file
|
||||
|
||||
High values for these counters (excessive paging) indicate disk access of generally 4 KB per page fault on x86 and x64 versions of Windows and Windows Server. This disk access might or might not be related to page file activity but may contribute to poor disk performance that can cause system-wide delays if the related disks are overwhelmed.
|
||||
|
||||
Therefore, we recommend that you monitor the disk performance of the logical disks that host a page file in correlation with these counters. A system that has a sustained 100 hard page faults per second experiences 400 KB per second disk transfers. Most 7,200-RPM disk drives can handle about 5 MB per second at an IO size of 16 KB or 800 KB per second at an IO size of 4 KB. No performance counter directly measures which logical disk the hard page faults are resolved for.
|
||||
|
||||
### \Paging File(*)\% Usage
|
||||
|
||||
The \Paging File(*)\% Usage performance counter measures the percentage of usage of each page file. 100 percent usage of a page file doesn't indicate a performance problem as long as the system commit limit isn't reached by the system commit charge, and if a significant amount of memory isn't waiting to be written to a page file.
|
||||
|
||||
>[!Note]
|
||||
>The size of the Modified Page List (\Memory\Modified Page List Bytes) is the total of modified data that is waiting to be written to disk.
|
||||
|
||||
If the Modified Page List (a list of physical memory pages that are the least frequently accessed) contains lots of memory, and if the **% Usage** value of all page files is greater than 90, you can make more physical memory available for more frequently access pages by increasing or adding a page file.
|
||||
|
||||
>[!Note]
|
||||
>Not all the memory on the modified page list is written out to disk. Typically, several hundred megabytes of memory remains resident on the modified list.
|
||||
|
||||
## Multiple page files and disk considerations
|
||||
|
||||
If a system is configured to have more than one page files, the page file that responds first is the one that is used. This customized configuration means that page files that are on faster disks are used more frequently. Also, whether you put a page file on a “fast” or “slow” disk is important only if the page file is frequently accessed and if the disk that is hosting the respective page file is overwhelmed. Actual page file usage depends greatly on the amount of modified memory that the system is managing. This dependency means that files that already exist on disk (such as .txt, .doc, .dll, and .exe) aren't written to a page file. Only modified data that doesn't already exist on disk (for example, unsaved text in Notepad) is memory that could potentially be backed by a page file. After the unsaved data is saved to disk as a file, it's backed by the disk and not by a page file.
|
@ -1,116 +0,0 @@
|
||||
---
|
||||
title: Generate a kernel or complete crash dump
|
||||
description: Learn how to generate a kernel or complete crash dump, and then use the output to troubleshoot several issues.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: Deland-Han
|
||||
ms.localizationpriority: medium
|
||||
ms.author: delhan
|
||||
ms.date: 8/28/2019
|
||||
ms.reviewer:
|
||||
manager: willchen
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Generate a kernel or complete crash dump
|
||||
|
||||
A system crash (also known as a “bug check” or a "Stop error") occurs when Windows can't run correctly. The dump file that is produced from this event is called a system crash dump.
|
||||
|
||||
A manual kernel or complete memory dump file is useful when you troubleshoot several issues because the process captures a record of system memory at the time of a crash.
|
||||
|
||||
## Set up page files
|
||||
|
||||
See [Support for system crash dumps](determine-appropriate-page-file-size.md#support-for-system-crash-dumps) for the page file size requirement for system crash dump.
|
||||
|
||||
## Enable memory dump setting
|
||||
|
||||
You must be logged on as an administrator or a member of the Administrators group to complete this procedure. If your computer is connected to a network, network policy settings may prevent you from completing this procedure.
|
||||
|
||||
To enable memory dump setting, follow these steps:
|
||||
|
||||
1. In **Control Panel**, select **System and Security** > **System**.
|
||||
|
||||
2. Select **Advanced system settings**, and then select the **Advanced** tab.
|
||||
|
||||
3. In the **Startup and Recovery** area, select **Settings**.
|
||||
|
||||
4. Make sure that **Kernel memory dump** or **Complete memory dump** is selected under **Writing Debugging Information**.
|
||||
|
||||
5. Restart the computer.
|
||||
|
||||
>[!Note]
|
||||
>You can change the dump file path by edit the **Dump file** field. In other words, you can change the path from %SystemRoot%\Memory.dmp to point to a local drive that has enough disk space, such as E:\Memory.dmp.
|
||||
|
||||
### Tips to generate memory dumps
|
||||
|
||||
When the computer crashes and restarts, the contents of physical RAM are written to the paging file that is located on the partition on which the operating system is installed.
|
||||
|
||||
Depending on the speed of the hard disk on which Windows is installed, dumping more than 2 gigabytes (GB) of memory may take a long time. Even in a best-case scenario, if the dump file is configured to reside on another local hard drive, a significant amount of data will be read and written to the hard disks. This read-and-write process can cause a prolonged server outage.
|
||||
|
||||
>[!Note]
|
||||
>Use this method to generate complete memory dump files with caution. Ideally, you should do this only when you are explicitly requested to by the Microsoft Support engineer. Any kernel or complete memory dump file debugging should be the last resort after all standard troubleshooting methods have been completely exhausted.
|
||||
|
||||
## Manually generate a memory dump file
|
||||
|
||||
### Use the NotMyFault tool
|
||||
|
||||
If you can sign in while the problem is occurring, you can use the Microsoft Sysinternals NotMyFault tool by following these steps:
|
||||
|
||||
1. Download the [NotMyFault](https://download.sysinternals.com/files/NotMyFault.zip) tool.
|
||||
|
||||
2. Select **Start**, and then select **Command Prompt**.
|
||||
3. At the command line, run the following command:
|
||||
|
||||
```console
|
||||
notMyfault.exe /crash
|
||||
```
|
||||
|
||||
>[!Note]
|
||||
>This operation generates a memory dump file and a D1 Stop error.
|
||||
|
||||
### Use NMI
|
||||
|
||||
On some computers, you can't use keyboard to generate a crash dump file. For example, Hewlett-Packard (HP) BladeSystem servers from the Hewlett-Packard Development Company are managed through a browser-based graphical user interface (GUI). A keyboard isn't attached to the HP BladeSystem server.
|
||||
|
||||
In these cases, you must generate a complete crash dump file or a kernel crash dump file by using the Non-Maskable Interrupt (NMI) switch that causes an NMI on the system processor.
|
||||
|
||||
To implement this process, follow these steps:
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Follow the steps in this section carefully. Serious problems might occur if you modify the registry incorrectly. Before you modify it, [back up the registry for restoration](https://support.microsoft.com/help/322756) in case problems occur.
|
||||
|
||||
> [!NOTE]
|
||||
> This registry key isn't required for clients running Windows 8 and later, or servers running Windows Server 2012 and later. Setting this registry key on later versions of Windows has no effect.
|
||||
|
||||
1. In Registry Editor, locate the following registry subkey:
|
||||
|
||||
**HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl**
|
||||
|
||||
2. Right-click **CrashControl**, point to **New**, and then click **DWORD Value**.
|
||||
|
||||
3. Type NMICrashDump, and then press Enter.
|
||||
|
||||
4. Right-click **NMICrashDump**, and then select **Modify**.
|
||||
|
||||
5. In the **Value data** box, type **1**, and then select **OK**.
|
||||
|
||||
6. Restart the computer.
|
||||
|
||||
7. Hardware vendors, such as HP, IBM, and Dell, may provide an Automatic System Recovery (ASR) feature. You should disable this feature during troubleshooting. For example, if the HP and Compaq ASR feature is enabled in the BIOS, disable this feature while you troubleshoot to generate a complete Memory.dmp file. For the exact steps, contact your hardware vendor.
|
||||
|
||||
8. Enable the NMI switch in the BIOS or by using the Integrated Lights Out (iLO) Web interface.
|
||||
|
||||
>[!Note]
|
||||
>For the exact steps, see the BIOS reference manual or contact your hardware vendor.
|
||||
|
||||
9. Test this method on the server by using the NMI switch to generate a dump file. You'll see a STOP 0x00000080 hardware malfunction.
|
||||
|
||||
If you want to run NMI in Microsoft Azure using Serial Console, see [Use Serial Console for SysRq and NMI calls](/troubleshoot/azure/virtual-machines/serial-console-nmi-sysrq).
|
||||
|
||||
### Use the keyboard
|
||||
|
||||
[Forcing a System Crash from the Keyboard](/windows-hardware/drivers/debugger/forcing-a-system-crash-from-the-keyboard)
|
||||
|
||||
### Use Debugger
|
||||
|
||||
[Forcing a System Crash from the Debugger](/windows-hardware/drivers/debugger/forcing-a-system-crash-from-the-debugger)
|
@ -89,11 +89,11 @@ landingContent:
|
||||
linkLists:
|
||||
- linkListType: how-to-guide
|
||||
links:
|
||||
- text: Troubleshoot Windows 10 clients
|
||||
url: windows-10-support-solutions.md
|
||||
- text: Troubleshoot Windows clients
|
||||
url: /troubleshoot/windows-client/welcome-windows-client
|
||||
- text: Advanced troubleshooting for Windows networking
|
||||
url: troubleshoot-networking.md
|
||||
- text: Advanced troubleshooting for Windows start-up
|
||||
url: troubleshoot-networking.md
|
||||
- text: Advanced troubleshooting for Windows networking
|
||||
url: troubleshoot-windows-startup.md
|
||||
url: /troubleshoot/windows-client/networking/networking-overview
|
||||
- text: Advanced troubleshooting for Windows start-up and performance
|
||||
url: /troubleshoot/windows-client/performance/performance-overview
|
||||
- text: Advanced troubleshooting for user profiles and logon
|
||||
url: /troubleshoot-windows-startup.md/troubleshoot/windows-client/user-profiles-and-logon/userprofiles-and-logon-overview
|
||||
|
@ -1,70 +0,0 @@
|
||||
---
|
||||
title: Introduction to the page file
|
||||
description: Learn about the page files in Windows. A page file is an optional, hidden system file on a hard disk.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: Deland-Han
|
||||
ms.localizationpriority: medium
|
||||
ms.author: delhan
|
||||
ms.reviewer: dcscontentpm
|
||||
manager: dansimp
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Introduction to page files
|
||||
|
||||
A page file (also known as a "paging file") is an optional, hidden system file on a hard disk.
|
||||
|
||||
## Functionality
|
||||
|
||||
Page files have the following functionalities.
|
||||
|
||||
### Physical extension of RAM
|
||||
|
||||
Page files enable the system to remove infrequently accessed modified pages from physical memory to let the system use physical memory more efficiently for more frequently accessed pages.
|
||||
|
||||
### Application requirements
|
||||
|
||||
Some products or services require a page file for various reasons. For specific information, check the product documentation.
|
||||
|
||||
For example, the following Windows servers require page files:
|
||||
|
||||
- Windows Server domain controllers (DCs)
|
||||
- DFS Replication (DFS-R) servers
|
||||
- Certificate servers
|
||||
- ADAM/LDS servers
|
||||
|
||||
This requirement is because the algorithm of the database cache for Extensible Storage Engine (ESENT, or ESE for Microsoft Exchange Server) depends on the "\Memory\Transition Pages RePurposed/sec" performance monitor counter. A page file is required to ensure that the database cache can release memory if other services or applications request memory.
|
||||
|
||||
For Windows Server 2012 Hyper-V and Windows Server 2012 R2 Hyper-V, the page file of the management OS (commonly called the host OS) should be left at the default of setting of "System Managed".
|
||||
|
||||
### Support for system crash dumps
|
||||
|
||||
Page files can be used to "back" (or support) system crash dumps and extend how much system-committed memory (also known as "virtual memory") a system can support.
|
||||
|
||||
For more information about system crash dumps, see [system crash dump options](system-failure-recovery-options.md#under-write-debugging-information).
|
||||
|
||||
## Page files in Windows with large physical memory
|
||||
|
||||
When large physical memory is installed, a page file might not be required to support the system commit charge during peak usage. For example, 64-bit versions of Windows and Windows Server support more physical memory (RAM) than 32-bit versions support. The available physical memory alone might be large enough.
|
||||
|
||||
However, the reason to configure the page file size hasn't changed. It has always been about supporting a system crash dump, if it's necessary, or extending the system commit limit, if it's necessary. For example, when a lot of physical memory is installed, a page file might not be required to back the system commit charge during peak usage. The available physical memory alone might be large enough to do this. However, a page file or a dedicated dump file might still be required to back a system crash dump.
|
||||
|
||||
## System committed memory
|
||||
|
||||
Page files extend how much "committed memory" (also known as "virtual memory") is used to store modified data.
|
||||
|
||||
The system commit memory limit is the sum of physical memory and all page files combined. It represents the maximum system-committed memory (also known as the "system commit charge") that the system can support.
|
||||
|
||||

|
||||
|
||||
The system commit charge is the total committed or "promised" memory of all committed virtual memory in the system. If the system commit charge reaches the system commit limit, the system and processes might not get committed memory. This condition can cause freezing, crashing, and other malfunctions. Therefore, make sure that you set the system commit limit high enough to support the system commit charge during peak usage.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
The system committed charge and system committed limit can be measured on the **Performance** tab in Task Manager or by using the "\Memory\Committed Bytes" and "\Memory\Commit Limit" performance counters. The **\Memory\% Committed Bytes In Use** counter is a ratio of \Memory\Committed Bytes to \Memory\Commit Limit values.
|
||||
|
||||
> [!NOTE]
|
||||
> System-managed page files automatically grow up to three times the physical memory or 4 GB (whichever is larger, but no more than one-eighth of the volume size) when the system commit charge reaches 90 percent of the system commit limit. This assumes that enough free disk space is available to accommodate the growth.
|
@ -1,262 +0,0 @@
|
||||
---
|
||||
title: Configure system failure and recovery options in Windows
|
||||
description: Learn how to configure the actions that Windows takes when a system error occurs and what the recovery options are.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: Deland-Han
|
||||
ms.localizationpriority: medium
|
||||
ms.author: delhan
|
||||
ms.date: 07/12/2022
|
||||
ms.reviewer: dcscontentpm
|
||||
manager: dansimp
|
||||
---
|
||||
|
||||
# Configure system failure and recovery options in Windows
|
||||
|
||||
This article describes how to configure the actions that Windows takes when a system error (also referred to as a bug check, system crash, fatal system error, or Stop error) occurs. You can configure the following actions:
|
||||
|
||||
- Write an event to the System log.
|
||||
|
||||
- Alert administrators (if you've set up administrative alerts).
|
||||
|
||||
- Put system memory into a file that advanced users can use for debugging.
|
||||
|
||||
- Automatically restart the computer.
|
||||
|
||||
>[!Note]
|
||||
> You must be logged on as an administrator or a member of the Administrators group to complete this procedure. If your computer is connected to a network, network policy settings may prevent you from completing this procedure.
|
||||
|
||||
## Configuring system failure and recovery options
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Follow the steps in this section carefully. Serious problems might occur if you modify the registry incorrectly. Before you modify it, [back up the registry for restoration](https://support.microsoft.com/help/322756) in case problems occur.
|
||||
|
||||
The options are available in the **Startup and Recovery** dialog box. You can also use the following methods:
|
||||
|
||||
- Modify the values under the following registry subkey:
|
||||
|
||||
**HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl**
|
||||
|
||||
- To modify the option on your local computer, use the command line utility (Wmic.exe) to access Windows Management Instrumentation (WMI).
|
||||
|
||||
Follow these steps to view the options in **Startup and Recovery**. (The registry value and Wmic commands are also listed for each option.)
|
||||
|
||||
1. In Control Panel, select **System and Security > System**.
|
||||
|
||||
2. Select **Advanced system settings**, select the **Advanced** tab, and select **Settings** in the **Startup and Recovery** area.
|
||||
|
||||
### Under "System failure"
|
||||
|
||||
Select the check boxes for the actions that you want Windows to perform when a system error occurs.
|
||||
|
||||
#### Write an event to the System log
|
||||
|
||||
This option specifies that event information is recorded in the System log. By default, this option is turned on.
|
||||
|
||||
To turn off this option, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set WriteToSystemLog = False
|
||||
```
|
||||
|
||||
- Set the **LogEvent** DWORD value to **0**.
|
||||
|
||||
#### Send an administrative alert
|
||||
|
||||
The option specifies that administrators are notified of the system error if you configured administrative alerts. By default, this option is turned on.
|
||||
|
||||
To turn off this option, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set SendAdminAlert = False
|
||||
```
|
||||
|
||||
- Set the **SendAlert** DWORD value to **0**.
|
||||
|
||||
#### Automatically restart
|
||||
|
||||
The option specifies that Windows automatically restarts your computer. By default, this option is turned on.
|
||||
|
||||
To turn off this option, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set AutoReboot = False
|
||||
```
|
||||
|
||||
- Set the **AutoReboot** DWORD value to **0**.
|
||||
|
||||
### Under "Write debugging information"
|
||||
|
||||
Select one of the following type of information that you want Windows to record in a memory dump file if the computer stops unexpectedly:
|
||||
|
||||
#### (none)
|
||||
|
||||
The option doesn't record any information in a memory dump file.
|
||||
|
||||
To specify that you don't want Windows to record information in a memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugInfoType = 0
|
||||
```
|
||||
- Set the **CrashDumpEnabled** DWORD value to **0**.
|
||||
|
||||
#### Small Memory Dump
|
||||
|
||||
The option records the smallest amount of information to help identify the problem. This option requires a paging file of at least 2 megabytes (MB) on the boot volume of your computer, and specifies that Windows will create a new file each time the system stops unexpectedly. A history of these files is stored in the folder that is listed under Small Dump Directory (%SystemRoot%\Minidump). In Windows XP and Windows Server 2003, the small memory dump file is used together with the Windows Error Reporting feature.
|
||||
|
||||
To specify that you want to use a small memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugInfoType = 3
|
||||
```
|
||||
|
||||
- Set the **CrashDumpEnabled** DWORD value to **3**.
|
||||
|
||||
To specify that you want to use a folder as your Small Dump Directory, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set MiniDumpDirectory = <folderpath>
|
||||
```
|
||||
|
||||
- Set the **MinidumpDir** Expandable String Value to \<folderpath\>.
|
||||
|
||||
#### Kernel Memory Dump
|
||||
|
||||
The option records only kernel memory. This option stores more information than a small memory dump file, but it takes less time to complete than a complete memory dump file. The file is stored in %SystemRoot%\Memory.dmp by default, and any previous kernel or complete memory dump files are overwritten if the **Overwrite any existing file** check box is selected. If you set this option, you must have a sufficiently large paging file on the boot volume. The required size depends on the amount of RAM in your computer. However, the maximum amount of space that must be available for a kernel memory dump on a 32-bit system is 2 GB plus 16 MB. On a 64-bit system, the maximum amount of space that must be available for a kernel memory dump is the size of the RAM plus 128 MB. The following table provides guidelines for the size of the paging file:
|
||||
|
||||
|RAM size |Paging file should be no smaller than|
|
||||
|-------|-----------------|
|
||||
|256 MB–1,373 MB |1.5 times the RAM size|
|
||||
|1,374 MB or greater |32-bit system: 2 GB plus 16 MB <br /> 64-bit system: size of the RAM plus 128 MB|
|
||||
|
||||
To specify that you want to use a kernel memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugInfoType = 2
|
||||
```
|
||||
|
||||
- Set the **CrashDumpEnabled** DWORD value to **2**.
|
||||
|
||||
To specify that you want to use a file as your memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugFilePath = <filepath>
|
||||
```
|
||||
|
||||
- Set the **DumpFile** Expandable String Value to \<filepath\>.
|
||||
|
||||
To specify that you don't want to overwrite any previous kernel or complete memory dump files, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set OverwriteExistingDebugFile = 0
|
||||
```
|
||||
|
||||
- Set the **Overwrite** DWORD value to **0**.
|
||||
|
||||
#### Complete Memory Dump
|
||||
|
||||
The option records the contents of system memory when the computer stops unexpectedly. This option isn't available on computers that have 2 or more GB of RAM. If you select this option, you must have a paging file on the boot volume that is sufficient to hold all the physical RAM plus 1 MB. The file is stored as specified in %SystemRoot%\Memory.dmp by default.
|
||||
|
||||
The extra megabyte is required for a complete memory dump file because Windows writes a header in addition to dumping the memory contents. The header contains a crash dump signature and specifies the values of some kernel variables. The header information doesn't require a full megabyte of space, but Windows sizes your paging file in increments of megabytes.
|
||||
|
||||
To specify that you want to use a complete memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugInfoType = 1
|
||||
```
|
||||
|
||||
- Set the **CrashDumpEnabled** DWORD value to **1**.
|
||||
|
||||
To specify that you want to use a file as your memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugFilePath = <filepath>
|
||||
```
|
||||
|
||||
- Set the DumpFile Expandable String Value to \<filepath\>.
|
||||
|
||||
To specify that you don't want to overwrite any previous kernel or complete memory dump files, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set OverwriteExistingDebugFile = 0
|
||||
```
|
||||
|
||||
- Set the **Overwrite** DWORD value to **0**.
|
||||
|
||||
#### Automatic Memory Dump
|
||||
|
||||
This is the default option. An Automatic Memory Dump contains the same information as a Kernel Memory Dump. The difference between the two is in the way that Windows sets the size of the system paging file. If the system paging file size is set to **System managed size**, and the kernel-mode crash dump is set to **Automatic Memory Dump**, then Windows can set the size of the paging file to less than the size of RAM. In this case, Windows sets the size of the paging file large enough to ensure that a kernel memory dump can be captured most of the time.
|
||||
|
||||
If the computer crashes and the paging file is not large enough to capture a kernel memory dump, Windows increases the size of the paging file to at least the size of RAM. For more information, see [Automatic Memory Dump](/windows-hardware/drivers/debugger/automatic-memory-dump).
|
||||
|
||||
To specify that you want to use an automatic memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugInfoType = 7
|
||||
```
|
||||
|
||||
- Set the **CrashDumpEnabled** DWORD value to **7**.
|
||||
|
||||
To specify that you want to use a file as your memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugFilePath = <filepath>
|
||||
```
|
||||
|
||||
- Set the **DumpFile** Expandable String Value to \<filepath\>.
|
||||
|
||||
To specify that you don't want to overwrite any previous kernel or complete memory dump files, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set OverwriteExistingDebugFile = 0
|
||||
```
|
||||
|
||||
- Set the **Overwrite** DWORD value to **0**.
|
||||
|
||||
#### Active Memory Dump
|
||||
|
||||
An Active Memory Dump is similar to a Complete Memory Dump, but it filters out pages that are not likely to be relevant to troubleshooting problems on the host machine. Because of this filtering, it is typically significantly smaller than a Complete Memory Dump.
|
||||
|
||||
This dump file includes any memory allocated to user-mode applications. It also includes memory allocated to the Windows kernel and hardware abstraction layer, as well as memory allocated to kernel-mode drivers and other kernel-mode programs. The dump includes active pages mapped into the kernel or user space that are useful for debugging, as well as selected Pagefile-backed Transition, Standby, and Modified pages such as the memory allocated with VirtualAlloc or page-file-backed sections. Active dumps do not include pages on the free and zeroed lists, the file cache, guest VM pages, and various other types of memory that are not likely to be useful during debugging. For more information, see [Active Memory Dump](/windows-hardware/drivers/debugger/active-memory-dump).
|
||||
|
||||
To specify that you want to use an active memory dump file, modify the registry value:
|
||||
|
||||
- Set the **CrashDumpEnabled** DWORD value to **1**.
|
||||
- Set the **FilterPages** DWORD value to **1**.
|
||||
|
||||
To specify that you want to use a file as your memory dump file, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set DebugFilePath = <filepath>
|
||||
```
|
||||
|
||||
- Set the DumpFile Expandable String Value to \<filepath\>.
|
||||
|
||||
To specify that you don't want to overwrite any previous kernel or complete memory dump files, run the following command or modify the registry value:
|
||||
|
||||
- ```cmd
|
||||
wmic recoveros set OverwriteExistingDebugFile = 0
|
||||
```
|
||||
|
||||
- Set the **Overwrite** DWORD value to **0**.
|
||||
|
||||
>[!Note]
|
||||
>If you contact Microsoft Support about a Stop error, you might be asked for the memory dump file that is generated by the Write Debugging Information option.
|
||||
|
||||
To view system failure and recovery settings for your local computer, type **wmic recoveros** at a command prompt, and then press Enter. To view system failure and recovery settings for a remote computer on your local area network, type **wmic /node:<computer_name> recoveros** at a command prompt, and then press Enter.
|
||||
|
||||
>[!Note]
|
||||
>To successfully use these Wmic.exe command line examples, you must be logged on by using a user account that has administrative rights on the computer. If you are not logged on by using a user account that has administrative rights on the computer, use the **/user:user_name** and **/password:password** switches.
|
||||
|
||||
|
||||
### Tips
|
||||
|
||||
- To take advantage of the dump file feature, your paging file must be on the boot volume. If you've moved the paging file to another volume, you must move it back to the boot volume before you use this feature.
|
||||
|
||||
- If you set the Kernel Memory Dump or the Complete Memory Dump option, and you select the **Overwrite any existing file** check box, Windows always writes to the same file name. To save individual dump files, click to clear the **Overwrite any existing file** check box, and then change the file name after each Stop error.
|
||||
|
||||
- You can save some memory if you click to clear the **Write an event to the system log** and **Send an administrative alert** check boxes. The memory that you save depends on the computer, but these features typically require about 60-70 KB.
|
||||
|
||||
## References
|
||||
|
||||
[Varieties of Kernel-Mode Dump Files](/windows-hardware/drivers/debugger/varieties-of-kernel-mode-dump-files)
|
@ -119,56 +119,5 @@ items:
|
||||
- name: Windows libraries
|
||||
href: windows-libraries.md
|
||||
- name: Troubleshoot Windows clients
|
||||
items:
|
||||
- name: Windows 10 support solutions
|
||||
href: windows-10-support-solutions.md
|
||||
- name: Advanced troubleshooting for Windows networking
|
||||
href: troubleshoot-networking.md
|
||||
items:
|
||||
- name: Advanced troubleshooting Wireless network connectivity
|
||||
href: advanced-troubleshooting-wireless-network-connectivity.md
|
||||
- name: Advanced troubleshooting 802.1X authentication
|
||||
href: advanced-troubleshooting-802-authentication.md
|
||||
items:
|
||||
- name: Data collection for troubleshooting 802.1X authentication
|
||||
href: data-collection-for-802-authentication.md
|
||||
- name: Advanced troubleshooting for TCP/IP
|
||||
href: troubleshoot-tcpip.md
|
||||
items:
|
||||
- name: Collect data using Network Monitor
|
||||
href: troubleshoot-tcpip-netmon.md
|
||||
- name: "Part 1: TCP/IP performance overview"
|
||||
href: /troubleshoot/windows-server/networking/overview-of-tcpip-performance
|
||||
- name: "Part 2: TCP/IP performance underlying network issues"
|
||||
href: /troubleshoot/windows-server/networking/troubleshooting-tcpip-performance-underlying-network
|
||||
- name: "Part 3: TCP/IP performance known issues"
|
||||
href: /troubleshoot/windows-server/networking/tcpip-performance-known-issues
|
||||
- name: Troubleshoot TCP/IP connectivity
|
||||
href: troubleshoot-tcpip-connectivity.md
|
||||
- name: Troubleshoot port exhaustion
|
||||
href: troubleshoot-tcpip-port-exhaust.md
|
||||
- name: Troubleshoot Remote Procedure Call (RPC) errors
|
||||
href: troubleshoot-tcpip-rpc-errors.md
|
||||
- name: Advanced troubleshooting for Windows startup
|
||||
href: troubleshoot-windows-startup.md
|
||||
items:
|
||||
- name: How to determine the appropriate page file size for 64-bit versions of Windows
|
||||
href: determine-appropriate-page-file-size.md
|
||||
- name: Generate a kernel or complete crash dump
|
||||
href: generate-kernel-or-complete-crash-dump.md
|
||||
- name: Introduction to the page file
|
||||
href: introduction-page-file.md
|
||||
- name: Configure system failure and recovery options in Windows
|
||||
href: system-failure-recovery-options.md
|
||||
- name: Advanced troubleshooting for Windows boot problems
|
||||
href: advanced-troubleshooting-boot-problems.md
|
||||
- name: Advanced troubleshooting for Windows-based computer freeze
|
||||
href: troubleshoot-windows-freeze.md
|
||||
- name: Advanced troubleshooting for stop error or blue screen error
|
||||
href: troubleshoot-stop-errors.md
|
||||
- name: Advanced troubleshooting for stop error 7B or Inaccessible_Boot_Device
|
||||
href: troubleshoot-inaccessible-boot-device.md
|
||||
- name: Advanced troubleshooting for Event ID 41 "The system has rebooted without cleanly shutting down first"
|
||||
href: troubleshoot-event-id-41-restart.md
|
||||
- name: Stop error occurs when you update the in-box Broadcom network adapter driver
|
||||
href: troubleshoot-stop-error-on-broadcom-driver-update.md
|
||||
href: /troubleshoot/windows-client/welcome-windows-client
|
||||
|
||||
|
@ -1,120 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for Event ID 41 - "The system has rebooted without cleanly shutting down first"
|
||||
description: Describes the circumstances that cause a computer to generate Event ID 41, and provides guidance for troubleshooting the issue
|
||||
author: Teresa-Motiv
|
||||
ms.author: dougeby
|
||||
ms.date: 12/27/2019
|
||||
ms.prod: w10
|
||||
ms.topic: article
|
||||
ms.custom:
|
||||
- CI 111437
|
||||
- CSSTroubleshooting
|
||||
audience: ITPro
|
||||
ms.localizationpriority: medium
|
||||
manager: kaushika
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for Event ID 41: "The system has rebooted without cleanly shutting down first"
|
||||
|
||||
> **Home users**
|
||||
> This article is intended for use by support agents and IT professionals. If you're looking for more information about blue screen error messages, please visit [Troubleshoot blue screen errors](https://support.microsoft.com/help/14238/windows-10-troubleshoot-blue-screen-errors).
|
||||
|
||||
The preferred way to shut down Windows is to select **Start**, and then select an option to turn off or shut down the computer. When you use this standard method, the operating system closes all files and notifies the running services and applications so that they can write any unsaved data to disk and flush any active caches.
|
||||
|
||||
If your computer shuts down unexpectedly, Windows logs Event ID 41 the next time that the computer starts. The event text resembles the following information:
|
||||
|
||||
> Event ID: 41
|
||||
> Description: The system has rebooted without cleanly shutting down first.
|
||||
|
||||
This event indicates that some unexpected activity prevented Windows from shutting down correctly. Such a shutdown might be caused by an interruption in the power supply or by a Stop error. If feasible, Windows records any error codes as it shuts down. During the [kernel phase](advanced-troubleshooting-boot-problems.md#kernel-phase) of the next Windows startup, Windows checks for these codes and includes any existing codes in the event data of Event ID 41.
|
||||
|
||||
> EventData
|
||||
> BugcheckCode 159
|
||||
> BugcheckParameter1 0x3
|
||||
> BugcheckParameter2 0xfffffa80029c5060
|
||||
> BugcheckParameter3 0xfffff8000403d518
|
||||
> BugcheckParameter4 0xfffffa800208c010
|
||||
> SleepInProgress false
|
||||
> PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)
|
||||
|
||||
## How to use Event ID 41 when you troubleshoot an unexpected shutdown or restart
|
||||
|
||||
By itself, Event ID 41 might not contain sufficient information to explicitly define what occurred. Typically, you've to also consider what was occurring at the time of the unexpected shutdown (for example, the power supply failed). Use the information in this article to identify a troubleshooting approach that is appropriate for your circumstances:
|
||||
|
||||
- [Scenario 1](#scen1): The computer restarts because of a Stop error, and Event ID 41 contains a Stop error (bug check) code
|
||||
- [Scenario 2](#scen2): The computer restarts because you pressed and held the power button
|
||||
- [Scenario 3](#scen3): The computer is unresponsive or randomly restarts, and Event ID 41 isn't logged or the Event ID 41 entry lists error code values of zero
|
||||
|
||||
### <a name="scen1"></a>Scenario 1: The computer restarts because of a Stop error, and Event ID 41 contains a Stop error (bug check) code
|
||||
|
||||
When a computer shuts down or restarts because of a Stop error, Windows includes the Stop error data in Event ID 41 as part of more event data. This information includes the Stop error code (also called a bug check code), as shown in the following example:
|
||||
|
||||
> EventData
|
||||
> BugcheckCode 159
|
||||
> BugcheckParameter1 0x3
|
||||
> BugcheckParameter2 0xfffffa80029c5060
|
||||
> BugcheckParameter3 0xfffff8000403d518
|
||||
> BugcheckParameter4 0xfffffa800208c010
|
||||
|
||||
> [!NOTE]
|
||||
> Event ID 41 includes the bug check code in decimal format. Most documentation that describes bug check codes refers to the codes as hexadecimal values instead of decimal values. To convert decimal to hexadecimal, follow these steps:
|
||||
>
|
||||
> 1. Select **Start**, type **calc** in the **Search** box, and then select **Calculator**.
|
||||
> 1. In the **Calculator** window, select **View** > **Programmer**.
|
||||
> 1. On the left side of calculator, verify that **Dec** is highlighted.
|
||||
> 1. Use the keyboard to enter the decimal value of the bug check code.
|
||||
> 1. On the left side of the calculator, select **Hex**.
|
||||
> The value that the calculator displays is now the hexadecimal code.
|
||||
>
|
||||
> When you convert a bug check code to hexadecimal format, verify that the “0x” designation is followed by eight digits (that is, the part of the code after the “x” includes enough zeros to fill out eight digits). For example, 0x9F is typically documented as 0x0000009f, and 0xA is documented as 0x0000000A. In the case of the example event data in this article, "159" converts to 0x0000009f.
|
||||
|
||||
After you identify the hexadecimal value, use the following references to continue troubleshooting:
|
||||
|
||||
- [Advanced troubleshooting for Stop error or blue screen error issue](troubleshoot-stop-errors.md).
|
||||
- [Bug Check Code Reference](/windows-hardware/drivers/debugger/bug-check-code-reference2). This page lists links to documentation for different bug check codes.
|
||||
- [How to Debug Kernel Mode Blue Screen Crashes (for beginners)](/archive/blogs/askcore/how-to-debug-kernel-mode-blue-screen-crashes-for-beginners).
|
||||
|
||||
### <a name="scen2"></a>Scenario 2: The computer restarts because you pressed and held the power button
|
||||
|
||||
Because this method of restarting the computer interferes with the Windows shutdown operation, we recommend that you use this method only if you've no alternative. For example, you might have to use this approach if your computer isn't responding. When you restart the computer by pressing and holding the power button, the computer logs an Event ID 41 that includes a non-zero value for the **PowerButtonTimestamp** entry.
|
||||
|
||||
For help when troubleshooting an unresponsive computer, see [Windows Help](https://support.microsoft.com/hub/4338813/windows-help?os=windows-10). Consider searching for assistance by using keywords such as "hang," "responding," or "blank screen."
|
||||
|
||||
### <a name="scen3"></a>Scenario 3: The computer is unresponsive or randomly restarts, and Event ID 41 isn't recorded or the Event ID 41 entry or lists error code values of zero
|
||||
|
||||
This scenario includes the following circumstances:
|
||||
|
||||
- You shut off power to an unresponsive computer, and then you restart the computer.
|
||||
To verify that a computer is unresponsive, press the CAPS LOCK key on the keyboard. If the CAPS LOCK light on the keyboard doesn't change when you press the CAPS LOCK key, the computer might be unresponsive (also known as a *hard hang*).
|
||||
- The computer restarts, but it doesn't generate Event ID 41.
|
||||
- The computer restarts and generates Event ID 41, but the **BugcheckCode** and **PowerButtonTimestamp** values are zero.
|
||||
|
||||
In such cases, something prevents Windows from generating error codes or from writing error codes to disk. Something might block write access to the disk (as in the case of an unresponsive computer) or the computer might shut down too quickly to write the error codes or even detect an error.
|
||||
|
||||
The information in Event ID 41 provides some indication of where to start checking for problems:
|
||||
|
||||
- **Event ID 41 isn't recorded or the bug check code is zero**. This behavior might indicate a power supply problem. If the power to a computer is interrupted, the computer might shut down without generating a Stop error. If it does generate a Stop error, it might not finish writing the error codes to disk. The next time the computer starts, it might not log Event ID 41. Or, if it does, the bug check code is zero. The following conditions might be the cause:
|
||||
- In the case of a portable computer, the battery was removed or drained.
|
||||
- In the case of a desktop computer, the computer was unplugged or experienced a power outage.
|
||||
- The power supply is underpowered or faulty.
|
||||
|
||||
- **The PowerButtonTimestamp value is zero**. This behavior might occur if you disconnected the power to a computer that wasn't responding to input. The following conditions might be the cause:
|
||||
- A Windows process blocked write access to the disk, and you shut down the computer by pressing and holding the power button for at least four seconds.
|
||||
- You disconnected the power to an unresponsive computer.
|
||||
|
||||
Typically, the symptoms described in this scenario indicate a hardware problem. To help isolate the problem, do the following steps:
|
||||
|
||||
- **Disable overclocking**. If the computer has overclocking enabled, disable it. Verify that the issue occurs when the system runs at the correct speed.
|
||||
- **Check the memory**. Use a memory checker to determine the memory health and configuration. Verify that all memory chips run at the same speed and that every chip is configured correctly in the system.
|
||||
- **Check the power supply**. Verify that the power supply has enough wattage to appropriately handle the installed devices. If you added memory, installed a newer processor, installed more drives, or added external devices, such devices can require more energy than the current power supply can provide consistently. If the computer logged Event ID 41 because the power to the computer was interrupted, consider obtaining an uninterruptible power supply (UPS) such as a battery backup power supply.
|
||||
- **Check for overheating**. Examine the internal temperature of the hardware and check for any overheating components.
|
||||
|
||||
If you perform these checks and still can't isolate the problem, set the system to its default configuration and verify whether the issue still occurs.
|
||||
|
||||
> [!NOTE]
|
||||
> If you see a Stop error message that includes a bug check code, but Event ID 41 doesn't include that code, change the restart behavior for the computer. To do this, follow these steps:
|
||||
>
|
||||
> 1. Right-click **My Computer**, then select **Properties** > **Advanced system settings** > **Advanced**.
|
||||
> 1. In the **Startup and Recovery** section, select **Settings**.
|
||||
> 1. Clear the **Automatically restart** check box.
|
@ -1,279 +0,0 @@
|
||||
---
|
||||
title: Advanced advice for Stop error 7B, Inaccessible_Boot_Device
|
||||
description: Learn how to troubleshoot Stop error 7B or Inaccessible_Boot_Device. This error might occur after some changes are made to the computer,
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 12/11/2018
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for Stop error 7B or Inaccessible_Boot_Device
|
||||
|
||||
This article provides steps to troubleshoot **Stop error 7B: Inaccessible_Boot_Device**. This error might occur after some changes are made to the computer, or immediately after you deploy Windows on the computer.
|
||||
|
||||
## Causes of the Inaccessible_Boot_Device Stop error
|
||||
|
||||
Any one of the following factors might cause the stop error:
|
||||
|
||||
* Missing, corrupted, or misbehaving filter drivers that are related to the storage stack
|
||||
|
||||
* File system corruption
|
||||
|
||||
* Changes to the storage controller mode or settings in the BIOS
|
||||
|
||||
* Using a different storage controller than the one that was used when Windows was installed
|
||||
|
||||
* Moving the hard disk to a different computer that has a different controller
|
||||
|
||||
* A faulty motherboard or storage controller, or faulty hardware
|
||||
|
||||
* In unusual cases, the failure of the TrustedInstaller service to commit newly installed updates is because of component-based store corruptions
|
||||
|
||||
* Corrupted files in the **Boot** partition (for example, corruption in the volume that's labeled **SYSTEM** when you run the `diskpart` > `list vol` command)
|
||||
|
||||
* If there's a blank GPT entry before the entry of the **Boot** partition
|
||||
|
||||
## Troubleshoot this error
|
||||
|
||||
Start the computer in [Windows Recovery Mode (WinRE)](/windows-hardware/manufacture/desktop/windows-recovery-environment--windows-re--technical-reference#span-identrypointsintowinrespanspan-identrypointsintowinrespanspan-identrypointsintowinrespanentry-points-into-winre) by following these steps.
|
||||
|
||||
1. Start the system by using [the installation media for the installed version of Windows](https://support.microsoft.com/help/15088).
|
||||
|
||||
2. On the **Install Windows** screen, select **Next** > **Repair your computer**.
|
||||
|
||||
3. On the **System Recovery Options** screen, select **Next** > **Command Prompt**.
|
||||
|
||||
### Verify that the boot disk is connected and accessible
|
||||
|
||||
#### Step 1
|
||||
|
||||
At the WinRE Command prompt, run `diskpart`, and then run `list disk`.
|
||||
|
||||
A list of the physical disks that are attached to the computer should be displayed and resemble the following display:
|
||||
|
||||
```console
|
||||
Disk ### Status Size Free Dyn Gpt
|
||||
|
||||
-------- ------------- ------- ------- --- ---
|
||||
|
||||
Disk 0 Online **size* GB 0 B *
|
||||
```
|
||||
|
||||
If the computer uses a Unified Extensible Firmware Interface (UEFI) startup interface, there will be an asterisk (<em>) in the **GPT</em>* column.
|
||||
|
||||
If the computer uses a basic input/output system (BIOS) interface, there won't be an asterisk in the **Dyn** column.
|
||||
|
||||
#### Step 2
|
||||
|
||||
If the `list disk` command lists the OS disks correctly, run the `list vol` command in `diskpart`.
|
||||
|
||||
`list vol` generates an output that resembles the following display:
|
||||
|
||||
```console
|
||||
Volume ### Ltr Label Fs Type Size Status Info
|
||||
|
||||
---------- --- ----------- ----- ---------- ------- --------- --------
|
||||
|
||||
Volume 0 Windows RE NTFS Partition 499 MB Healthy
|
||||
|
||||
Volume 1 C OSDisk NTFS Partition 222 GB Healthy Boot
|
||||
|
||||
Volume 2 SYSTEM FAT32 Partition 499 MB Healthy System
|
||||
```
|
||||
|
||||
>[!NOTE]
|
||||
>If the disk that contains the OS isn't listed in the output, you'll have to engage the OEM or virtualization manufacturer.
|
||||
|
||||
### Verify the integrity of Boot Configuration Database
|
||||
|
||||
Check whether the Boot Configuration Database (BCD) has all the correct entries. To do this step, run `bcdedit` at the WinRE command prompt.
|
||||
|
||||
To verify the BCD entries:
|
||||
|
||||
1. Examine the **Windows Boot Manager** section that has the **{bootmgr}** identifier. Make sure that the **device** and **path** entries point to the correct device and boot loader file.
|
||||
|
||||
If the computer is UEFI-based, here's example output:
|
||||
|
||||
```console
|
||||
device partition=\Device\HarddiskVolume2
|
||||
path \EFI\Microsoft\Boot\bootmgfw.efi
|
||||
```
|
||||
|
||||
If the machine is BIOS-based, here's example output:
|
||||
|
||||
```console
|
||||
Device partition=C:
|
||||
```
|
||||
|
||||
>[!NOTE]
|
||||
>This output might not contain a path.
|
||||
|
||||
2. In the **Windows Boot Loader** that has the **{default}** identifier, make sure that **device**, **path**, **osdevice**, and **systemroot** point to the correct device or partition, winload file, OS partition or device, and OS folder.
|
||||
|
||||
> [!NOTE]
|
||||
> If the computer is UEFI-based, the file path value that's specified in the **path** parameter of **{bootmgr}** and **{default}** contains an **.efi** extension.
|
||||
|
||||

|
||||
|
||||
If any of the information is wrong or missing, we recommend that you create a backup of the BCD store. To do this, run `bcdedit /export C:\temp\bcdbackup`. This command creates a backup in **C:\\temp\\** that's named **bcdbackup**. To restore the backup, run `bcdedit /import C:\temp\bcdbackup`. This command overwrites all BCD settings by using the settings in **bcdbackup**.
|
||||
|
||||
After the backup completes, run the following command to make the changes:
|
||||
|
||||
```console
|
||||
bcdedit /set *{identifier}* option value
|
||||
```
|
||||
|
||||
For example, if the device under {default} is wrong or missing, run this command to set it: `bcdedit /set {default} device partition=C:`
|
||||
|
||||
If you want to completely re-create the BCD, or if you get a message that states that "**The boot configuration data store could not be opened. The system could not find the file specified,** " run `bootrec /rebuildbcd`.
|
||||
|
||||
If the BCD has the correct entries, check whether the **winload** and **bootmgr** entries exist in the correct location, which is in the specified path in the **bcdedit** command. By default, **bootmgr** in the BIOS partition is in the root of the **SYSTEM** partition. To see the file, run `Attrib -s -h -r`.
|
||||
|
||||
If the files are missing, and you want to rebuild the boot files, follow these steps:
|
||||
|
||||
1. Copy all the contents under the **SYSTEM** partition to another location. Alternatively, you can use the command prompt to navigate to the OS drive, create a new folder, and then copy all the files and folders from the **SYSTEM** volume, like shown here:
|
||||
|
||||
```console
|
||||
D:\> Mkdir BootBackup
|
||||
R:\> Copy *.* D:\BootBackup
|
||||
```
|
||||
|
||||
2. If you're using Windows 10, or if you're troubleshooting by using a Windows 10 ISO at the Windows Pre-Installation Environment command prompt, you can use the **bcdboot** command to re-create the boot files, like shown here:
|
||||
|
||||
```console
|
||||
Bcdboot <**OSDrive* >:\windows /s <**SYSTEMdrive* >: /f ALL
|
||||
```
|
||||
|
||||
For example, if we assign the `<System Drive>` (WinRE drive) the letter R and the `<OSdrive>` is the letter D, we would use the following command:
|
||||
|
||||
```console
|
||||
Bcdboot D:\windows /s R: /f ALL
|
||||
```
|
||||
|
||||
>[!NOTE]
|
||||
>The **ALL** part of the **bcdboot** command writes all the boot files (both UEFI and BIOS) to their respective locations.
|
||||
|
||||
If you don't have a Windows 10 ISO, format the partition and copy **bootmgr** from another working computer that has a similar Windows build. To do the formatting and copying, follow these steps:
|
||||
|
||||
1. Start **Notepad**.
|
||||
|
||||
2. Press Ctrl+O.
|
||||
|
||||
3. Navigate to the system partition (in this example, it's R).
|
||||
|
||||
4. Right-click the partition, and then format it.
|
||||
|
||||
### Troubleshooting if this issue occurs after a Windows Update installation
|
||||
|
||||
Run the following command to verify the Windows update installation and dates:
|
||||
|
||||
```console
|
||||
Dism /Image:<Specify the OS drive>: /Get-packages
|
||||
```
|
||||
|
||||
After you run this command, you'll see the **Install pending** and **Uninstall Pending** packages:
|
||||
|
||||

|
||||
|
||||
1. Run the `dism /Image:C:\ /Cleanup-Image /RevertPendingActions` command. Replace **C:** with the system partition for your computer.
|
||||
|
||||

|
||||
|
||||
2. Navigate to ***OSdriveLetter*:\Windows\WinSxS**, and then check whether the **pending.xml** file exists. If it does, rename it to **pending.xml.old**.
|
||||
|
||||
3. To revert the registry changes, type **regedit** at the command prompt to open **Registry Editor**.
|
||||
|
||||
4. Select **HKEY_LOCAL_MACHINE**, and then go to **File** > **Load Hive**.
|
||||
|
||||
5. Navigate to ***OSdriveLetter*:\Windows\System32\config**, select the file that's named **COMPONENT** (with no extension), and then select **Open**. When you're prompted, enter the name **OfflineComponentHive** for the new hive.
|
||||
|
||||

|
||||
|
||||
6. Expand **HKEY_LOCAL_MACHINE\OfflineComponentHive**, and check whether the **PendingXmlIdentifier** key exists. Create a backup of the **OfflineComponentHive** key, and then delete the **PendingXmlIdentifier** key.
|
||||
|
||||
7. Unload the hive. To do this unloading, highlight **OfflineComponentHive**, and then select **File** > **Unload hive**.
|
||||
|
||||
> [!div class="mx-imgBorder"]
|
||||
> 
|
||||
|
||||
8. Select **HKEY_LOCAL_MACHINE**, go to **File** > **Load Hive**, navigate to ***OSdriveLetter*:\Windows\System32\config**, select the file that's named **SYSTEM** (with no extension), and then select **Open**. When you're prompted, enter the name **OfflineSystemHive** for the new hive.
|
||||
|
||||
9. Expand **HKEY_LOCAL_MACHINE\OfflineSystemHive**, and then select the **Select** key. Check the data for the **Default** value.
|
||||
|
||||
10. If the data in **HKEY_LOCAL_MACHINE\OfflineSystemHive\Select\Default** is **1**, expand **HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001**. If it's **2**, expand **HKEY_LOCAL_MACHINE\OfflineHive\ControlSet002**, and so on.
|
||||
|
||||
11. Expand **Control\Session Manager**. Check whether the **PendingFileRenameOperations** key exists. If it does, back up the **SessionManager** key, and then delete the **PendingFileRenameOperations** key.
|
||||
|
||||
### Verifying boot critical drivers and services
|
||||
|
||||
#### Check services
|
||||
|
||||
1. Follow steps 1-10 in the "Troubleshooting if this issue occurs after a Windows Update installation" section. (Step 11 doesn't apply to this procedure.)
|
||||
|
||||
2. Expand **Services**.
|
||||
|
||||
3. Make sure that the following registry keys exist under **Services**:
|
||||
|
||||
* ACPI
|
||||
* DISK
|
||||
* VOLMGR
|
||||
* PARTMGR
|
||||
* VOLSNAP
|
||||
* VOLUME
|
||||
|
||||
If these keys exist, check each one to make sure that it has a value that's named **Start**, and that it's set to **0**. If it's not, set the value to **0**.
|
||||
|
||||
If any of these keys don't exist, you can try to replace the current registry hive by using the hive from **RegBack**. To do this step, run the following commands:
|
||||
|
||||
```console
|
||||
cd OSdrive:\Windows\System32\config
|
||||
ren SYSTEM SYSTEM.old
|
||||
copy OSdrive:\Windows\System32\config\RegBack\SYSTEM OSdrive:\Windows\System32\config\
|
||||
```
|
||||
|
||||
#### Check upper and lower filter drivers
|
||||
|
||||
Check whether there are any non-Microsoft upper and lower filter drivers on the computer and that they don't exist on another, similar working computer. If they do exist, remove the upper and lower filter drivers:
|
||||
|
||||
1. Expand **HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001\Control**.
|
||||
|
||||
2. Look for any **UpperFilters** or **LowerFilters** entries.
|
||||
|
||||
>[!NOTE]
|
||||
>These filters are mainly related to storage. After you expand the **Control** key in the registry, you can search for **UpperFilters** and **LowerFilters**.
|
||||
|
||||
You might find these filter drivers in some of the following registry entries. These entries are under **ControlSet** and are designated as **Default**:
|
||||
|
||||
\Control\Class\\{4D36E96A-E325-11CE-BFC1-08002BE10318}
|
||||
\Control\Class\\{4D36E967-E325-11CE-BFC1-08002BE10318}
|
||||
\Control\Class\\{4D36E97B-E325-11CE-BFC1-08002BE10318}
|
||||
\Control\Class\\{71A27CDD-812A-11D0-BEC7-08002BE2092F}
|
||||
|
||||
> [!div class="mx-imgBorder"]
|
||||
> 
|
||||
|
||||
If an **UpperFilters** or **LowerFilters** entry is non-standard (for example, it's not a Windows default filter driver, such as PartMgr), remove the entry. To remove it, double-click it in the right pane, and then delete only that value.
|
||||
|
||||
>[!NOTE]
|
||||
>There could be multiple entries.
|
||||
|
||||
These entries might affect us because there might be an entry in the **Services** branch that has a START type set to 0 or 1, which means that it's loaded at the Boot or Automatic part of the boot process. Also, either the file that's referred to is missing or corrupted, or it might be named differently than what's listed in the entry.
|
||||
|
||||
>[!NOTE]
|
||||
>If there's a service that's set to **0** or **1** that corresponds to an **UpperFilters** or **LowerFilters** entry, setting the service to disabled in the **Services** registry (as discussed in steps 2 and 3 of the Check services section) without removing the **Filter Driver** entry causes the computer to crash and generate a 0x7b Stop error.
|
||||
|
||||
### Running SFC and Chkdsk
|
||||
|
||||
If the computer still doesn't start, you can try to run a **chkdisk** process on the system drive, and then also run System File Checker. Do these steps by running the following commands at a WinRE command prompt:
|
||||
|
||||
* `chkdsk /f /r OsDrive:`
|
||||
|
||||

|
||||
|
||||
* `sfc /scannow /offbootdir=OsDrive:\ /offwindir=OsDrive:\Windows`
|
||||
|
||||

|
@ -1,35 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for Windows networking
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
description: Learn about the topics that are available to help you troubleshoot common problems related to Windows networking.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for Windows networking
|
||||
|
||||
The following topics are available to help you troubleshoot common problems related to Windows networking.
|
||||
|
||||
- [Advanced troubleshooting for wireless network connectivity](advanced-troubleshooting-wireless-network-connectivity.md)
|
||||
- [Advanced troubleshooting 802.1X authentication](advanced-troubleshooting-802-authentication.md)
|
||||
- [Data collection for troubleshooting 802.1X authentication](data-collection-for-802-authentication.md)
|
||||
- [Advanced troubleshooting for TCP/IP](troubleshoot-tcpip.md)
|
||||
- [Collect data using Network Monitor](troubleshoot-tcpip-netmon.md)
|
||||
- [Troubleshoot TCP/IP connectivity](troubleshoot-tcpip-connectivity.md)
|
||||
- [Troubleshoot port exhaustion issues](troubleshoot-tcpip-port-exhaust.md)
|
||||
- [Troubleshoot Remote Procedure Call (RPC) errors](troubleshoot-tcpip-rpc-errors.md)
|
||||
|
||||
## Concepts and technical references
|
||||
|
||||
[802.1X authenticated wired access overview](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831831(v=ws.11))<br>
|
||||
[802.1X authenticated wireless access overview](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh994700(v%3dws.11))<br>
|
||||
[Wireless access deployment overview](/windows-server/networking/core-network-guide/cncg/wireless/b-wireless-access-deploy-overview)<br>
|
||||
[TCP/IP technical reference](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd379473(v=ws.10))<br>
|
||||
[Network Monitor](/windows/desktop/netmon2/network-monitor)<br>
|
||||
[RPC and the network](/windows/desktop/rpc/rpc-and-the-network)<br>
|
||||
[How RPC works](/windows/desktop/rpc/how-rpc-works)<br>
|
||||
[NPS reason codes](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd197570(v=ws.10))<br>
|
@ -1,45 +0,0 @@
|
||||
---
|
||||
title: Stop error occurs when you update the in-box Broadcom network adapter driver
|
||||
description: Describes an issue that causes a stop error when you update an in-box Broadcom driver on Windows Server 2019, version 1809.
|
||||
author: Teresa-Motiv
|
||||
ms.author: dougeby
|
||||
ms.date: 2/3/2020
|
||||
ms.prod: w10
|
||||
ms.topic: article
|
||||
ms.custom:
|
||||
- CI 113175
|
||||
- CSSTroubleshooting
|
||||
audience: ITPro
|
||||
ms.localizationpriority: medium
|
||||
manager: kaushika
|
||||
---
|
||||
|
||||
# Stop error occurs when you update the in-box Broadcom network adapter driver
|
||||
|
||||
This issue affects computers that meet the following criteria:
|
||||
|
||||
- The operating system is Windows Server 2019, version 1809.
|
||||
- The network adapter is a Broadcom NX1 Gigabit Ethernet network adapter.
|
||||
- The number of logical processors is large (for example, a computer that has more than 38 logical processors).
|
||||
|
||||
On such a computer, when you update the in-box Broadcom network adapter driver to a later version or when you install the Intel chipset driver, the computer experiences a Stop error (also known as a blue screen error or bug check error).
|
||||
|
||||
## Cause
|
||||
|
||||
The operating system media for Windows Server 2019, version 1809, contains version 17.2 of the Broadcom NIC driver. When you upgrade this driver to a later version, the process of uninstalling the version 17.2 driver generates an error. This is a known issue.
|
||||
|
||||
This issue was resolved in Windows Server 2019 version 1903. The operating system media use a later version of the Broadcom network adapter driver.
|
||||
|
||||
## Workaround
|
||||
|
||||
To update the Broadcom network adapter driver on an affected computer, follow these steps:
|
||||
|
||||
> [!NOTE]
|
||||
> This procedure describes how to use Device Manager to disable and re-enable the Broadcom network adapter. Alternatively, you can use the computer BIOS to disable and re-enable the adapter. For specific instructions, see your OEM BIOS configuration guide.
|
||||
|
||||
1. Download the driver update to the affected computer.
|
||||
1. Open Device Manager, and then select the Broadcom network adapter.
|
||||
1. Right-click the adapter and then select **Disable device**.
|
||||
1. Right-click the adapter again and then select **Update driver** > **Browse my computer for driver software**.
|
||||
1. Select the update that you downloaded, and then start the update.
|
||||
1. After the update finishes, right-click the adapter and then select **Enable device**.
|
@ -1,650 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for stop or blue screen errors
|
||||
description: Learn advanced options for troubleshooting stop errors, also known as blue screen errors or bug check errors.
|
||||
ms.prod: w10
|
||||
ms.technology: windows
|
||||
ms.topic: troubleshooting
|
||||
author: aczechowski
|
||||
ms.author: aaroncz
|
||||
manager: dougeby
|
||||
ms.reviewer:
|
||||
ms.localizationpriority: medium
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for stop or blue screen errors
|
||||
|
||||
<p class="alert is-flex is-primary"><span class="has-padding-left-medium has-padding-top-extra-small"><a class="button is-primary" href="https://vsa.services.microsoft.com/v1.0/?partnerId=7d74cf73-5217-4008-833f-87a1a278f2cb&flowId=DMC&initialQuery=31806236" target='_blank'><b>Try our Virtual Agent</b></a></span><span class="has-padding-small"> - It can help you quickly identify and fix common Windows boot issues</span>
|
||||
|
||||
> [!NOTE]
|
||||
> If you're not a support agent or IT professional, you'll find more helpful information about stop error ("blue screen") messages in [Troubleshoot blue screen errors](https://support.microsoft.com/sbs/windows/troubleshoot-blue-screen-errors-5c62726c-6489-52da-a372-3f73142c14ad).
|
||||
|
||||
## What causes stop errors?
|
||||
|
||||
A stop error is displayed as a blue screen that contains the name of the faulty driver, such as any of the following example drivers:
|
||||
|
||||
- `atikmpag.sys`
|
||||
- `igdkmd64.sys`
|
||||
- `nvlddmkm.sys`
|
||||
|
||||
There's no simple explanation for the cause of stop errors (also known as blue screen errors or bug check errors). Many different factors can be involved. However, various studies indicate that stop errors usually aren't caused by Microsoft Windows components. Instead, these errors are related to malfunctioning hardware drivers or drivers that are installed by third-party software. These drivers include video cards, wireless network cards, security programs, and so on.
|
||||
|
||||
Our analysis of the root causes of crashes indicates that:
|
||||
|
||||
- 70% are caused by third-party driver code.
|
||||
- 10% are caused by hardware issues.
|
||||
- 5% are caused by Microsoft code.
|
||||
- 15% have unknown causes, because the memory is too corrupted to analyze.
|
||||
|
||||
> [!NOTE]
|
||||
> The root cause of stop errors is never a user-mode process. While a user-mode process (such as Notepad or Slack) may trigger a stop error, it is merely exposing the underlying bug which is always in a driver, hardware, or the OS.
|
||||
|
||||
## General troubleshooting steps
|
||||
|
||||
To troubleshoot stop error messages, follow these general steps:
|
||||
|
||||
1. Review the stop error code that you find in the event logs. Search online for the specific stop error codes to see whether there are any known issues, resolutions, or workarounds for the problem.
|
||||
|
||||
1. Make sure that you install the latest Windows updates, cumulative updates, and rollup updates. To verify the update status, refer to the appropriate update history for your system. For example:
|
||||
|
||||
- [Windows 10, version 21H2](https://support.microsoft.com/topic/windows-10-update-history-857b8ccb-71e4-49e5-b3f6-7073197d98fb)
|
||||
- [Windows 10, version 21H1](https://support.microsoft.com/topic/windows-10-update-history-1b6aac92-bf01-42b5-b158-f80c6d93eb11)
|
||||
- [Windows 10, version 20H2](https://support.microsoft.com/topic/windows-10-update-history-7dd3071a-3906-fa2c-c342-f7f86728a6e3)
|
||||
|
||||
1. Make sure that the BIOS and firmware are up-to-date.
|
||||
|
||||
1. Run any relevant hardware and memory tests.
|
||||
|
||||
1. Run [Microsoft Safety Scanner](/microsoft-365/security/intelligence/safety-scanner-download) or any other virus detection program that includes checks of the MBR for infections.
|
||||
|
||||
1. Make sure that there's sufficient free space on the hard disk. The exact requirement varies, but we recommend 10-15 percent free disk space.
|
||||
|
||||
1. Contact the respective hardware or software vendor to update the drivers and applications in the following scenarios:
|
||||
|
||||
- The error message indicates that a specific driver is causing the problem.
|
||||
- You're seeing an indication of a service that is starting or stopping before the crash occurred. In this situation, determine whether the service behavior is consistent across all instances of the crash.
|
||||
- You have made any software or hardware changes.
|
||||
|
||||
> [!NOTE]
|
||||
> If there are no updates available from a specific manufacturer, we recommend that you disable the related service.
|
||||
>
|
||||
> For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/topic/how-to-perform-a-clean-boot-in-windows-da2f9573-6eec-00ad-2f8a-a97a1807f3dd).
|
||||
>
|
||||
> You can disable a driver by following the steps in [How to temporarily deactivate the kernel mode filter driver in Windows](/troubleshoot/windows-server/performance/deactivate-kernel-mode-filter-driver).
|
||||
>
|
||||
> You may also want to consider the option of rolling back changes or reverting to the last-known working state. For more information, see [Roll back a device driver to a previous version](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc732648(v=ws.11)).
|
||||
|
||||
### Memory dump collection
|
||||
|
||||
To configure the system for memory dump files, follow these steps:
|
||||
|
||||
1. Select the Taskbar search box, type **Advanced system settings**, and then press **Enter**.
|
||||
|
||||
2. On the **Advanced** tab on the System Properties box, select the **Settings** button that appears in the section **Startup and Recovery**.
|
||||
|
||||
3. In the new window, select the drop-down below the option **Write debugging information**.
|
||||
|
||||
4. Choose **Automatic memory dump**.
|
||||
|
||||
5. Select **OK**.
|
||||
|
||||
6. Restart the computer for the setting to take effect.
|
||||
|
||||
7. If the server is virtualized, disable auto reboot after the memory dump file is created. This disablement lets you take a snapshot of the server in-state and also if the problem recurs.
|
||||
|
||||
The memory dump file is saved at the following locations:
|
||||
|
||||
| Dump file type | Location |
|
||||
|---------------------------------|-----------------------------------------------------|
|
||||
| (none) | `%SystemRoot%\MEMORY.DMP` (inactive, or grayed out) |
|
||||
| Small memory dump file (256 kb) | `%SystemRoot%\Minidump` |
|
||||
| Kernel memory dump file | `%SystemRoot%\MEMORY.DMP` |
|
||||
| Complete memory dump file | `%SystemRoot%\MEMORY.DMP` |
|
||||
| Automatic memory dump file | `%SystemRoot%\MEMORY.DMP` |
|
||||
| Active memory dump file | `%SystemRoot%\MEMORY.DMP` |
|
||||
|
||||
You can use the Microsoft Crash Dump File Checker (DumpChk) tool to verify that the memory dump files aren't corrupted or invalid. For more information, see the following video:
|
||||
|
||||
> [!VIDEO https://www.youtube.com/embed/xN7tOfgNKag]
|
||||
|
||||
For more information on how to use Dumpchk.exe to check your dump files, see the following articles:
|
||||
|
||||
- [Using DumpChk](/windows-hardware/drivers/debugger/dumpchk)
|
||||
- [Download DumpChk](https://developer.microsoft.com/windows/downloads/windows-10-sdk)
|
||||
|
||||
### Pagefile settings
|
||||
|
||||
For more information on pagefile settings, see the following articles:
|
||||
|
||||
- [Introduction to page files](introduction-page-file.md)
|
||||
- [How to determine the appropriate page file size for 64-bit versions of Windows](determine-appropriate-page-file-size.md)
|
||||
- [Generate a kernel or complete crash dump](generate-kernel-or-complete-crash-dump.md)
|
||||
|
||||
### Memory dump analysis
|
||||
|
||||
Finding the root cause of the crash may not be easy. Hardware problems are especially difficult to diagnose because they may cause erratic and unpredictable behavior that can manifest itself in various symptoms.
|
||||
|
||||
When a stop error occurs, you should first isolate the problematic components, and then try to cause them to trigger the stop error again. If you can replicate the problem, you can usually determine the cause.
|
||||
|
||||
You can use the tools such as Windows Software Development Kit (SDK) and symbols to diagnose dump logs. The next section discusses how to use this tool.
|
||||
|
||||
## Advanced troubleshooting steps
|
||||
|
||||
> [!NOTE]
|
||||
> Advanced troubleshooting of crash dumps can be very challenging if you aren't experienced with programming and internal Windows mechanisms. We have attempted to provide a brief insight here into some of the techniques used, including some examples. However, to really be effective at troubleshooting a crash dump, you should spend time becoming familiar with advanced debugging techniques. For a video overview, [Debugging kernel mode crashes and hangs](/shows/defrag-tools/defragtools-137-debugging-kernel-mode-dumps). Also see the advanced references listed below.
|
||||
|
||||
### Advanced debugging references
|
||||
|
||||
- [Advanced Windows Debugging, first edition book](https://www.amazon.com/Advanced-Windows-Debugging-Mario-Hewardt/dp/0321374460)
|
||||
- [Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)](/windows-hardware/drivers/debugger/)
|
||||
|
||||
### Debugging steps
|
||||
|
||||
1. Verify that the computer is set up to generate a complete memory dump file when a crash occurs. For more information, see [Method 1: Memory dump](troubleshoot-windows-freeze.md#method-1-memory-dump).
|
||||
|
||||
2. Locate the memory.dmp file in your Windows directory on the computer that is crashing, and copy that file to another computer.
|
||||
|
||||
3. On the other computer, download the [Windows 10 SDK](https://developer.microsoft.com/windows/downloads/windows-10-sdk).
|
||||
|
||||
4. Start the install and choose **Debugging Tools for Windows**. The WinDbg tool is installed.
|
||||
|
||||
5. Go to the **File** menu and select **Symbol File Path** to open the WinDbg tool and set the symbol path.
|
||||
|
||||
1. If the computer is connected to the internet, enter the [Microsoft public symbol server](/windows-hardware/drivers/debugger/microsoft-public-symbols): `https://msdl.microsoft.com/download/symbols` and select **OK**. This method is recommended.
|
||||
|
||||
1. If the computer isn't connected to the internet, specify a local [symbol path](/windows-hardware/drivers/debugger/symbol-path).
|
||||
|
||||
6. Select **Open Crash Dump**, and then open the memory.dmp file that you copied.
|
||||
|
||||
:::image type="content" alt-text="Example output in WinDbg when opening a crash dump file." source="images/windbg.png" lightbox="images/windbg.png":::
|
||||
|
||||
7. Under **Bugcheck Analysis**, select **`!analyze -v`**. The command `!analyze -v` is entered in the prompt at the bottom of the page.
|
||||
|
||||
8. A detailed bug check analysis appears.
|
||||
|
||||
:::image type="content" alt-text="An example detailed bug check analysis." source="images/bugcheck-analysis.png" lightbox="images/bugcheck-analysis.png":::
|
||||
|
||||
9. Scroll down to the **STACK_TEXT** section. There will be rows of numbers with each row followed by a colon and some text. That text should tell you what DLL is causing the crash. If applicable, it also says what service is crashing the DLL.
|
||||
|
||||
10. For more information about how to interpret the STACK_TEXT output, see [Using the !analyze Extension](/windows-hardware/drivers/debugger/using-the--analyze-extension).
|
||||
|
||||
There are many possible causes of a bug check and each case is unique. In the example provided above, the important lines that can be identified from the STACK_TEXT are 20, 21, and 22:
|
||||
|
||||
> [!NOTE]
|
||||
> HEX data is removed here and lines are numbered for clarity.
|
||||
|
||||
```console
|
||||
1 : nt!KeBugCheckEx
|
||||
2 : nt!PspCatchCriticalBreak+0xff
|
||||
3 : nt!PspTerminateAllThreads+0x1134cf
|
||||
4 : nt!PspTerminateProcess+0xe0
|
||||
5 : nt!NtTerminateProcess+0xa9
|
||||
6 : nt!KiSystemServiceCopyEnd+0x13
|
||||
7 : nt!KiServiceLinkage
|
||||
8 : nt!KiDispatchException+0x1107fe
|
||||
9 : nt!KiFastFailDispatch+0xe4
|
||||
10 : nt!KiRaiseSecurityCheckFailure+0x3d3
|
||||
11 : ntdll!RtlpHpFreeWithExceptionProtection$filt$0+0x44
|
||||
12 : ntdll!_C_specific_handler+0x96
|
||||
13 : ntdll!RtlpExecuteHandlerForException+0xd
|
||||
14 : ntdll!RtlDispatchException+0x358
|
||||
15 : ntdll!KiUserExceptionDispatch+0x2e
|
||||
16 : ntdll!RtlpHpVsContextFree+0x11e
|
||||
17 : ntdll!RtlpHpFreeHeap+0x48c
|
||||
18 : ntdll!RtlpHpFreeWithExceptionProtection+0xda
|
||||
19 : ntdll!RtlFreeHeap+0x24a
|
||||
20 : FWPolicyIOMgr!FwBinariesFree+0xa7c2
|
||||
21 : mpssvc!FwMoneisDiagEdpPolicyUpdate+0x1584f
|
||||
22 : mpssvc!FwEdpMonUpdate+0x6c
|
||||
23 : ntdll!RtlpWnfWalkUserSubscriptionList+0x29b
|
||||
24 : ntdll!RtlpWnfProcessCurrentDescriptor+0x105
|
||||
25 : ntdll!RtlpWnfNotificationThread+0x80
|
||||
26 : ntdll!TppExecuteWaitCallback+0xe1
|
||||
27 : ntdll!TppWorkerThread+0x8d0
|
||||
28 : KERNEL32!BaseThreadInitThunk+0x14
|
||||
29 : ntdll!RtlUserThreadStart+0x21
|
||||
```
|
||||
|
||||
This issue is because of the **mpssvc** service, which is a component of the Windows Firewall. The problem was repaired by disabling the firewall temporarily and then resetting firewall policies.
|
||||
|
||||
For more examples, see [Debugging examples](#debugging-examples).
|
||||
|
||||
## Video resources
|
||||
|
||||
The following videos illustrate various troubleshooting techniques for analyzing dump files.
|
||||
|
||||
- [Analyze dump file](https://www.youtube.com/watch?v=s5Vwnmi_TEY)
|
||||
- [Installing debugging tool for Windows (x64 and x86)](/shows/defrag-tools/building-your-usb-thumbdrive)
|
||||
- [Debugging kernel mode crash memory dumps](/shows/defrag-tools/defragtools-137-debugging-kernel-mode-dumps)
|
||||
- [Special pool](https://www.youtube.com/watch?v=vHXYS9KdU1k)
|
||||
|
||||
## Advanced troubleshooting using Driver Verifier
|
||||
|
||||
We estimate that about 75 percent of all stop errors are caused by faulty drivers. The Driver Verifier tool provides several methods to help you troubleshoot. These include running drivers in an isolated memory pool (without sharing memory with other components), generating extreme memory pressure, and validating parameters. If the tool encounters errors in the execution of driver code, it proactively creates an exception. It can then further examine that part of the code.
|
||||
|
||||
> [!WARNING]
|
||||
> Driver Verifier consumes lots of CPU and can slow down the computer significantly. You may also experience additional crashes. Verifier disables faulty drivers after a stop error occurs, and continues to do this until you can successfully restart the system and access the desktop. You can also expect to see several dump files created.
|
||||
>
|
||||
> Don't try to verify all the drivers at one time. This action can degrade performance and make the system unusable. It also limits the effectiveness of the tool.
|
||||
|
||||
Use the following guidelines when you use Driver Verifier:
|
||||
|
||||
- Test any "suspicious" drivers. For example, drivers that were recently updated or that are known to be problematic.
|
||||
|
||||
- If you continue to experience non-analyzable crashes, try enabling verification on all third-party and unsigned drivers.
|
||||
|
||||
- Enable concurrent verification on groups of 10-20 drivers.
|
||||
|
||||
- Additionally, if the computer can't boot into the desktop because of Driver Verifier, you can disable the tool by starting in Safe mode. This solution is because the tool can't run in Safe mode.
|
||||
|
||||
For more information, see [Driver Verifier](/windows-hardware/drivers/devtest/driver-verifier).
|
||||
|
||||
## Common Windows stop errors
|
||||
|
||||
This section doesn't contain a list of all error codes, but since many error codes have the same potential resolutions, your best bet is to follow the steps below to troubleshoot your error.
|
||||
|
||||
The following sections list general troubleshooting procedures for common stop error codes.
|
||||
|
||||
### VIDEO_ENGINE_TIMEOUT_DETECTED or VIDEO_TDR_TIMEOUT_DETECTED
|
||||
|
||||
Stop error code 0x00000141, or 0x00000117
|
||||
|
||||
Contact the vendor of the listed display driver to get an appropriate update for that driver.
|
||||
|
||||
### DRIVER_IRQL_NOT_LESS_OR_EQUAL
|
||||
|
||||
Stop error code 0x0000000D1
|
||||
|
||||
Apply the latest updates for the driver by applying the latest cumulative updates for the system through the Microsoft Update Catalog website. Update an outdated network driver. Virtualized VMware systems often run "Intel(R) PRO/1000 MT Network Connection" (e1g6032e.sys). You can download this driver from the [Intel Download Drivers & Software website](https://downloadcenter.intel.com). Contact the hardware vendor to update the network driver for a resolution. For VMware systems, use the VMware integrated network driver instead of Intel's e1g6032e.sys. For example, use VMware types `VMXNET`, `VMXNET2`, or `VMXNET3`.
|
||||
|
||||
### PAGE_FAULT_IN_NONPAGED_AREA
|
||||
|
||||
Stop error code 0x000000050
|
||||
|
||||
If a driver is identified in the stop error message, contact the manufacturer for an update. If no updates are available, disable the driver, and monitor the system for stability. Run `chkdsk /f /r` to detect and repair disk errors. Restart the system before the disk scan begins on a system partition. Contact the manufacturer for any diagnostic tools that they may provide for the hard disk subsystem. Try to reinstall any application or service that was recently installed or updated. It's possible that the crash was triggered while the system was starting applications and reading the registry for preference settings. Reinstalling the application can fix corrupted registry keys. If the problem persists, and you have run a recent system state backup, try to restore the registry hives from the backup.
|
||||
|
||||
### SYSTEM_SERVICE_EXCEPTION
|
||||
|
||||
Stop error code c000021a {Fatal System Error} The Windows SubSystem system process terminated unexpectedly with a status of 0xc0000005. The system has been shut down.
|
||||
|
||||
Use the System File Checker tool to repair missing or corrupted system files. The System File Checker lets users scan for corruptions in Windows system files and restore corrupted files. For more information, see [Use the System File Checker tool](https://support.microsoft.com/topic/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system-files-79aa86cb-ca52-166a-92a3-966e85d4094e).
|
||||
|
||||
### NTFS_FILE_SYSTEM
|
||||
|
||||
Stop error code 0x000000024
|
||||
|
||||
This stop error is commonly caused by corruption in the NTFS file system or bad blocks (sectors) on the hard disk. Corrupted drivers for hard disks (SATA or IDE) can also adversely affect the system's ability to read and write to disk. Run any hardware diagnostics that are provided by the manufacturer of the storage subsystem. Use the scan disk tool to verify that there are no file system errors. To do this step, right-click the drive that you want to scan, select Properties, select Tools, and then select the Check now button. Update the NTFS file system driver (Ntfs.sys). Apply the latest cumulative updates for the current operating system that's experiencing the problem.
|
||||
|
||||
### KMODE_EXCEPTION_NOT_HANDLED
|
||||
|
||||
Stop error code 0x0000001E
|
||||
|
||||
If a driver is identified in the stop error message, disable or remove that driver. Disable or remove any drivers or services that were recently added.
|
||||
|
||||
If the error occurs during the startup sequence, and the system partition is formatted by using the NTFS file system, you might be able to use safe mode to disable the driver in Device Manager. To disable the driver, follow these steps:
|
||||
|
||||
1. Go to **Settings > Update & security > Recovery**.
|
||||
1. Under **Advanced startup**, select **Restart now**.
|
||||
1. After your PC restarts to the **Choose an option** screen, select **Troubleshoot > Advanced options > Startup Settings > Restart**.
|
||||
1. After the computer restarts, you'll see a list of options. Press **4** or **F4** to start the computer in safe mode. If you intend to use the internet while in safe mode, press **5** or **F5** for the **Safe Mode with Networking** option.
|
||||
|
||||
### DPC_WATCHDOG_VIOLATION
|
||||
|
||||
Stop error code 0x00000133
|
||||
|
||||
This stop error code is caused by a faulty driver that doesn't complete its work within the allotted time frame in certain conditions. To help mitigate this error, collect the memory dump file from the system, and then use the Windows Debugger to find the faulty driver. If a driver is identified in the stop error message, disable the driver to isolate the problem. Check with the manufacturer for driver updates. Check the system log in Event Viewer for other error messages that might help identify the device or driver that's causing stop error 0x133. Verify that any new hardware that's installed is compatible with the installed version of Windows. For example, you can get information about required hardware at Windows 10 Specifications. If Windows Debugger is installed, and you have access to public symbols, you can load the `c:\windows\memory.dmp` file into the debugger. Then refer to [Determining the source of Bug Check 0x133 (DPC_WATCHDOG_VIOLATION) errors on Windows Server 2012](/archive/blogs/ntdebugging/determining-the-source-of-bug-check-0x133-dpc_watchdog_violation-errors-on-windows-server-2012) to find the problematic driver from the memory dump.
|
||||
|
||||
### USER_MODE_HEALTH_MONITOR
|
||||
|
||||
Stop error code 0x0000009E
|
||||
|
||||
This stop error indicates that a user-mode health check failed in a way that prevents graceful shutdown. Windows restores critical services by restarting or enabling application failover to other servers. The Clustering Service incorporates a detection mechanism that may detect unresponsiveness in user-mode components.
|
||||
|
||||
This stop error usually occurs in a clustered environment, and the indicated faulty driver is RHS.exe. Check the event logs for any storage failures to identify the failing process. Try to update the component or process that's indicated in the event logs. You should see the following event recorded:
|
||||
|
||||
- Event ID: 4870
|
||||
- Source: Microsoft-Windows-FailoverClustering
|
||||
- Description: User mode health monitoring has detected that the system isn't being responsive. The Failover cluster virtual adapter has lost contact with the Cluster Server process with a process ID '%1', for '%2' seconds. Recovery action is taken. Review the Cluster logs to identify the process and investigate which items might cause the process to hang.
|
||||
|
||||
For more information, see ["0x0000009E" Stop error on cluster nodes in a Windows Server-based multi-node failover cluster environment](https://support.microsoft.com/topic/-0x0000009e-stop-error-on-cluster-nodes-in-a-windows-server-based-multi-node-failover-cluster-environment-7e0acceb-b498-47f8-e004-96de6e497cba) Also, see the following Microsoft video [What to do if a 9E occurs](https://www.youtube.com/watch?v=vOJQEdmdSgw).
|
||||
|
||||
## Debugging examples
|
||||
|
||||
### Example 1
|
||||
|
||||
This bug check is caused by a driver hang during upgrade, resulting in a bug check D1 in NDIS.sys, which is a Microsoft driver. The **IMAGE_NAME** tells you the faulting driver, but since this driver is s Microsoft driver, it can't be replaced or removed. The resolution method is to disable the network device in device manager and try the upgrade again.
|
||||
|
||||
```console
|
||||
2: kd> !analyze -v
|
||||
*******************************************************************************
|
||||
* *
|
||||
* Bugcheck Analysis *
|
||||
* *
|
||||
*******************************************************************************
|
||||
|
||||
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
|
||||
An attempt was made to access a pageable (or completely invalid) address at an
|
||||
interrupt request level (IRQL) that is too high. This is usually
|
||||
caused by drivers using improper addresses.
|
||||
If kernel debugger is available get stack backtrace.
|
||||
Arguments:
|
||||
Arg1: 000000000011092a, memory referenced
|
||||
Arg2: 0000000000000002, IRQL
|
||||
Arg3: 0000000000000001, value 0 = read operation, 1 = write operation
|
||||
Arg4: fffff807aa74f4c4, address which referenced memory
|
||||
Debugging Details:
|
||||
------------------
|
||||
|
||||
KEY_VALUES_STRING: 1
|
||||
STACKHASH_ANALYSIS: 1
|
||||
TIMELINE_ANALYSIS: 1
|
||||
DUMP_CLASS: 1
|
||||
DUMP_QUALIFIER: 400
|
||||
SIMULTANEOUS_TELSVC_INSTANCES: 0
|
||||
SIMULTANEOUS_TELWP_INSTANCES: 0
|
||||
BUILD_VERSION_STRING: 16299.15.amd64fre.rs3_release.170928-1534
|
||||
SYSTEM_MANUFACTURER: Alienware
|
||||
SYSTEM_PRODUCT_NAME: Alienware 15 R2
|
||||
SYSTEM_SKU: Alienware 15 R2
|
||||
SYSTEM_VERSION: 1.2.8
|
||||
BIOS_VENDOR: Alienware
|
||||
BIOS_VERSION: 1.2.8
|
||||
BIOS_DATE: 01/29/2016
|
||||
BASEBOARD_MANUFACTURER: Alienware
|
||||
BASEBOARD_PRODUCT: Alienware 15 R2
|
||||
BASEBOARD_VERSION: A00
|
||||
DUMP_TYPE: 2
|
||||
BUGCHECK_P1: 11092a
|
||||
BUGCHECK_P2: 2
|
||||
BUGCHECK_P3: 1
|
||||
BUGCHECK_P4: fffff807aa74f4c4
|
||||
WRITE_ADDRESS: fffff80060602380: Unable to get MiVisibleState
|
||||
Unable to get NonPagedPoolStart
|
||||
Unable to get NonPagedPoolEnd
|
||||
Unable to get PagedPoolStart
|
||||
Unable to get PagedPoolEnd
|
||||
000000000011092a
|
||||
CURRENT_IRQL: 2
|
||||
FAULTING_IP:
|
||||
NDIS!NdisQueueIoWorkItem+4 [minio\ndis\sys\miniport.c @ 9708]
|
||||
fffff807`aa74f4c4 48895120 mov qword ptr [rcx+20h],rdx
|
||||
CPU_COUNT: 8
|
||||
CPU_MHZ: a20
|
||||
CPU_VENDOR: GenuineIntel
|
||||
CPU_FAMILY: 6
|
||||
CPU_MODEL: 5e
|
||||
CPU_STEPPING: 3
|
||||
CPU_MICROCODE: 6,5e,3,0 (F,M,S,R) SIG: BA'00000000 (cache) BA'00000000 (init)
|
||||
BLACKBOXPNP: 1 (!blackboxpnp)
|
||||
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
|
||||
BUGCHECK_STR: AV
|
||||
PROCESS_NAME: System
|
||||
ANALYSIS_SESSION_HOST: SHENDRIX-DEV0
|
||||
ANALYSIS_SESSION_TIME: 01-17-2019 11:06:05.0653
|
||||
ANALYSIS_VERSION: 10.0.18248.1001 amd64fre
|
||||
TRAP_FRAME: ffffa884c0c3f6b0 -- (.trap 0xffffa884c0c3f6b0)
|
||||
NOTE: The trap frame doesn't contain all registers.
|
||||
Some register values may be zeroed or incorrect.
|
||||
rax=fffff807ad018bf0 rbx=0000000000000000 rcx=000000000011090a
|
||||
rdx=fffff807ad018c10 rsi=0000000000000000 rdi=0000000000000000
|
||||
rip=fffff807aa74f4c4 rsp=ffffa884c0c3f840 rbp=000000002408fd00
|
||||
r8=ffffb30e0e99ea30 r9=0000000001d371c1 r10=0000000020000080
|
||||
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
|
||||
r14=0000000000000000 r15=0000000000000000
|
||||
iopl=0 nv up ei ng nz na pe nc
|
||||
NDIS!NdisQueueIoWorkItem+0x4:
|
||||
fffff807`aa74f4c4 48895120 mov qword ptr [rcx+20h],rdx ds:00000000`0011092a=????????????????
|
||||
Resetting default scope
|
||||
|
||||
LAST_CONTROL_TRANSFER: from fffff800603799e9 to fffff8006036e0e0
|
||||
|
||||
STACK_TEXT:
|
||||
ffffa884`c0c3f568 fffff800`603799e9 : 00000000`0000000a 00000000`0011092a 00000000`00000002 00000000`00000001 : nt!KeBugCheckEx [minkernel\ntos\ke\amd64\procstat.asm @ 134]
|
||||
ffffa884`c0c3f570 fffff800`60377d7d : fffff78a`4000a150 ffffb30e`03fba001 ffff8180`f0b5d180 00000000`000000ff : nt!KiBugCheckDispatch+0x69 [minkernel\ntos\ke\amd64\trap.asm @ 2998]
|
||||
ffffa884`c0c3f6b0 fffff807`aa74f4c4 : 00000000`00000002 ffff8180`f0754180 00000000`00269fb1 ffff8180`f0754180 : nt!KiPageFault+0x23d [minkernel\ntos\ke\amd64\trap.asm @ 1248]
|
||||
ffffa884`c0c3f840 fffff800`60256b63 : ffffb30e`0e18f710 ffff8180`f0754180 ffffa884`c0c3fa18 00000000`00000002 : NDIS!NdisQueueIoWorkItem+0x4 [minio\ndis\sys\miniport.c @ 9708]
|
||||
ffffa884`c0c3f870 fffff800`60257bfd : 00000000`00000008 00000000`00000000 00000000`00269fb1 ffff8180`f0754180 : nt!KiProcessExpiredTimerList+0x153 [minkernel\ntos\ke\dpcsup.c @ 2078]
|
||||
ffffa884`c0c3f960 fffff800`6037123a : 00000000`00000000 ffff8180`f0754180 00000000`00000000 ffff8180`f0760cc0 : nt!KiRetireDpcList+0x43d [minkernel\ntos\ke\dpcsup.c @ 1512]
|
||||
ffffa884`c0c3fb60 00000000`00000000 : ffffa884`c0c40000 ffffa884`c0c39000 00000000`00000000 00000000`00000000 : nt!KiIdleLoop+0x5a [minkernel\ntos\ke\amd64\idle.asm @ 166]
|
||||
|
||||
RETRACER_ANALYSIS_TAG_STATUS: Failed in getting KPCR for core 2
|
||||
THREAD_SHA1_HASH_MOD_FUNC: 5b59a784f22d4b5cbd5a8452fe39914b8fd7961d
|
||||
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 5643383f9cae3ca39073f7721b53f0c633bfb948
|
||||
THREAD_SHA1_HASH_MOD: 20edda059578820e64b723e466deea47f59bd675
|
||||
FOLLOWUP_IP:
|
||||
NDIS!NdisQueueIoWorkItem+4 [minio\ndis\sys\miniport.c @ 9708]
|
||||
fffff807`aa74f4c4 48895120 mov qword ptr [rcx+20h],rdx
|
||||
FAULT_INSTR_CODE: 20518948
|
||||
FAULTING_SOURCE_LINE: minio\ndis\sys\miniport.c
|
||||
FAULTING_SOURCE_FILE: minio\ndis\sys\miniport.c
|
||||
FAULTING_SOURCE_LINE_NUMBER: 9708
|
||||
FAULTING_SOURCE_CODE:
|
||||
9704: _In_ _Points_to_data_ PVOID WorkItemContext
|
||||
9705: )
|
||||
9706: {
|
||||
9707:
|
||||
> 9708: ((PNDIS_IO_WORK_ITEM)NdisIoWorkItemHandle)->Routine = Routine;
|
||||
9709: ((PNDIS_IO_WORK_ITEM)NdisIoWorkItemHandle)->WorkItemContext = WorkItemContext;
|
||||
9710:
|
||||
9711: IoQueueWorkItem(((PNDIS_IO_WORK_ITEM)NdisIoWorkItemHandle)->IoWorkItem,
|
||||
9712: ndisDispatchIoWorkItem,
|
||||
9713: CriticalWorkQueue,
|
||||
|
||||
SYMBOL_STACK_INDEX: 3
|
||||
SYMBOL_NAME: NDIS!NdisQueueIoWorkItem+4
|
||||
FOLLOWUP_NAME: ndiscore
|
||||
MODULE_NAME: NDIS
|
||||
IMAGE_NAME: NDIS.SYS
|
||||
DEBUG_FLR_IMAGE_TIMESTAMP: 0
|
||||
IMAGE_VERSION: 10.0.16299.99
|
||||
DXGANALYZE_ANALYSIS_TAG_PORT_GLOBAL_INFO_STR: Hybrid_FALSE
|
||||
DXGANALYZE_ANALYSIS_TAG_ADAPTER_INFO_STR: GPU0_VenId0x1414_DevId0x8d_WDDM1.3_Active;
|
||||
STACK_COMMAND: .thread ; .cxr ; kb
|
||||
BUCKET_ID_FUNC_OFFSET: 4
|
||||
FAILURE_BUCKET_ID: AV_NDIS!NdisQueueIoWorkItem
|
||||
BUCKET_ID: AV_NDIS!NdisQueueIoWorkItem
|
||||
PRIMARY_PROBLEM_CLASS: AV_NDIS!NdisQueueIoWorkItem
|
||||
TARGET_TIME: 2017-12-10T14:16:08.000Z
|
||||
OSBUILD: 16299
|
||||
OSSERVICEPACK: 98
|
||||
SERVICEPACK_NUMBER: 0
|
||||
OS_REVISION: 0
|
||||
SUITE_MASK: 784
|
||||
PRODUCT_TYPE: 1
|
||||
OSPLATFORM_TYPE: x64
|
||||
OSNAME: Windows 10
|
||||
OSEDITION: Windows 10 WinNt TerminalServer SingleUserTS Personal
|
||||
OS_LOCALE:
|
||||
USER_LCID: 0
|
||||
OSBUILD_TIMESTAMP: 2017-11-26 03:49:20
|
||||
BUILDDATESTAMP_STR: 170928-1534
|
||||
BUILDLAB_STR: rs3_release
|
||||
BUILDOSVER_STR: 10.0.16299.15.amd64fre.rs3_release.170928-1534
|
||||
ANALYSIS_SESSION_ELAPSED_TIME: 8377
|
||||
ANALYSIS_SOURCE: KM
|
||||
FAILURE_ID_HASH_STRING: km:av_ndis!ndisqueueioworkitem
|
||||
FAILURE_ID_HASH: {10686423-afa1-4852-ad1b-9324ac44ac96}
|
||||
FAILURE_ID_REPORT_LINK: https://go.microsoft.com/fwlink/?LinkID=397724&FailureHash=10686423-afa1-4852-ad1b-9324ac44ac96
|
||||
Followup: ndiscore
|
||||
---------
|
||||
```
|
||||
|
||||
### Example 2
|
||||
|
||||
In this example, a non-Microsoft driver caused page fault, so we don't have symbols for this driver. However, looking at **IMAGE_NAME** and or **MODULE_NAME** indicates it's **WwanUsbMP.sys** that caused the issue. Disconnecting the device and retrying the upgrade is a possible solution.
|
||||
|
||||
```console
|
||||
1: kd> !analyze -v
|
||||
*******************************************************************************
|
||||
* *
|
||||
* Bugcheck Analysis *
|
||||
* *
|
||||
*******************************************************************************
|
||||
|
||||
PAGE_FAULT_IN_NONPAGED_AREA (50)
|
||||
Invalid system memory was referenced. This can't be protected by try-except.
|
||||
Typically the address is just plain bad or it is pointing at freed memory.
|
||||
Arguments:
|
||||
Arg1: 8ba10000, memory referenced.
|
||||
Arg2: 00000000, value 0 = read operation, 1 = write operation.
|
||||
Arg3: 82154573, If non-zero, the instruction address which referenced the bad memory
|
||||
address.
|
||||
Arg4: 00000000, (reserved)
|
||||
|
||||
Debugging Details:
|
||||
------------------
|
||||
|
||||
*** WARNING: Unable to verify timestamp for WwanUsbMp.sys
|
||||
*** ERROR: Module load completed but symbols could not be loaded for WwanUsbMp.sys
|
||||
|
||||
KEY_VALUES_STRING: 1
|
||||
STACKHASH_ANALYSIS: 1
|
||||
TIMELINE_ANALYSIS: 1
|
||||
DUMP_CLASS: 1
|
||||
DUMP_QUALIFIER: 400
|
||||
BUILD_VERSION_STRING: 16299.15.x86fre.rs3_release.170928-1534
|
||||
MARKER_MODULE_NAME: IBM_ibmpmdrv
|
||||
SYSTEM_MANUFACTURER: LENOVO
|
||||
SYSTEM_PRODUCT_NAME: 20AWS07H00
|
||||
SYSTEM_SKU: LENOVO_MT_20AW_BU_Think_FM_ThinkPad T440p
|
||||
SYSTEM_VERSION: ThinkPad T440p
|
||||
BIOS_VENDOR: LENOVO
|
||||
BIOS_VERSION: GLET85WW (2.39 )
|
||||
BIOS_DATE: 09/29/2016
|
||||
BASEBOARD_MANUFACTURER: LENOVO
|
||||
BASEBOARD_PRODUCT: 20AWS07H00
|
||||
BASEBOARD_VERSION: Not Defined
|
||||
DUMP_TYPE: 2
|
||||
BUGCHECK_P1: ffffffff8ba10000
|
||||
BUGCHECK_P2: 0
|
||||
BUGCHECK_P3: ffffffff82154573
|
||||
BUGCHECK_P4: 0
|
||||
READ_ADDRESS: 822821d0: Unable to get MiVisibleState
|
||||
8ba10000
|
||||
FAULTING_IP:
|
||||
nt!memcpy+33 [minkernel\crts\crtw32\string\i386\memcpy.asm @ 213
|
||||
82154573 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]
|
||||
MM_INTERNAL_CODE: 0
|
||||
CPU_COUNT: 4
|
||||
CPU_MHZ: 95a
|
||||
CPU_VENDOR: GenuineIntel
|
||||
CPU_FAMILY: 6
|
||||
CPU_MODEL: 3c
|
||||
CPU_STEPPING: 3
|
||||
CPU_MICROCODE: 6,3c,3,0 (F,M,S,R) SIG: 21'00000000 (cache) 21'00000000 (init)
|
||||
BLACKBOXBSD: 1 (!blackboxbsd)
|
||||
BLACKBOXPNP: 1 (!blackboxpnp)
|
||||
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
|
||||
BUGCHECK_STR: AV
|
||||
PROCESS_NAME: System
|
||||
CURRENT_IRQL: 2
|
||||
ANALYSIS_SESSION_HOST: SHENDRIX-DEV0
|
||||
ANALYSIS_SESSION_TIME: 01-17-2019 10:54:53.0780
|
||||
ANALYSIS_VERSION: 10.0.18248.1001 amd64fre
|
||||
TRAP_FRAME: 8ba0efa8 -- (.trap 0xffffffff8ba0efa8)
|
||||
ErrCode = 00000000
|
||||
eax=8ba1759e ebx=a2bfd314 ecx=00001d67 edx=00000002 esi=8ba10000 edi=a2bfe280
|
||||
eip=82154573 esp=8ba0f01c ebp=8ba0f024 iopl=0 nv up ei pl nz ac pe nc
|
||||
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010216
|
||||
nt!memcpy+0x33:
|
||||
82154573 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]
|
||||
Resetting default scope
|
||||
LOCK_ADDRESS: 8226c6e0 -- (!locks 8226c6e0)
|
||||
Cannot get _ERESOURCE type
|
||||
Resource @ nt!PiEngineLock (0x8226c6e0) Available
|
||||
1 total locks
|
||||
PNP_TRIAGE_DATA:
|
||||
Lock address : 0x8226c6e0
|
||||
Thread Count : 0
|
||||
Thread address: 0x00000000
|
||||
Thread wait : 0x0
|
||||
|
||||
LAST_CONTROL_TRANSFER: from 82076708 to 821507e8
|
||||
|
||||
STACK_TEXT:
|
||||
8ba0ede4 82076708 00000050 8ba10000 00000000 nt!KeBugCheckEx [minkernel\ntos\ke\i386\procstat.asm @ 114]
|
||||
8ba0ee40 8207771e 8ba0efa8 8ba10000 8ba0eea0 nt!MiSystemFault+0x13c8 [minkernel\ntos\mm\mmfault.c @ 4755]
|
||||
8ba0ef08 821652ac 00000000 8ba10000 00000000 nt!MmAccessFault+0x83e [minkernel\ntos\mm\mmfault.c @ 6868]
|
||||
8ba0ef08 82154573 00000000 8ba10000 00000000 nt!_KiTrap0E+0xec [minkernel\ntos\ke\i386\trap.asm @ 5153]
|
||||
8ba0f024 86692866 a2bfd314 8ba0f094 0000850a nt!memcpy+0x33 [minkernel\crts\crtw32\string\i386\memcpy.asm @ 213]
|
||||
8ba0f040 866961bc 8ba0f19c a2bfd0e8 00000000 NDIS!ndisMSetPowerManagementCapabilities+0x8a [minio\ndis\sys\miniport.c @ 7969]
|
||||
8ba0f060 866e1f66 866e1caf adfb9000 00000000 NDIS!ndisMSetGeneralAttributes+0x23d [minio\ndis\sys\miniport.c @ 8198]
|
||||
8ba0f078 ac50c15f a2bfd0e8 0000009f 00000001 NDIS!NdisMSetMiniportAttributes+0x2b7 [minio\ndis\sys\miniport.c @ 7184]
|
||||
WARNING: Stack unwind information not available. Following frames may be wrong.
|
||||
8ba0f270 ac526f96 adfb9000 a2bfd0e8 8269b9b0 WwanUsbMp+0x1c15f
|
||||
8ba0f3cc 866e368a a2bfd0e8 00000000 8ba0f4c0 WwanUsbMp+0x36f96
|
||||
8ba0f410 867004b0 a2bfd0e8 a2bfd0e8 a2be2a70 NDIS!ndisMInvokeInitialize+0x60 [minio\ndis\sys\miniport.c @ 13834]
|
||||
8ba0f7ac 866dbc8e a2acf730 866b807c 00000000 NDIS!ndisMInitializeAdapter+0xa23 [minio\ndis\sys\miniport.c @ 601]
|
||||
8ba0f7d8 866e687d a2bfd0e8 00000000 00000000 NDIS!ndisInitializeAdapter+0x4c [minio\ndis\sys\initpnp.c @ 931]
|
||||
8ba0f800 866e90bb adfb64d8 00000000 a2bfd0e8 NDIS!ndisPnPStartDevice+0x118 [minio\ndis\sys\configm.c @ 4235]
|
||||
8ba0f820 866e8a58 adfb64d8 a2bfd0e8 00000000 NDIS!ndisStartDeviceSynchronous+0xbd [minio\ndis\sys\ndispnp.c @ 3096]
|
||||
8ba0f838 866e81df adfb64d8 8ba0f85e 8ba0f85f NDIS!ndisPnPIrpStartDevice+0xb4 [minio\ndis\sys\ndispnp.c @ 1067]
|
||||
8ba0f860 820a7e98 a2bfd030 adfb64d8 8ba0f910 NDIS!ndisPnPDispatch+0x108 [minio\ndis\sys\ndispnp.c @ 2429]
|
||||
8ba0f878 8231f07e 8ba0f8ec adf5d4c8 872e2eb8 nt!IofCallDriver+0x48 [minkernel\ntos\io\iomgr\iosubs.c @ 3149]
|
||||
8ba0f898 820b8569 820c92b8 872e2eb8 8ba0f910 nt!PnpAsynchronousCall+0x9e [minkernel\ntos\io\pnpmgr\irp.c @ 3005]
|
||||
8ba0f8cc 820c9a76 00000000 820c92b8 872e2eb8 nt!PnpSendIrp+0x67 [minkernel\ntos\io\pnpmgr\irp.h @ 286]
|
||||
8ba0f914 8234577b 872e2eb8 adf638b0 adf638b0 nt!PnpStartDevice+0x60 [minkernel\ntos\io\pnpmgr\irp.c @ 3187]
|
||||
8ba0f94c 82346cc7 872e2eb8 adf638b0 adf638b0 nt!PnpStartDeviceNode+0xc3 [minkernel\ntos\io\pnpmgr\start.c @ 1712]
|
||||
8ba0f96c 82343c68 00000000 a2bdb3d8 adf638b0 nt!PipProcessStartPhase1+0x4d [minkernel\ntos\io\pnpmgr\start.c @ 114]
|
||||
8ba0fb5c 824db885 8ba0fb80 00000000 00000000 nt!PipProcessDevNodeTree+0x386 [minkernel\ntos\io\pnpmgr\enum.c @ 6129]
|
||||
8ba0fb88 8219571b 85852520 8c601040 8226ba90 nt!PiRestartDevice+0x91 [minkernel\ntos\io\pnpmgr\enum.c @ 4743]
|
||||
8ba0fbe8 820804af 00000000 00000000 8c601040 nt!PnpDeviceActionWorker+0xdb4b7 [minkernel\ntos\io\pnpmgr\action.c @ 674]
|
||||
8ba0fc38 8211485c 85852520 421de295 00000000 nt!ExpWorkerThread+0xcf [minkernel\ntos\ex\worker.c @ 4270]
|
||||
8ba0fc70 82166785 820803e0 85852520 00000000 nt!PspSystemThreadStartup+0x4a [minkernel\ntos\ps\psexec.c @ 7756]
|
||||
8ba0fc88 82051e07 85943940 8ba0fcd8 82051bb9 nt!KiThreadStartup+0x15 [minkernel\ntos\ke\i386\threadbg.asm @ 82]
|
||||
8ba0fc94 82051bb9 8b9cc600 8ba10000 8ba0d000 nt!KiProcessDeferredReadyList+0x17 [minkernel\ntos\ke\thredsup.c @ 5309]
|
||||
8ba0fcd8 00000000 00000000 00000000 00000000 nt!KeSetPriorityThread+0x249 [minkernel\ntos\ke\thredobj.c @ 3881]
|
||||
|
||||
|
||||
RETRACER_ANALYSIS_TAG_STATUS: Failed in getting KPCR for core 1
|
||||
THREAD_SHA1_HASH_MOD_FUNC: e029276c66aea80ba36903e89947127118d31128
|
||||
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 012389f065d31c8eedd6204846a560146a38099b
|
||||
THREAD_SHA1_HASH_MOD: 44dc639eb162a28d47eaeeae4afe6f9eeccced3d
|
||||
FOLLOWUP_IP:
|
||||
WwanUsbMp+1c15f
|
||||
ac50c15f 8bf0 mov esi,eax
|
||||
FAULT_INSTR_CODE: f33bf08b
|
||||
SYMBOL_STACK_INDEX: 8
|
||||
SYMBOL_NAME: WwanUsbMp+1c15f
|
||||
FOLLOWUP_NAME: MachineOwner
|
||||
MODULE_NAME: WwanUsbMp
|
||||
IMAGE_NAME: WwanUsbMp.sys
|
||||
DEBUG_FLR_IMAGE_TIMESTAMP: 5211bb0c
|
||||
DXGANALYZE_ANALYSIS_TAG_PORT_GLOBAL_INFO_STR: Hybrid_FALSE
|
||||
DXGANALYZE_ANALYSIS_TAG_ADAPTER_INFO_STR: GPU0_VenId0x1414_DevId0x8d_WDDM1.3_NotActive;GPU1_VenId0x8086_DevId0x416_WDDM1.3_Active_Post;
|
||||
STACK_COMMAND: .thread ; .cxr ; kb
|
||||
BUCKET_ID_FUNC_OFFSET: 1c15f
|
||||
FAILURE_BUCKET_ID: AV_R_INVALID_WwanUsbMp!unknown_function
|
||||
BUCKET_ID: AV_R_INVALID_WwanUsbMp!unknown_function
|
||||
PRIMARY_PROBLEM_CLASS: AV_R_INVALID_WwanUsbMp!unknown_function
|
||||
TARGET_TIME: 2018-02-12T11:33:51.000Z
|
||||
OSBUILD: 16299
|
||||
OSSERVICEPACK: 15
|
||||
SERVICEPACK_NUMBER: 0
|
||||
OS_REVISION: 0
|
||||
SUITE_MASK: 272
|
||||
PRODUCT_TYPE: 1
|
||||
OSPLATFORM_TYPE: x86
|
||||
OSNAME: Windows 10
|
||||
OSEDITION: Windows 10 WinNt TerminalServer SingleUserTS
|
||||
OS_LOCALE:
|
||||
USER_LCID: 0
|
||||
OSBUILD_TIMESTAMP: 2017-09-28 18:32:28
|
||||
BUILDDATESTAMP_STR: 170928-1534
|
||||
BUILDLAB_STR: rs3_release
|
||||
BUILDOSVER_STR: 10.0.16299.15.x86fre.rs3_release.170928-1534
|
||||
ANALYSIS_SESSION_ELAPSED_TIME: 162bd
|
||||
ANALYSIS_SOURCE: KM
|
||||
FAILURE_ID_HASH_STRING: km:av_r_invalid_wwanusbmp!unknown_function
|
||||
FAILURE_ID_HASH: {31e4d053-0758-e43a-06a7-55f69b072cb3}
|
||||
FAILURE_ID_REPORT_LINK: https://go.microsoft.com/fwlink/?LinkID=397724&FailureHash=31e4d053-0758-e43a-06a7-55f69b072cb3
|
||||
|
||||
Followup: MachineOwner
|
||||
---------
|
||||
|
||||
ReadVirtual: 812d1248 not properly sign extended
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
[Bug check code reference](/windows-hardware/drivers/debugger/bug-check-code-reference2)
|
@ -1,117 +0,0 @@
|
||||
---
|
||||
title: Troubleshoot TCP/IP connectivity
|
||||
description: Learn how to troubleshoot TCP/IP connectivity and what you should do if you come across TCP reset in a network capture.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 12/06/2018
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Troubleshoot TCP/IP connectivity
|
||||
|
||||
You might come across connectivity errors on the application end or timeout errors. The following are the most common scenarios:
|
||||
- Application connectivity to a database server
|
||||
- SQL timeout errors
|
||||
- BizTalk application timeout errors
|
||||
- Remote Desktop Protocol (RDP) failures
|
||||
- File share access failures
|
||||
- General connectivity
|
||||
|
||||
When you suspect that the issue is on the network, you collect a network trace. The network trace would then be filtered. During troubleshooting connectivity errors, you might come across TCP reset in a network capture that could indicate a network issue.
|
||||
|
||||
* TCP is defined as connection-oriented and reliable protocol. One of the ways in which TCP ensures reliability is through the handshake process. Establishing a TCP session would begin with a three-way handshake, followed by data transfer, and then a four-way closure. The four-way closure where both sender and receiver agree on closing the session is termed as *graceful closure*. After the four-way closure, the server will allow 4 minutes of time (default), during which any pending packets on the network are to be processed, this period is the TIME_WAIT state. After the TIME_WAIT state completes, all the resources allocated for this connection are released.
|
||||
|
||||
* TCP reset is an abrupt closure of the session; it causes the resources allocated to the connection to be immediately released and all other information about the connection is erased.
|
||||
|
||||
* TCP reset is identified by the RESET flag in the TCP header set to `1`.
|
||||
|
||||
A network trace on the source and the destination helps you to determine the flow of the traffic and see at what point the failure is observed.
|
||||
|
||||
The following sections describe some of the scenarios when you'll see a RESET.
|
||||
|
||||
## Packet drops
|
||||
|
||||
When one TCP peer is sending out TCP packets for which there's no response received from the other end, the TCP peer would end up retransmitting the data and when there's no response received, it would end the session by sending an ACK RESET (thisACK RESET means that the application acknowledges whatever data is exchanged so far, but because of packet drop, the connection is closed).
|
||||
|
||||
The simultaneous network traces on source and destination will help you verify this behavior where on the source side you would see the packets being retransmitted and on the destination none of these packets are seen. This scenario denotes that the network device between the source and destination is dropping the packets.
|
||||
|
||||
If the initial TCP handshake is failing because of packet drops, then you would see that the TCP SYN packet is retransmitted only three times.
|
||||
|
||||
Source side connecting on port 445:
|
||||
|
||||

|
||||
|
||||
Destination side: applying the same filter, you don't see any packets.
|
||||
|
||||

|
||||
|
||||
For the rest of the data, TCP will retransmit the packets five times.
|
||||
|
||||
**Source 192.168.1.62 side trace:**
|
||||
|
||||

|
||||
|
||||
**Destination 192.168.1.2 side trace:**
|
||||
|
||||
You wouldn't see any of the above packets. Engage your network team to investigate with the different hops and see if any of them are potentially causing drops in the network.
|
||||
|
||||
If you're seeing that the SYN packets are reaching the destination, but the destination is still not responding, then verify if the port that you're trying to connect to is in the listening state. (Netstat output will help). If the port is listening and still there's no response, then there could be a wfp drop.
|
||||
|
||||
## Incorrect parameter in the TCP header
|
||||
|
||||
You see this behavior when the packets are modified in the network by middle devices and TCP on the receiving end is unable to accept the packet, such as the sequence number being modified, or packets being replayed by middle device by changing the sequence number. Again, the simultaneous network trace on the source and destination will be able to tell you if any of the TCP headers are modified. Start by comparing the source trace and destination trace, you'll be able to notice if there's a change in the packets itself or if any new packets are reaching the destination on behalf of the source.
|
||||
|
||||
In this case, you'll again need help from the network team to identify any device that's modifying packets or replaying packets to the destination. The most common ones are RiverBed devices or WAN accelerators.
|
||||
|
||||
|
||||
## Application side reset
|
||||
|
||||
When you've identified that the resets aren't due to retransmits or incorrect parameter or packets being modified with the help of network trace, then you've narrowed it down to application level reset.
|
||||
|
||||
The application resets are the ones where you see the Acknowledgment flag set to `1` along with the reset flag. This setting would mean that the server is acknowledging the receipt of the packet but for some reason it will not accept the connection. This stage is when the application that received the packet didn't like something it received.
|
||||
|
||||
In the below screenshots, you see that the packets seen on the source and the destination are the same without any modification or any drops, but you see an explicit reset sent by the destination to the source.
|
||||
|
||||
**Source Side**
|
||||
|
||||

|
||||
|
||||
**On the destination-side trace**
|
||||
|
||||

|
||||
|
||||
You also see an ACK+RST flag packet in a case when the TCP establishment packet SYN is sent out. The TCP SYN packet is sent when the client wants to connect on a particular port, but if the destination/server for some reason doesn't want to accept the packet, it would send an ACK+RST packet.
|
||||
|
||||

|
||||
|
||||
The application that's causing the reset (identified by port numbers) should be investigated to understand what is causing it to reset the connection.
|
||||
|
||||
>[!Note]
|
||||
>The above information is about resets from a TCP standpoint and not UDP. UDP is a connectionless protocol and the packets are sent unreliably. You wouldn't see retransmission or resets when using UDP as a transport protocol. However, UDP makes use of ICMP as a error reporting protocol. When you've the UDP packet sent out on a port and the destination does not have port listed, you'll see the destination sending out **ICMP Destination host unreachable: Port unreachable** message immediately after the UDP packet
|
||||
|
||||
|
||||
```
|
||||
10.10.10.1 10.10.10.2 UDP UDP:SrcPort=49875,DstPort=3343
|
||||
|
||||
10.10.10.2 10.10.10.1 ICMP ICMP:Destination Unreachable Message, Port Unreachable,10.10.10.2:3343
|
||||
```
|
||||
|
||||
|
||||
During the troubleshooting connectivity issue, you might also see in the network trace that a machine receives packets but doesn't respond to. In such cases, there could be a drop at the server level. To understand whether the local firewall is dropping the packet, enable the firewall auditing on the machine.
|
||||
|
||||
```
|
||||
auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
|
||||
```
|
||||
|
||||
You can then review the Security event logs to see for a packet drop on a particular port-IP and a filter ID associated with it.
|
||||
|
||||

|
||||
|
||||
Now, run the command `netsh wfp show state`, this execution will generate a wfpstate.xml file. After you open this file and filter for the ID that you find in the above event (2944008), you'll be able to see a firewall rule name that's associated with this ID that's blocking the connection.
|
||||
|
||||

|
@ -1,69 +0,0 @@
|
||||
---
|
||||
title: Collect data using Network Monitor
|
||||
description: Learn how to run Network Monitor to collect data for troubleshooting TCP/IP connectivity.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 01/27/2022
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Collect data using Network Monitor
|
||||
|
||||
In this article, you'll learn how to use Microsoft Network Monitor 3.4, which is a tool for capturing network traffic.
|
||||
|
||||
> [!NOTE]
|
||||
> Network Monitor is the archived protocol analyzer and is no longer under development. Also, Microsoft Message Analyzer (MMA) was retired and its download packages were removed from microsoft.com sites on November 25, 2019. There is currently no Microsoft replacement for Microsoft Message Analyzer in development at this time. For similar functionality, consider using another, non-Microsoft network protocol analyzer tool. For more information, see [Microsoft Message Analyzer Operating Guide](/message-analyzer/microsoft-message-analyzer-operating-guide).
|
||||
|
||||
To get started, [download Network Monitor tool](https://www.microsoft.com/download/details.aspx?id=4865). When you install Network Monitor, it installs its driver and hooks it to all the network adapters installed on the device. You can see the same on the adapter properties, as shown in the following image:
|
||||
|
||||

|
||||
|
||||
When the driver gets hooked to the network interface card (NIC) during installation, the NIC is reinitialized, which might cause a brief network glitch.
|
||||
|
||||
**To capture traffic**
|
||||
|
||||
1. Run netmon in an elevated status by choosing **Run as Administrator**.
|
||||
|
||||

|
||||
|
||||
2. Network Monitor opens with all network adapters displayed. Select the network adapters where you want to capture traffic, click **New Capture**, and then select **Start**.
|
||||
|
||||

|
||||
|
||||
3. Reproduce the issue, and you'll see that Network Monitor grabs the packets on the wire.
|
||||
|
||||

|
||||
|
||||
4. Select **Stop**, and go to **File > Save as** to save the results. By default, the file will be saved as a ".cap" file.
|
||||
|
||||
The saved file has captured all the traffic that is flowing to and from the selected network adapters on the local computer. However, your interest is only to look into the traffic/packets that are related to the specific connectivity problem you're facing. So you'll need to filter the network capture to see only the related traffic.
|
||||
|
||||
**Commonly used filters**
|
||||
|
||||
- Ipv4.address=="client ip" and ipv4.address=="server ip"
|
||||
- Tcp.port==
|
||||
- Udp.port==
|
||||
- Icmp
|
||||
- Arp
|
||||
- Property.tcpretranmits
|
||||
- Property.tcprequestfastretransmits
|
||||
- Tcp.flags.syn==1
|
||||
|
||||
>[!TIP]
|
||||
>If you want to filter the capture for a specific field and do not know the syntax for that filter, just right-click that field and select **Add *the selected value* to Display Filter**.
|
||||
|
||||
Network traces that are collected using the **netsh** commands built in to Windows are of the extension "ETL". However, these ETL files can be opened using Network Monitor for further analysis.
|
||||
|
||||
## More information
|
||||
|
||||
[Intro to Filtering with Network Monitor 3.0](/archive/blogs/netmon/intro-to-filtering-with-network-monitor-3-0)<br>
|
||||
[Network Monitor Filter Examples](https://blogs.technet.microsoft.com/rmilne/2016/08/11/network-monitor-filter-examples/)<br>
|
||||
[Network Monitor Wireless Filtering](https://social.technet.microsoft.com/wiki/contents/articles/1900.network-monitor-wireless-filtering.aspx)<br>
|
||||
[Network Monitor TCP Filtering](https://social.technet.microsoft.com/wiki/contents/articles/1134.network-monitor-tcp-filtering.aspx)<br>
|
||||
[Network Monitor Conversation Filtering](https://social.technet.microsoft.com/wiki/contents/articles/1829.network-monitor-conversation-filtering.aspx)<br>
|
||||
[How to setup and collect network capture using Network Monitor tool](/archive/blogs/msindiasupp/how-to-setup-and-collect-network-capture-using-network-monitor-tool)<br>
|
@ -1,199 +0,0 @@
|
||||
---
|
||||
title: Troubleshoot port exhaustion issues
|
||||
description: Learn how to troubleshoot port exhaustion issues. Port exhaustion occurs when all the ports on a machine are used.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 02/07/2022
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Troubleshoot port exhaustion issues
|
||||
|
||||
TCP and UDP protocols work based on port numbers used for establishing connection. Any application or a service that needs to establish a TCP/UDP connection will require a port on its side.
|
||||
|
||||
There are two types of ports:
|
||||
|
||||
- *Ephemeral ports*, which are dynamic ports, are the set of ports that every machine by default will have them to make an outbound connection.
|
||||
- *Well-known ports* are the defined port for a particular application or service. For example, file server service is on port 445, HTTPS is 443, HTTP is 80, and RPC is 135. Custom application will also have their defined port numbers.
|
||||
|
||||
When a connection is being established with an application or service, client devices use an ephemeral port from the device to connect to a well-known port defined for that application or service. A browser on a client machine will use an ephemeral port to connect to `https://www.microsoft.com` on port 443.
|
||||
|
||||
In a scenario where the same browser is creating many connections to multiple websites, for any new connection that the browser is attempting, an ephemeral port is used. After some time, you'll notice that the connections will start to fail and one high possibility for this failure would be because the browser has used all the available ports to make connections outside and any new attempt to establish a connection will fail as there are no more ports available. When all the ports on a machine are used, we term it as *port exhaustion*.
|
||||
|
||||
## Default dynamic port range for TCP/IP
|
||||
|
||||
To comply with [Internet Assigned Numbers Authority (IANA)](http://www.iana.org/assignments/port-numbers) recommendations, Microsoft has increased the dynamic client port range for outgoing connections. The new default start port is **49152**, and the new default end port is **65535**. This increase is a change from the configuration of earlier versions of Windows that used a default port range of **1025** through **5000**.
|
||||
|
||||
You can view the dynamic port range on a computer by using the following netsh commands:
|
||||
|
||||
- `netsh int ipv4 show dynamicport tcp`
|
||||
- `netsh int ipv4 show dynamicport udp`
|
||||
- `netsh int ipv6 show dynamicport tcp`
|
||||
- `netsh int ipv6 show dynamicport udp`
|
||||
|
||||
|
||||
The range is set separately for each transport (TCP or UDP). The port range is now a range that has a starting point and an ending point. Microsoft customers who deploy servers that are running Windows Server may have problems that affect RPC communication between servers if firewalls are used on the internal network. In these situations, we recommend that you reconfigure the firewalls to allow traffic between servers in the dynamic port range of **49152** through **65535**. This range is in addition to well-known ports that are used by services and applications. Or, the port range that is used by the servers can be modified on each server. You adjust this range by using the netsh command, as follows. The above command sets the dynamic port range for TCP.
|
||||
|
||||
```console
|
||||
netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=number num=range
|
||||
```
|
||||
|
||||
The start port is number, and the total number of ports is range. The following are sample commands:
|
||||
|
||||
- `netsh int ipv4 set dynamicport tcp start=10000 num=1000`
|
||||
- `netsh int ipv4 set dynamicport udp start=10000 num=1000`
|
||||
- `netsh int ipv6 set dynamicport tcp start=10000 num=1000`
|
||||
- `netsh int ipv6 set dynamicport udp start=10000 num=1000`
|
||||
|
||||
These sample commands set the dynamic port range to start at port 10000 and to end at port 10999 (1000 ports). The minimum range of ports that can be set is 255. The minimum start port that can be set is 1025. The maximum end port (based on the range being configured) can't exceed 65535. To duplicate the default behavior of Windows Server 2003, use 1025 as the start port, and then use 3976 as the range for both TCP and UDP. This usage pattern results in a start port of 1025 and an end port of 5000.
|
||||
|
||||
Specifically, about outbound connections as incoming connections won't require an Ephemeral port for accepting connections.
|
||||
|
||||
Since outbound connections start to fail, you'll see many instances of the below behaviors:
|
||||
|
||||
- Unable to sign in to the machine with domain credentials, however sign-in with local account works. Domain sign in will require you to contact the DC for authentication, which is again an outbound connection. If you've cache credentials set, then domain sign-in might still work.
|
||||
|
||||
:::image type="content" alt-text="Screenshot of error for NETLOGON in Event Viewer." source="images/tcp-ts-14.png" lightbox="images/tcp-ts-14.png":::
|
||||
|
||||
- Group Policy update failures:
|
||||
|
||||

|
||||
|
||||
- File shares are inaccessible:
|
||||
|
||||

|
||||
|
||||
- RDP from the affected server fails:
|
||||
|
||||

|
||||
|
||||
- Any other application running on the machine will start to give out errors
|
||||
|
||||
Reboot of the server will resolve the issue temporarily, but you would see all the symptoms come back after a period of time.
|
||||
|
||||
If you suspect that the machine is in a state of port exhaustion:
|
||||
|
||||
1. Try making an outbound connection. From the server/machine, access a remote share or try an RDP to another server or telnet to a server on a port. If the outbound connection fails for all of these options, go to the next step.
|
||||
|
||||
2. Open event viewer and under the system logs, look for the events that clearly indicate the current state:
|
||||
|
||||
1. **Event ID 4227**
|
||||
|
||||
:::image type="content" alt-text="Screenshot of event ID 4227 in Event Viewer." source="images/tcp-ts-18.png" lightbox="images/tcp-ts-18.png":::
|
||||
|
||||
1. **Event ID 4231**
|
||||
|
||||
:::image type="content" alt-text="Screenshot of event ID 4231 in Event Viewer." source="images/tcp-ts-19.png" lightbox="images/tcp-ts-19.png":::
|
||||
|
||||
3. Collect a `netstat -anob` output from the server. The netstat output will show you a huge number of entries for TIME_WAIT state for a single PID.
|
||||
|
||||

|
||||
|
||||
After a graceful closure or an abrupt closure of a session, after a period of 4 minutes (default), the port used by the process or application would be released back to the available pool. During this 4 minutes, the TCP connection state will be TIME_WAIT state. In a situation where you suspect port exhaustion, an application or process won't be able to release all the ports that it has consumed and will remain in the TIME_WAIT state.
|
||||
|
||||
You might also see CLOSE_WAIT state connections in the same output; however, CLOSE_WAIT state is a state when one side of the TCP peer has no more data to send (FIN sent) but is able to receive data from the other end. This state doesn't necessarily indicate port exhaustion.
|
||||
|
||||
> [!Note]
|
||||
> Having huge connections in TIME_WAIT state doesn't always indicate that the server is currently out of ports unless the first two points are verified. Having lot of TIME_WAIT connections does indicate that the process is creating lot of TCP connections and may eventually lead to port exhaustion.
|
||||
>
|
||||
> Netstat has been updated in Windows 10 with the addition of the **-Q** switch to show ports that have transitioned out of time wait as in the BOUND state. An update for Windows 8.1 and Windows Server 2012 R2 has been released that contains this functionality. The PowerShell cmdlet `Get-NetTCPConnection` in Windows 10 also shows these BOUND ports.
|
||||
>
|
||||
> Until 10/2016, netstat was inaccurate. Fixes for netstat, back-ported to 2012 R2, allowed Netstat.exe and Get-NetTcpConnection to correctly report TCP or UDP port usage in Windows Server 2012 R2. See [Windows Server 2012 R2: Ephemeral ports hotfixes](https://support.microsoft.com/help/3123245/update-improves-port-exhaustion-identification-in-windows-server-2012) to learn more.
|
||||
|
||||
4. Open a command prompt in admin mode and run the below command
|
||||
|
||||
```console
|
||||
Netsh trace start scenario=netconnection capture=yes tracefile=c:\Server.etl
|
||||
```
|
||||
|
||||
5. Open the server.etl file with [Network Monitor](troubleshoot-tcpip-netmon.md) and in the filter section, apply the filter **Wscore_MicrosoftWindowsWinsockAFD.AFD_EVENT_BIND.Status.LENTStatus.Code == 0x209**. You should see entries that say **STATUS_TOO_MANY_ADDRESSES**. If you don't find any entries, then the server is still not out of ports. If you find them, then you can confirm that the server is under port exhaustion.
|
||||
|
||||
## Troubleshoot Port exhaustion
|
||||
|
||||
The key is to identify which process or application is using all the ports. Below are some of the tools that you can use to isolate to one single process
|
||||
|
||||
### Method 1
|
||||
|
||||
Start by looking at the netstat output. If you're using Windows 10 or Windows Server 2016, then you can run the command `netstat -anobq` and check for the process ID that has maximum entries as BOUND. Alternately, you can also run the below PowerShell command to identify the process:
|
||||
|
||||
```powershell
|
||||
Get-NetTCPConnection | Group-Object -Property State, OwningProcess | Select -Property Count, Name, @{Name="ProcessName";Expression={(Get-Process -PID ($_.Name.Split(',')[-1].Trim(' '))).Name}}, Group | Sort Count -Descending
|
||||
```
|
||||
|
||||
Most port leaks are caused by user-mode processes not correctly closing the ports when an error was encountered. At the user-mode level, ports (actually sockets) are handles. Both **TaskManager** and **ProcessExplorer** are able to display handle counts, which allows you to identify which process is consuming all of the ports.
|
||||
|
||||
For Windows 7 and Windows Server 2008 R2, you can update your PowerShell version to include the above cmdlet.
|
||||
|
||||
### Method 2
|
||||
|
||||
If method 1 doesn't help you identify the process (prior to Windows 10 and Windows Server 2012 R2), then have a look at Task Manager:
|
||||
|
||||
1. Add a column called “handles” under details/processes.
|
||||
2. Sort the column handles to identify the process with the highest number of handles. Usually the process with handles greater than 3000 could be the culprit except for processes like System, lsass.exe, store.exe, sqlsvr.exe.
|
||||
|
||||

|
||||
|
||||
3. If any other process than these processes has a higher number, stop that process and then try to sign in using domain credentials and see if it succeeds.
|
||||
|
||||
### Method 3
|
||||
|
||||
If Task Manager didn't help you identify the process, then use Process Explorer to investigate the issue.
|
||||
|
||||
Steps to use Process explorer:
|
||||
|
||||
1. [Download Process Explorer](/sysinternals/downloads/process-explorer) and run it **Elevated**.
|
||||
2. Alt + click the column header, select **Choose Columns**, and on the **Process Performance** tab, add **Handle Count**.
|
||||
3. Select **View \ Show Lower Pane**.
|
||||
4. Select **View \ Lower Pane View \ Handles**.
|
||||
5. Click the **Handles** column to sort by that value.
|
||||
6. Examine the processes with higher handle counts than the rest (will likely be over 10,000 if you can't make outbound connections).
|
||||
7. Click to highlight one of the processes with a high handle count.
|
||||
8. In the lower pane, the handles listed as below are sockets. (Sockets are technically file handles).
|
||||
|
||||
File \Device\AFD
|
||||
|
||||
:::image type="content" alt-text="Screenshot of Process Explorer." source="images/tcp-ts-22.png" lightbox="images/tcp-ts-22.png":::
|
||||
|
||||
10. Some are normal, but large numbers of them aren't (hundreds to thousands). Close the process in question. If that restores outbound connectivity, then you've further proven that the app is the cause. Contact the vendor of that app.
|
||||
|
||||
Finally, if the above methods didn't help you isolate the process, we suggest you collect a complete memory dump of the machine in the issue state. The dump will tell you which process has the maximum handles.
|
||||
|
||||
As a workaround, rebooting the computer will get it back in normal state and would help you resolve the issue for the time being. However, when a reboot is impractical, you can also consider increasing the number of ports on the machine using the below commands:
|
||||
|
||||
```console
|
||||
netsh int ipv4 set dynamicport tcp start=10000 num=1000
|
||||
```
|
||||
|
||||
This command will set the dynamic port range to start at port 10000 and to end at port 10999 (1000 ports). The minimum range of ports that can be set is 255. The minimum start port that can be set is 1025. The maximum end port (based on the range being configured) can't exceed 65535.
|
||||
|
||||
>[!NOTE]
|
||||
>Note that increasing the dynamic port range is not a permanent solution but only temporary. You'll need to track down which process/processors are consuming max number of ports and troubleshoot from that process standpoint as to why it's consuming such high number of ports.
|
||||
|
||||
For Windows 7 and Windows Server 2008 R2, you can use the below script to collect the netstat output at defined frequency. From the outputs, you can see the port usage trend.
|
||||
|
||||
```console
|
||||
@ECHO ON
|
||||
set v=%1
|
||||
:loop
|
||||
set /a v+=1
|
||||
ECHO %date% %time% >> netstat.txt
|
||||
netstat -ano >> netstat.txt
|
||||
|
||||
PING 1.1.1.1 -n 1 -w 60000 >NUL
|
||||
|
||||
goto loop
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
## Useful links
|
||||
|
||||
- [Port Exhaustion and You!](/archive/blogs/askds/port-exhaustion-and-you-or-why-the-netstat-tool-is-your-friend) - this article gives a detail on netstat states and how you can use netstat output to determine the port status
|
||||
- [Detecting ephemeral port exhaustion](/archive/blogs/yongrhee/windows-server-2012-r2-ephemeral-ports-a-k-a-dynamic-ports-hotfixes): this article has a script that will run in a loop to report the port status. (Applicable for Windows 2012 R2, Windows 8, Windows 10 and Windows 11)
|
||||
|
@ -1,192 +0,0 @@
|
||||
---
|
||||
title: Troubleshoot Remote Procedure Call (RPC) errors
|
||||
description: Learn how to troubleshoot Remote Procedure Call (RPC) errors when connecting to Windows Management Instrumentation (WMI), SQL Server, or during a remote connection.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 12/06/2018
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Troubleshoot Remote Procedure Call (RPC) errors
|
||||
|
||||
You might encounter an **RPC server unavailable** error when connecting to Windows Management Instrumentation (WMI), SQL Server, during a remote connection, or for some Microsoft Management Console (MMC) snap-ins. The following image is an example of an RPC error.
|
||||
|
||||

|
||||
|
||||
This message is a commonly encountered error message in the networking world and one can lose hope fast without trying to understand much, as to what is happening ‘under the hood’.
|
||||
|
||||
Before getting in to troubleshooting the <em>*RPC server unavailable</em>- error, let’s first understand basics about the error. There are a few important terms to understand:
|
||||
|
||||
- Endpoint mapper – a service listening on the server, which guides client apps to server apps by port and UUID.
|
||||
- Tower – describes the RPC protocol, to allow the client and server to negotiate a connection.
|
||||
- Floor – the contents of a tower with specific data like ports, IP addresses, and identifiers.
|
||||
- UUID – a well-known GUID that identifies the RPC application. The UUID is what you use to see a specific kind of RPC application conversation, as there are likely to be many.
|
||||
- Opnum – the identifier of a function that the client wants the server to execute. It’s just a hexadecimal number, but a good network analyzer will translate the function for you. If neither knows, your application vendor must tell you.
|
||||
- Port – the communication endpoints for the client and server applications.
|
||||
- Stub data – the information given to functions and data exchanged between the client and server. This data is the payload, the important part.
|
||||
|
||||
>[!Note]
|
||||
> A lot of the above information is used in troubleshooting, the most important is the Dynamic RPC port number you get while talking to EPM.
|
||||
|
||||
## How the connection works
|
||||
|
||||
Client A wants to execute some functions or wants to make use of a service running on the remote server, will first establish the connection with the Remote Server by doing a three-way handshake.
|
||||
|
||||
:::image type="content" alt-text="Diagram illustrating connection to remote server." source="images/rpc-flow.png" lightbox="images/rpc-flow.png":::
|
||||
|
||||
RPC ports can be given from a specific range as well.
|
||||
### Configure RPC dynamic port allocation
|
||||
|
||||
Remote Procedure Call (RPC) dynamic port allocation is used by server applications and remote administration applications such as Dynamic Host Configuration Protocol (DHCP) Manager, Windows Internet Name Service (WINS) Manager, and so on. RPC dynamic port allocation will instruct the RPC program to use a particular random port in the range configured for TCP and UDP, based on the implementation of the operating system used.
|
||||
|
||||
Customers using firewalls may want to control which ports RPC is using so that their firewall router can be configured to forward only these Transmission Control Protocol (UDP and TCP) ports. Many RPC servers in Windows let you specify the server port in custom configuration items such as registry entries. When you can specify a dedicated server port, you know what traffic flows between the hosts across the firewall, and you can define what traffic is allowed in a more directed manner.
|
||||
|
||||
As a server port, choose a port outside of the range you may want to specify below. You can find a comprehensive list of server ports that are used in Windows and major Microsoft products in the article [Service overview and network port requirements for Windows](/troubleshoot/windows-server/networking/service-overview-and-network-port-requirements).
|
||||
The article also lists the RPC servers and which RPC servers can be configured to use custom server ports beyond the facilities the RPC runtime offers.
|
||||
|
||||
Some firewalls also allow for UUID filtering where it learns from an RPC Endpoint Mapper request for an RPC interface UUID. The response has the server port number, and a subsequent RPC Bind on this port is then allowed to pass.
|
||||
|
||||
With Registry Editor, you can modify the following parameters for RPC. The RPC Port key values discussed below are all located in the following key in the registry:
|
||||
|
||||
**HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\ Entry name Data Type**
|
||||
|
||||
**Ports REG_MULTI_SZ**
|
||||
|
||||
- Specifies a set of IP port ranges consisting of either all the ports available from the Internet or all the ports not available from the Internet. Each string represents a single port or an inclusive set of ports. For example, a single port may be represented by **5984**, and a set of ports may be represented by **5000-5100**. If any entries are outside the range of 0 to 65535, or if any string can't be interpreted, the RPC runtime treats the entire configuration as invalid.
|
||||
|
||||
**PortsInternetAvailable REG_SZ Y or N (not case-sensitive)**
|
||||
|
||||
- If Y, the ports listed in the Ports key are all the Internet-available ports on that computer. If N, the ports listed in the Ports key are all those ports that aren't Internet-available.
|
||||
|
||||
**UseInternetPorts REG_SZ ) Y or N (not case-sensitive)**
|
||||
|
||||
- Specifies the system default policy.
|
||||
- If Y, the processes using the default will be assigned ports from the set of Internet-available ports, as defined previously.
|
||||
- If N, the processes using the default will be assigned ports from the set of intranet-only ports.
|
||||
|
||||
**Example:**
|
||||
|
||||
In this example, ports 5000 through 6000 inclusive have been arbitrarily selected to help illustrate how the new registry key can be configured. This example isn't a recommendation of a minimum number of ports needed for any particular system.
|
||||
|
||||
1. Add the Internet key under: HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
|
||||
|
||||
2. Under the Internet key, add the values "Ports" (MULTI_SZ), "PortsInternetAvailable" (REG_SZ), and "UseInternetPorts" (REG_SZ).
|
||||
|
||||
For example, the new registry key appears as follows:
|
||||
Ports: REG_MULTI_SZ: 5000-6000
|
||||
PortsInternetAvailable: REG_SZ: Y
|
||||
UseInternetPorts: REG_SZ: Y
|
||||
|
||||
3. Restart the server. All applications that use RPC dynamic port allocation use ports 5000 through 6000, inclusive.
|
||||
|
||||
You should open up a range of ports above port 5000. Port numbers below 5000 may already be in use by other applications and could cause conflicts with your DCOM application(s). Furthermore, previous experience shows that a minimum of 100 ports should be opened, because several system services rely on these RPC ports to communicate with each other.
|
||||
|
||||
>[!Note]
|
||||
>The minimum number of ports required may differ from computer to computer. Computers with higher traffic may run into a port exhaustion situation if the RPC dynamic ports are restricted. Take this into consideration when restricting the port range.
|
||||
|
||||
>[!WARNING]
|
||||
>If there is an error in the port configuration or there are insufficient ports in the pool, the Endpoint Mapper Service will not be able to register RPC servers with dynamic endpoints. When there is a configuration error, the error code will be 87 (0x57) ERROR_INVALID_PARAMETER. This can affect Windows RPC servers as well, such as Netlogon. It will log event 5820 in this case:
|
||||
>
|
||||
>Log Name: System
|
||||
>Source: NETLOGON
|
||||
>Event ID: 5820
|
||||
>Level: Error
|
||||
>Keywords: Classic
|
||||
>Description:
|
||||
>The Netlogon service could not add the AuthZ RPC interface. The service was terminated. The following error occurred: 'The parameter is incorrect.'
|
||||
|
||||
If you would like to do a deep dive as to how it works, see [RPC over IT/Pro](https://techcommunity.microsoft.com/t5/ask-the-directory-services-team/rpc-over-it-pro/ba-p/399898).
|
||||
|
||||
|
||||
## Troubleshooting RPC error
|
||||
|
||||
### PortQuery
|
||||
|
||||
The best thing to always troubleshoot RPC issues before even getting in to traces is by making use of tools like **PortQry**. You can quickly determine if you're able to make a connection by running the command:
|
||||
|
||||
```console
|
||||
Portqry.exe -n <ServerIP> -e 135
|
||||
```
|
||||
|
||||
This command would give you much of the output to look for, but you should be looking for <em>*ip_tcp</em>- and the port number in the brackets, which tells whether you were successfully able to get a dynamic port from EPM and also make a connection to it. If the above fails, you can typically start collecting simultaneous network traces. Something like this from the output of “PortQry”:
|
||||
|
||||
```console
|
||||
Portqry.exe -n 169.254.0.2 -e 135
|
||||
```
|
||||
Partial output below:
|
||||
|
||||
> Querying target system called:
|
||||
> 169.254.0.2
|
||||
> Attempting to resolve IP address to a name...
|
||||
> IP address resolved to RPCServer.contoso.com
|
||||
> querying...
|
||||
> TCP port 135 (epmap service): LISTENING
|
||||
> Using ephemeral source port
|
||||
> Querying Endpoint Mapper Database...
|
||||
> Server's response:
|
||||
> UUID: d95afe70-a6d5-4259-822e-2c84da1ddb0d
|
||||
> ncacn_ip_tcp:169.254.0.10<strong>[49664]</strong>
|
||||
|
||||
|
||||
The one in bold is the ephemeral port number that you made a connection to successfully.
|
||||
|
||||
### Netsh
|
||||
|
||||
You can run the commands below to use Windows inbuilt netsh captures, to collect a simultaneous trace. Remember to execute the below on an “Admin CMD”, it requires elevation.
|
||||
|
||||
- On the client
|
||||
|
||||
```console
|
||||
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
|
||||
```
|
||||
|
||||
- On the Server
|
||||
|
||||
```console
|
||||
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
|
||||
```
|
||||
|
||||
Now try to reproduce your issue from the client machine and as soon as you feel the issue has been reproduced, go ahead and stop the traces using the command
|
||||
|
||||
```console
|
||||
Netsh trace stop
|
||||
```
|
||||
|
||||
Open the traces in [Microsoft Network Monitor 3.4](troubleshoot-tcpip-netmon.md) or Message Analyzer and filter the trace for
|
||||
|
||||
- `Ipv4.address==<client-ip>` and `ipv4.address==<server-ip>` and `tcp.port==135` or just `tcp.port==135` should help.
|
||||
|
||||
- Look for the “EPM” Protocol Under the “Protocol” column.
|
||||
|
||||
- Now check if you're getting a response from the server. If you get a response, note the dynamic port number that you've been allocated to use.
|
||||
|
||||
:::image type="content" alt-text="Screenshot of Network Monitor with dynamic port highlighted." source="images/tcp-ts-23.png" lightbox="images/tcp-ts-23.png":::
|
||||
|
||||
- Check if we're connecting successfully to this Dynamic port successfully.
|
||||
|
||||
- The filter should be something like this: `tcp.port==<dynamic-port-allocated>` and `ipv4.address==<server-ip>`
|
||||
|
||||
:::image type="content" alt-text="Screenshot of Network Monitor with filter applied." source="images/tcp-ts-24.png" lightbox="images/tcp-ts-24.png":::
|
||||
|
||||
This filter should help you verify the connectivity and isolate if any network issues are seen.
|
||||
|
||||
|
||||
### Port not reachable
|
||||
|
||||
The most common reason why we would see the RPC server unavailable is when the dynamic port that the client tries to connect isn't reachable. The client side trace would then show TCP SYN retransmits for the dynamic port.
|
||||
|
||||
:::image type="content" alt-text="Screenshot of Network Monitor with TCP SYN retransmits." source="images/tcp-ts-25.png" lightbox="images/tcp-ts-25.png":::
|
||||
|
||||
The port can't be reachable due to one of the following reasons:
|
||||
|
||||
- The dynamic port range is blocked on the firewall in the environment.
|
||||
- A middle device is dropping the packets.
|
||||
- The destination server is dropping the packets (WFP drop / NIC drop/ Filter driver etc.).
|
||||
|
||||
|
||||
|
@ -1,24 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for TCP/IP issues
|
||||
description: Learn how to troubleshoot common problems in a TCP/IP network environment, for example by collecting data using Network monitor.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 12/06/2018
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for TCP/IP issues
|
||||
|
||||
In these topics, you will learn how to troubleshoot common problems in a TCP/IP network environment.
|
||||
|
||||
- [Collect data using Network Monitor](troubleshoot-tcpip-netmon.md)
|
||||
- [Part 1: TCP/IP performance overview](/troubleshoot/windows-server/networking/overview-of-tcpip-performance)
|
||||
- [Part 2: TCP/IP performance underlying network issues](/troubleshoot/windows-server/networking/troubleshooting-tcpip-performance-underlying-network)
|
||||
- [Part 3: TCP/IP performance known issues](/troubleshoot/windows-server/networking/tcpip-performance-known-issues)
|
||||
- [Troubleshoot TCP/IP connectivity](troubleshoot-tcpip-connectivity.md)
|
||||
- [Troubleshoot port exhaustion issues](troubleshoot-tcpip-port-exhaust.md)
|
||||
- [Troubleshoot Remote Procedure Call (RPC) errors](troubleshoot-tcpip-rpc-errors.md)
|
@ -1,257 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for Windows freezes
|
||||
description: Learn how to troubleshoot computer freeze issues on Windows-based computers and servers. Also, you can learn how to diagnose, identify, and fix these issues.
|
||||
ms.prod: w10
|
||||
ms.technology: windows
|
||||
ms.topic: troubleshooting
|
||||
author: aczechowski
|
||||
ms.author: aaroncz
|
||||
manager: dougeby
|
||||
ms.reviewer:
|
||||
ms.localizationpriority: medium
|
||||
ms.collection: highpri
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for Windows freezes
|
||||
|
||||
This article describes how to troubleshoot freeze issues on Windows-based computers and servers. It also provides methods for collecting data that will help administrators or software developers diagnose, identify, and fix these issues.
|
||||
|
||||
> [!NOTE]
|
||||
> The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.
|
||||
|
||||
## Identify the problem
|
||||
|
||||
- Which computer is freezing? For example, the affected computer is a physical server or a virtual server.
|
||||
- What operation happened when it froze? For example, this issue occurs when you shut down.
|
||||
- How often do the errors occur? For example, this issue occurs every night at 7 PM.
|
||||
- On how many computers does this freeze occur? For example, all computers or only one computer.
|
||||
|
||||
## Troubleshoot the freeze issues
|
||||
|
||||
To troubleshoot the freeze issues, check the current status of your computer, and follow one of the following methods.
|
||||
|
||||
### For the computer that's still running in a frozen state
|
||||
|
||||
If the physical computer or the virtual machine is still freezing, use one or more of the following methods for troubleshooting:
|
||||
|
||||
- Try to access the computer through a remote desktop connection.
|
||||
- Use a domain account or local administrator account to sign in to the computer with the hardware manufacturer's remote access solution. For example, Dell Remote Access Card (DRAC), HP Integrated Lights-Out (iLo), or IBM Remote supervisor adapter (RSA).
|
||||
- Test ping to the computer. Look for dropped packets and high network latency.
|
||||
- Access administrative shares, for example `\\ServerName\c$`.
|
||||
- Press **Ctrl** + **Alt** + **Delete** and check the response.
|
||||
- Try to use Windows remote administration tools. For example, Computer Management, Server Manager, and Wmimgmt.msc.
|
||||
|
||||
### For the computer that's no longer frozen
|
||||
|
||||
If the physical computer or virtual machine froze, but is now running in a good state, use one or more of the following methods for troubleshooting.
|
||||
|
||||
#### For a physical computer
|
||||
|
||||
- Review the System and Application logs from the computer that's having the issue. Check the event logs for the relevant Event ID:
|
||||
|
||||
- Application event log: Application Error, which suggests a crash or relevant system process
|
||||
- System Event logs, Service Control Manager Error event IDs for critical system services
|
||||
- Error Event IDs 2019/2020 with source Srv/Server
|
||||
|
||||
- Generate a System Diagnostics report by running `perfmon /report`.
|
||||
|
||||
#### For a virtual machine
|
||||
|
||||
- Review the System and Application logs from the computer that is having the issue.
|
||||
- Generate a System Diagnostics report by running `perfmon /report`.
|
||||
- Check the system's history in virtual management monitoring tools.
|
||||
|
||||
## Collect data for the freeze issues
|
||||
|
||||
To collect data for a server freeze, check the following table, and use one or more of the suggested methods.
|
||||
|
||||
|Computer type and state |Data collection method |
|
||||
|-------------------------|--------------------|
|
||||
|A physical computer that's running in a frozen state|[Use a memory dump file to collect data](#use-memory-dump-to-collect-data-for-the-physical-computer-thats-running-in-a-frozen-state). Or use method 2, 3, or 4. These methods are listed later in this section.|
|
||||
|A physical computer that is no longer frozen|Use method 1, 2, 3, or 4. These methods are listed later in this section. And [use Pool Monitor to collect data](#use-pool-monitor-to-collect-data-for-the-physical-computer-that-is-no-longer-frozen).|
|
||||
|A virtual machine that's running in a frozen state|Hyper-V or VMware: [Use a memory dump file to collect data for the virtual machine that's running in a frozen state](#use-memory-dump-to-collect-data-for-the-virtual-machine-thats-running-in-a-frozen-state). <br /> XenServer: Use method 1, 2, 3, or 4. These methods are listed later in this section.|
|
||||
|A virtual machine that is no longer frozen|Use method 1, 2, 3, or 4. These methods are listed later in this section.|
|
||||
|
||||
### Method 1: Memory dump
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Follow the steps in this section carefully. Serious problems might occur if you modify the registry incorrectly. Before you modify it, [back up the registry for restoration](https://support.microsoft.com/topic/how-to-back-up-and-restore-the-registry-in-windows-855140ad-e318-2a13-2829-d428a2ab0692) in case problems occur.
|
||||
|
||||
A complete memory dump file records all the contents of system memory when the computer stops unexpectedly. A complete memory dump file may contain data from processes that were running when the memory dump file was collected.
|
||||
|
||||
If the computer is no longer frozen and now is running in a good state, use the following steps to enable memory dump so that you can collect memory dump when the freeze issue occurs again. If the virtual machine is still running in a frozen state, use the following steps to enable and collect memory dump.
|
||||
|
||||
> [!NOTE]
|
||||
> If you have a restart feature that's enabled on the computer, such as the Automatic System Restart (ASR) feature in Compaq computers, disable it. This setting is usually found in the BIOS. With this feature enabled, if the BIOS doesn't detect a heartbeat from the operating system, it will restart the computer. The restart can interrupt the dump process.
|
||||
|
||||
1. Make sure that the computer is set up to get a complete memory dump file.
|
||||
|
||||
1. Go to **Run** and enter `Sysdm.cpl`, and then press enter.
|
||||
|
||||
1. In **System Properties**, on the **Advanced** tab, select **Performance** \> **Settings** \> **Advanced**. Select **Change** to check or change the virtual memory.
|
||||
|
||||
1. Go back to **System Properties** \> **Advanced** \> **Settings** in **Startup and Recovery**.
|
||||
|
||||
1. In the **Write Debugging Information** section, select **Complete Memory Dump**.
|
||||
|
||||
1. Select **Overwrite any existing file**.
|
||||
|
||||
1. Make sure that there's a paging file (pagefile.sys) on the system drive and that it's at least 100 MB over the installed RAM (Initial and Maximum Size).
|
||||
|
||||
1. Make sure that there's more available space on the system drive than there's physical RAM.
|
||||
|
||||
1. To allow the system to generate a dump file by using the keyboard, enable the `CrashOnCtrlScroll` registry value.
|
||||
|
||||
1. Open the Registry Editor, and then locate the following registry keys:
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters`
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters`
|
||||
|
||||
1. Create the following `CrashOnCtrlScroll` registry entry in the two registry keys:
|
||||
|
||||
- **Value Name**: `CrashOnCtrlScroll`
|
||||
- **Data Type**: `REG_DWORD`
|
||||
- **Value**: `1`
|
||||
|
||||
1. Close the Registry Editor and restart the computer.
|
||||
|
||||
1. On some physical computers running earlier versions of Windows, you may generate a nonmakeable interruption (NMI) from a web interface feature such as DRAC, iLo, or RSA. However, by default, this setting will stop the system without creating a memory dump.
|
||||
|
||||
> [!NOTE]
|
||||
> For currently supported versions of Windows, the `NMICrashDump` registry key is no longer required. An NMI causes a [Stop error that follows a memory dump data collection](/troubleshoot/windows-client/performance/nmi-hardware-failure-error).
|
||||
|
||||
1. When the computer exhibits the problem, hold down the right **Ctrl** key, and press the **Scroll Lock** key two times to generate a memory dump file.
|
||||
|
||||
> [!NOTE]
|
||||
> By default, the dump file is located in the following path: `%SystemRoot%\MEMORY.DMP`
|
||||
|
||||
### Method 2: Data sanity check
|
||||
|
||||
Use the Dump Check Utility (Dumpchk.exe) to read a memory dump file. It can also verify that the file was created correctly and isn't corrupted or invalid.
|
||||
|
||||
- [Using DumpChk](/windows-hardware/drivers/debugger/dumpchk)
|
||||
- [Download DumpChk](https://developer.microsoft.com/windows/downloads/windows-10-sdk)
|
||||
|
||||
Learn how to use Dumpchk.exe to check your dump files:
|
||||
|
||||
> [!VIDEO https://www.youtube.com/embed/xN7tOfgNKag]
|
||||
|
||||
### Method 3: Performance Monitor
|
||||
|
||||
You can use Windows Performance Monitor to examine how programs that you run affect your computer's performance, both in real time and by collecting log data for later analysis. To create performance counter and event trace log collections on local and remote systems, run the following commands in a command prompt as administrator:
|
||||
|
||||
```command
|
||||
Logman create counter LOGNAME_Long -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:05:00
|
||||
```
|
||||
|
||||
```command
|
||||
Logman create counter LOGNAME_Short -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:00:10
|
||||
```
|
||||
|
||||
Then, you can start or stop the log by running the following commands:
|
||||
|
||||
```command
|
||||
logman start LOGNAME_Long / LOGNAME_Short
|
||||
logman stop LOGNAME_Long / LOGNAME_Short
|
||||
```
|
||||
|
||||
The Performance Monitor log is located in the path: `C:\PERFLOGS`
|
||||
|
||||
### Other methods to collect data
|
||||
|
||||
#### Use memory dump to collect data for the physical computer that's running in a frozen state
|
||||
|
||||
> [!WARNING]
|
||||
> Follow the steps in this section carefully. Serious problems might occur if you modify the registry incorrectly. Before you modify it, [back up the registry for restoration](https://support.microsoft.com/topic/how-to-back-up-and-restore-the-registry-in-windows-855140ad-e318-2a13-2829-d428a2ab0692) in case problems occur.
|
||||
|
||||
If the physical computer is still running in a frozen state, follow these steps to enable and collect memory dump:
|
||||
|
||||
1. Make sure that the computer is set up to get a complete memory dump file and that you can access it through the network.
|
||||
|
||||
> [!NOTE]
|
||||
> If it isn't possible to access the affected computer through the network, try to generate a memory dump file through NMI. The result of the action may not collect a memory dump file if some of the following settings aren't qualified.
|
||||
|
||||
1. Try to access the desktop of the computer by any means.
|
||||
|
||||
> [!NOTE]
|
||||
> In case accessing the OS isn't possible, try to remotely access Registry Editor on the computer. You can then check the type of memory dump file and page file with which the computer is currently configured.
|
||||
|
||||
1. From a remote computer that's preferably in the same network and subnet, go to **Registry Editor** \> **Connect Network Registry**. Then, connect to the affected computer, and verify the following settings:
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\CrashDumpEnabled`
|
||||
|
||||
Make sure that the [CrashDumpEnabled](/previous-versions/windows/it-pro/windows-2000-server/cc976050(v=technet.10)) registry entry is `1`.
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\NMICrashDump`
|
||||
|
||||
On some physical servers, if the NMICrashDump registry entry exists and its value is `1`, you may take advantage of the NMI from the remote management provider such as DRAC, iLo, and RSA.
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles and ExistingPageFiles`
|
||||
|
||||
If the value of the **Pagefile** registry entry is system-managed, the size won't be reflected in the registry. For example, `?:\pagefile.sys)`
|
||||
|
||||
If the page file is customized, the size will be reflected in the registry, such as `?:\pagefile.sys 1024 1124`. In this example, `1024` is the initial size and `1124` is the max size.
|
||||
|
||||
> [!NOTE]
|
||||
> If the size isn't reflected in the Registry, try to access an administrative share where the page file is located. For example, `\\ServerName\C$`
|
||||
|
||||
1. Make sure that there's a paging file (pagefile.sys) on the system drive of the computer, and it's at least 100 MB over the installed RAM.
|
||||
|
||||
1. Make sure that there's more free space on the hard disk drives of the computer than there's physical RAM.
|
||||
|
||||
1. Enable the **CrashOnCtrlScroll** registry value on the computer to allow the system to generate a dump file by using the keyboard.
|
||||
|
||||
1. From a remote computer preferably in the same network and subnet, go to Registry Editor \> Connect Network Registry. Connect to the affected computer and locate the following registry keys:
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters`
|
||||
|
||||
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters`
|
||||
|
||||
1. Create the following `CrashOnCtrlScroll` registry entry in the two registry keys:
|
||||
|
||||
**Value Name**: `CrashOnCtrlScroll`
|
||||
**Data Type**: `REG_DWORD`
|
||||
**Value**: `1`
|
||||
|
||||
1. Close the Registry Editor and restart the computer.
|
||||
|
||||
1. When the computer exhibits the problem, hold down the right **CTRL** key, and press the **Scroll Lock** key two times to generate a memory dump.
|
||||
|
||||
> [!NOTE]
|
||||
> By default, the dump file is located in the path: `%SystemRoot%\MEMORY.DMP`
|
||||
|
||||
### Use Pool Monitor to collect data for the physical computer that is no longer frozen
|
||||
|
||||
Pool Monitor shows you the number of allocations and outstanding bytes of allocation by type of pool and the tag that is passed into calls of ExAllocatePoolWithTag.
|
||||
|
||||
For more information, see [Using PoolMon to Find a Kernel-Mode Memory Leak](/windows-hardware/drivers/debugger/using-poolmon-to-find-a-kernel-mode-memory-leak) and [PoolMon Examples](/windows-hardware/drivers/devtest/poolmon-examples).
|
||||
|
||||
### Use memory dump to collect data for the virtual machine that's running in a frozen state
|
||||
|
||||
Use the one of the following methods for the application on which the virtual machine is running.
|
||||
|
||||
#### Microsoft Hyper-V
|
||||
|
||||
You can also use the built-in NMI feature through a [Debug-VM](/powershell/module/hyper-v/debug-vm) cmdlet to debug and get a memory dump.
|
||||
|
||||
To debug the virtual machines on Hyper-V, run the following cmdlet in Windows PowerShell:
|
||||
|
||||
```powershell
|
||||
Debug-VM -Name "VM Name" -InjectNonMaskableInterrupt -ComputerName Hostname
|
||||
```
|
||||
|
||||
#### VMware
|
||||
|
||||
You can use VMware snapshots or suspend state and extract a memory dump file equivalent to a complete memory dump file. Use VMware's [Checkpoint To Core Tool (vmss2core)](https://flings.vmware.com/vmss2core) to convert both suspend (`.vmss`) and snapshot (`.vmsn`) state files to a dump file. Then analyze the file by using the standard Windows debugging tools.
|
||||
|
||||
#### Citrix XenServer
|
||||
|
||||
The memory dump process occurs by pressing the RIGHT CTRL + SCROLL LOCK + SCROLL LOCK keyboard combination. For more information, see Method 1 of [How to Trigger a Memory Dump from a Windows Virtual Machine Running on XenServer](https://support.citrix.com/article/ctx123177) from Citrix.
|
||||
|
||||
## Space limitations on the system drive in Windows Server
|
||||
|
||||
On a Windows Server, you may not have enough free disk space to generate a complete memory dump file on the system volume.
|
||||
There's a second option if the system drive doesn't have sufficient space. You can use the DedicatedDumpFile registry entry. For more information, see [Configure the destination path for a memory dump](/windows-server/administration/server-core/server-core-memory-dump#step-2-configure-the-destination-path-for-a-memory-dump).
|
||||
|
||||
For more information, see [How to use the DedicatedDumpFile registry value to overcome space limitations on the system drive](/archive/blogs/ntdebugging/how-to-use-the-dedicateddumpfile-registry-value-to-overcome-space-limitations-on-the-system-drive-when-capturing-a-system-memory-dump).
|
@ -1,56 +0,0 @@
|
||||
---
|
||||
title: Advanced troubleshooting for Windows start-up issues
|
||||
description: Learn advanced options for how to troubleshoot common Windows start-up issues, like system crashes and freezes.
|
||||
ms.prod: w10
|
||||
ms.topic: troubleshooting
|
||||
author: dansimp
|
||||
ms.localizationpriority: medium
|
||||
ms.author: dansimp
|
||||
ms.date: 2/3/2020
|
||||
ms.reviewer:
|
||||
manager: dansimp
|
||||
---
|
||||
|
||||
# Advanced troubleshooting for Windows start-up issues
|
||||
|
||||
<p class="alert is-flex is-primary"><span class="has-padding-left-medium has-padding-top-extra-small"><a class="button is-primary" href="https://vsa.services.microsoft.com/v1.0/?partnerId=7d74cf73-5217-4008-833f-87a1a278f2cb&flowId=DMC&initialQuery=31806273" target='_blank'><b>Try our Virtual Agent</b></a></span><span class="has-padding-small"> - It can help you quickly identify and fix common Windows boot issues</span>
|
||||
|
||||
In these topics, you will learn how to troubleshoot common problems that are related to Windows startup.
|
||||
|
||||
## How it works
|
||||
|
||||
When Microsoft Windows experiences a condition that compromises safe system operation, the system halts. These Windows startup problems are categorized in the following groups:
|
||||
|
||||
- Bug check: Also commonly known as a system crash, a kernel error, or a Stop error.
|
||||
|
||||
- No boot: The system may not produce a bug check but is unable to start up into Windows.
|
||||
|
||||
- Freeze: Also known as "system hang".
|
||||
|
||||
## Best practices
|
||||
|
||||
To understand the underlying cause of Windows startup problems, it's important that the system be configured correctly. Here are some best practices for configuration:
|
||||
|
||||
### Page file settings
|
||||
|
||||
- [Introduction of page file](introduction-page-file.md)
|
||||
|
||||
- [How to determine the appropriate page file size for 64-bit versions of Windows](determine-appropriate-page-file-size.md)
|
||||
|
||||
### Memory dump settings
|
||||
|
||||
- [Configure system failure and recovery options in Windows](system-failure-recovery-options.md)
|
||||
|
||||
- [Generate a kernel or complete crash dump](generate-kernel-or-complete-crash-dump.md)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
These articles will walk you through the resources you need to troubleshoot Windows startup issues:
|
||||
|
||||
- [Advanced troubleshooting for Windows boot problems](./advanced-troubleshooting-boot-problems.md)
|
||||
|
||||
- [Advanced troubleshooting for Stop error or blue screen error](./troubleshoot-stop-errors.md)
|
||||
|
||||
- [Advanced troubleshooting for Windows-based computer freeze issues](./troubleshoot-windows-freeze.md)
|
||||
|
||||
- [Stop error occurs when you update the in-box Broadcom network adapter driver](troubleshoot-stop-error-on-broadcom-driver-update.md)
|
@ -1,132 +0,0 @@
|
||||
---
|
||||
title: Windows 10 support solutions
|
||||
description: Learn where to find information about troubleshooting Windows 10 issues, for example BitLocker issues and bugcheck errors.
|
||||
ms.reviewer: kaushika
|
||||
manager: aaroncz
|
||||
ms.prod: w10
|
||||
ms.author: vinpa
|
||||
author: vinaypamnani-msft
|
||||
ms.localizationpriority: medium
|
||||
ms.topic: troubleshooting
|
||||
---
|
||||
|
||||
# Windows 10 support solutions
|
||||
|
||||
Microsoft regularly releases both updates for Windows Server. To ensure your servers can receive future updates, including security updates, it's important to keep your servers updated. Check out - [Windows 10 and Windows Server 2016 update history](https://support.microsoft.com/en-us/help/4000825/windows-10-windows-server-2016-update-history) for a complete list of released updates.
|
||||
|
||||
This section contains advanced troubleshooting topics and links to help you resolve issues with Windows 10 in an enterprise or IT pro environment. More topics will be added as they become available.
|
||||
|
||||
## Troubleshoot 802.1x Authentication
|
||||
- [Advanced Troubleshooting 802.1X Authentication](./advanced-troubleshooting-802-authentication.md)
|
||||
- [Data collection for troubleshooting 802.1X authentication](./data-collection-for-802-authentication.md)
|
||||
|
||||
## Troubleshoot BitLocker
|
||||
- [Guidelines for troubleshooting BitLocker](/windows/security/information-protection/bitlocker/troubleshoot-bitlocker)
|
||||
- [BitLocker can't encrypt a drive: known issues](/windows/security/information-protection/bitlocker/ts-bitlocker-cannot-encrypt-issues)
|
||||
- [Enforcing BitLocker policies by using Intune: known issues](/windows/security/information-protection/bitlocker/ts-bitlocker-intune-issues)
|
||||
- [BitLocker Network Unlock: known issues](/windows/security/information-protection/bitlocker/ts-bitlocker-network-unlock-issues)
|
||||
- [BitLocker recovery: known issues](/windows/security/information-protection/bitlocker/ts-bitlocker-recovery-issues)
|
||||
- [BitLocker configuration: known issues](/windows/security/information-protection/bitlocker/ts-bitlocker-config-issues)
|
||||
- [BitLocker can't encrypt a drive: known TPM issues](/windows/security/information-protection/bitlocker/ts-bitlocker-cannot-encrypt-tpm-issues)
|
||||
- [BitLocker and TPM: other known issues](/windows/security/information-protection/bitlocker/ts-bitlocker-tpm-issues)
|
||||
- [Decode Measured Boot logs to track PCR changes](/windows/security/information-protection/bitlocker/ts-bitlocker-decode-measured-boot-logs)
|
||||
- [BitLocker frequently asked questions (FAQ)](/windows/security/information-protection/bitlocker/bitlocker-frequently-asked-questions)
|
||||
|
||||
## Troubleshoot Bugcheck and Stop errors
|
||||
- [Introduction to the page file](./introduction-page-file.md)
|
||||
- [How to determine the appropriate page file size for 64-bit versions of Windows](./determine-appropriate-page-file-size.md)
|
||||
- [Configure system failure and recovery options in Windows](./system-failure-recovery-options.md)
|
||||
- [Generate a kernel or complete crash dump](./generate-kernel-or-complete-crash-dump.md)
|
||||
- [Advanced troubleshooting for Stop error or blue screen error issue](./troubleshoot-stop-errors.md)
|
||||
- [Advanced troubleshooting for Stop error 7B or Inaccessible_Boot_Device](./troubleshoot-inaccessible-boot-device.md)
|
||||
- [Blue Screen Data - Windows drivers](/windows-hardware/drivers/debugger/blue-screen-data)
|
||||
- [Bug Check Code Reference - Windows drivers](/windows-hardware/drivers/debugger/bug-check-code-reference2)
|
||||
|
||||
## Troubleshoot Credential Guard
|
||||
- [Windows Defender Credential Guard - Known issues (Windows 10)](/windows/security/identity-protection/credential-guard/credential-guard-known-issues)
|
||||
|
||||
## Troubleshoot Disks
|
||||
- [MBR2GPT](/windows/deployment/mbr-to-gpt)
|
||||
- [Windows and GPT FAQ](/windows-hardware/manufacture/desktop/windows-and-gpt-faq)
|
||||
|
||||
## Troubleshoot Kiosk mode
|
||||
- [Troubleshoot kiosk mode issues](/windows/configuration/kiosk-troubleshoot)
|
||||
|
||||
## Troubleshoot No Boot
|
||||
- [Advanced troubleshooting for Windows boot problems](./advanced-troubleshooting-boot-problems.md)
|
||||
|
||||
## Troubleshoot Push Button Reset
|
||||
- [Push-button reset frequently-asked questions (FAQ)](/windows-hardware/manufacture/desktop/pbr-faq)
|
||||
- [Push-button reset frequently-asked questions (FAQ)](/windows-hardware/manufacture/desktop/pbr-validation)
|
||||
- [Recovery components](/windows-hardware/manufacture/desktop/recovery-strategy-for-common-customizations)
|
||||
|
||||
### Troubleshoot Power Management
|
||||
- [Modern Standby FAQs](/windows-hardware/design/device-experiences/modern-standby-faqs)
|
||||
|
||||
|
||||
## Troubleshoot Secure Boot
|
||||
- [Secure Boot isn't configured correctly: troubleshooting](/windows-hardware/manufacture/desktop/secure-boot-isnt-configured-correctly-troubleshooting)
|
||||
|
||||
|
||||
## Troubleshoot Setup and Install
|
||||
- [Deployment Troubleshooting and Log Files](/windows-hardware/manufacture/desktop/deployment-troubleshooting-and-log-files)
|
||||
|
||||
|
||||
## Troubleshoot Start Menu
|
||||
- [Troubleshoot Start menu errors](/windows/configuration/start-layout-troubleshoot)
|
||||
|
||||
|
||||
## Troubleshoot Subscription Activation
|
||||
- [Deploy Windows 10 Enterprise licenses](/windows/deployment/deploy-enterprise-licenses)
|
||||
|
||||
## Troubleshoot System Hang
|
||||
- [Advanced troubleshooting for Windows-based computer freeze issues](./troubleshoot-windows-freeze.md)
|
||||
|
||||
## Troubleshoot TCP/IP Communication
|
||||
- [Collect data using Network Monitor](./troubleshoot-tcpip-netmon.md)
|
||||
- [Troubleshoot TCP/IP connectivity](./troubleshoot-tcpip-connectivity.md)
|
||||
- [Troubleshoot port exhaustion issues](./troubleshoot-tcpip-port-exhaust.md)
|
||||
- [Troubleshoot Remote Procedure Call (RPC) errors](./troubleshoot-tcpip-rpc-errors.md)
|
||||
|
||||
## Troubleshoot User State Migration Toolkit (USMT)
|
||||
- [Common Issues](/windows/deployment/usmt/usmt-common-issues)
|
||||
- [Frequently Asked Questions](/windows/deployment/usmt/usmt-faq)
|
||||
- [Log Files](/windows/deployment/usmt/usmt-log-files)
|
||||
- [Return Codes](/windows/deployment/usmt/usmt-return-codes)
|
||||
|
||||
## Troubleshoot Windows Hello for Business (WHFB)
|
||||
- [Windows Hello for Business Frequently Asked Questions](/windows/security/identity-protection/hello-for-business/hello-faq)
|
||||
- [Windows Hello errors during PIN creation (Windows 10)](/windows/security/identity-protection/hello-for-business/hello-errors-during-pin-creation)
|
||||
- [Event ID 300 - Windows Hello successfully created (Windows 10)](/windows/security/identity-protection/hello-for-business/hello-event-300)
|
||||
|
||||
|
||||
## Troubleshoot Windows Analytics
|
||||
- [Frequently asked questions and troubleshooting Windows Analytics](/windows/deployment/update/windows-analytics-faq-troubleshooting)
|
||||
|
||||
## Troubleshoot Windows Update
|
||||
- [How Windows Update works](/windows/deployment/update/how-windows-update-works)
|
||||
- [Windows Update log files](/windows/deployment/update/windows-update-logs)
|
||||
- [Windows Update troubleshooting](/windows/deployment/update/windows-update-troubleshooting)
|
||||
- [Windows Update common errors and mitigation](/windows/deployment/update/windows-update-errors)
|
||||
- [Windows Update - More resources](/windows/deployment/update/windows-update-resources)
|
||||
- [Get started with Windows Update](/windows/deployment/update/windows-update-overview)
|
||||
- [Servicing stack updates](/windows/deployment/update/servicing-stack-updates)
|
||||
|
||||
## Troubleshoot Windows Upgrade
|
||||
- [Quick fixes - Windows IT Pro](/windows/deployment/upgrade/quick-fixes)
|
||||
- [SetupDiag](/windows/deployment/upgrade/setupdiag)
|
||||
- [Troubleshoot Windows 10 upgrade errors - Windows IT Pro](/windows/deployment/upgrade/troubleshoot-upgrade-errors)
|
||||
- [Windows error reporting - Windows IT Pro](/windows/deployment/upgrade/windows-error-reporting)
|
||||
- [Upgrade error codes - Windows IT Pro](/windows/deployment/upgrade/upgrade-error-codes)
|
||||
- [Log files - Windows IT Pro](/windows/deployment/upgrade/log-files)
|
||||
- [Resolution procedures - Windows IT Pro](/windows/deployment/upgrade/resolution-procedures)
|
||||
|
||||
## Troubleshoot Windows Recovery (WinRE)
|
||||
- [Windows RE troubleshooting features](/windows-hardware/manufacture/desktop/windows-re-troubleshooting-features)
|
||||
|
||||
## Troubleshoot Wireless Connection
|
||||
- [Advanced Troubleshooting Wireless Network Connectivity](./advanced-troubleshooting-wireless-network-connectivity.md)
|
||||
|
||||
## Other Resources
|
||||
|
||||
- [Troubleshooting Windows Server components](/windows-server/troubleshoot/windows-server-troubleshooting)
|
Loading…
x
Reference in New Issue
Block a user