Skip to content

Commit 3695ea9

Browse files
authored
updates for acrolinx
1 parent a1d4585 commit 3695ea9

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

support/windows/win32/client-application-error-create-com-plus-component.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ This problem occurs because the Component Object Model (COM) initialization coun
3737

3838
## Resolution
3939

40-
To resolve this problem, remove the `CoInitialize` calls and the `CoUninitialize` calls from the affected COM DLL. A COM DLL that exposes COM components and is loaded through COM calls from a client should not call the `CoInitialize` function or the `CoUninitialize` function on any thread that is used to load or to start the DLL. These threads are owned by the client application, by the COM runtime, or by the COM+ runtime. Only the COM DLL should call these APIs on additional threads that were explicitly created by the COM DLL. However, it is a common bug for COM DLLs to call the `CoInitialize` function and the `CoUninitialize` function in response to attach events and detach events in the `DllMain` function.
40+
To resolve this problem, remove the `CoInitialize` calls and the `CoUninitialize` calls from the affected COM DLL. A COM DLL that exposes COM components and is loaded through COM calls from a client shouldn't call the `CoInitialize` function or the `CoUninitialize` function on any thread that is used to load or to start the DLL. These threads are owned by the client application, by the COM runtime, or by the COM+ runtime. Only the COM DLL should call these APIs on additional threads that were explicitly created by the COM DLL. However, it's a common bug for COM DLLs to call the `CoInitialize` function and the `CoUninitialize` function in response to attach events and detach events in the `DllMain` function.
4141

4242
> [!NOTE]
43-
> It is correct for a standard Win32 DLL that isn't loaded through COM to call these APIs if the standard Win32 DLL plans to use COM APIs. However, these functions should not be called from the `DllMain` function.
43+
> It's correct for a standard Win32 DLL that isn't loaded through COM to call these APIs if the standard Win32 DLL plans to use COM APIs. However, these functions shouldn't be called from the `DllMain` function.
4444
4545
For more information about the `CoInitialize` function, see [CoInitialize function](/windows/win32/api/objbase/nf-objbase-coinitialize).
4646

@@ -56,24 +56,24 @@ To determine which COM component contains the affected code, use the Microsoft I
5656
1. [Download and install DebugDiag](https://www.microsoft.com/download/details.aspx?id=58210).
5757
2. Create a crash rule in DebugDiag. To do this, follow these steps:
5858

59-
1. Click **Start**, point to **Programs**, point to **IIS Diagnostics (32bit)**, point to **Debug Diagnostics Tool**, and then click **Debug Diagnostics Tool 1.0**.
60-
2. If the **Select Rule Type** dialog box opens, click **Cancel**.
61-
3. On the **Tools** menu, click **Options And Settings**.
62-
4. Click the **Folders and Search Paths** tab, and then enter `srv*C:\symsrv\*http://msdl.microsoft.com/download/symbols` in the **Symbol Search Path For Analysis** field.
63-
5. In the **Symbol Search Path For Debugging** field, enter `srv*C:\symsrv\*http://msdl.microsoft.com/download/symbols`, and then click **OK**.
64-
6. Click **Add Rule**.
65-
7. Click **Crash**, and then click **Next**.
66-
8. Click **A specific MTS/COM+ application (included high and medium isolation websites)**, and then click **Next**.
67-
9. Click the appropriate COM+ application, and then click **Next**.
68-
10. In the **Advanced Configuration (Optional)** dialog box, click **Breakpoints**.
69-
11. In the **Configure Breakpoints** dialog box, click **Add Breakpoint**.
70-
12. In the **Configure Breakpoint** dialog box, enter *ole32!CoInitializeEx* in the **Breakpoint Expression** field, enter *1000* in the **Action Type** field, keep **Log Stack Trace** in the **Action Type** field, and then click **OK**.
71-
13. In the **Configure Breakpoints** dialog box, click **Add Breakpoint**.
72-
14. In the **Configure Breakpoint** dialog box, enter *ole32!CoUninitialize* in the **Breakpoint Expression** field, enter *1000* in the **Action Limit** field, and then click **OK**.
73-
15. In the **Configure Breakpoints** dialog box, click **Save & Close**.
74-
16. In the **Advanced Configuration (Optional)** dialog box, click **Next**.
75-
17. In the **Select Dump Location And Rule Name (Optional)** dialog box, click **Next**.
76-
18. In the **Rule Completed** dialog box, click **Activate the rule now**, and then click **Finish**.
59+
1. Select **Start**, point to **Programs**, point to **IIS Diagnostics (32bit)**, point to **Debug Diagnostics Tool**, and then select **Debug Diagnostics Tool 1.0**.
60+
2. If the **Select Rule Type** dialog box opens, select **Cancel**.
61+
3. On the **Tools** menu, select **Options And Settings**.
62+
4. Select the **Folders and Search Paths** tab, and then enter `srv*C:\symsrv\*http://msdl.microsoft.com/download/symbols` in the **Symbol Search Path For Analysis** field.
63+
5. In the **Symbol Search Path For Debugging** field, enter `srv*C:\symsrv\*http://msdl.microsoft.com/download/symbols`, and then select **OK**.
64+
6. Select **Add Rule**.
65+
7. Select **Crash**, and then select **Next**.
66+
8. Select **A specific MTS/COM+ application (included high and medium isolation websites)**, and then select **Next**.
67+
9. Select the appropriate COM+ application, and then select **Next**.
68+
10. In the **Advanced Configuration (Optional)** dialog box, select **Breakpoints**.
69+
11. In the **Configure Breakpoints** dialog box, select **Add Breakpoint**.
70+
12. In the **Configure Breakpoint** dialog box, enter *ole32!CoInitializeEx* in the **Breakpoint Expression** field, enter *1000* in the **Action Type** field, keep **Log Stack Trace** in the **Action Type** field, and then select **OK**.
71+
13. In the **Configure Breakpoints** dialog box, select **Add Breakpoint**.
72+
14. In the **Configure Breakpoint** dialog box, enter *ole32!CoUninitialize* in the **Breakpoint Expression** field, enter *1000* in the **Action Limit** field, and then select **OK**.
73+
15. In the **Configure Breakpoints** dialog box, select **Save & Close**.
74+
16. In the **Advanced Configuration (Optional)** dialog box, select **Next**.
75+
17. In the **Select Dump Location And Rule Name (Optional)** dialog box, select **Next**.
76+
18. In the **Rule Completed** dialog box, select **Activate the rule now**, and then select **Finish**.
7777

7878
DebugDiag monitors the selected COM+ application when the application runs. Every time that DebugDiag experiences one of the selected breakpoints, DebugDiag adds data to a log file. By default, the log file will be named:
7979
`C:\Program Files\IIS Resources\DebugDiag\Logs\dllhost__PID__\<pid>\__Date__\<date> __Time\_\<time> Log.txt`

support/windows/win32/coinitializeex-fails-after-calling-htmlhelp-same-thread.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ ms.custom: sap:Component Development\COM, DCOM, and COM+ Programming and Runtime
99
---
1010
# CoInitializeEx function fails after calling the HtmlHelp function on the same thread
1111

12-
This article discusses an issue where the [CoInitializeEx function](/windows/win32/api/combaseapi/nf-combaseapi-coinitializeex) fails after calling the `HtmlHelp` function on the same thread.
12+
This article discusses an issue where the [CoInitializeEx](/windows/win32/api/combaseapi/nf-combaseapi-coinitializeex) function fails after calling the `HtmlHelp` function on the same thread.
1313

1414
_Applies to:_ &nbsp; All supported operating system
1515

1616
## Symptoms
1717

18-
If an application calls `HtmlHelp` before calling `CoInitializeEx` with the specified `COINIT_MULTITHREADED` value, `CoInitializeEx` can return `RPC_E_CHANGED_MODE (0x80010106)`. As a result, the application may crash, hang, or display unexpected behavior.
18+
If an application calls `HtmlHelp` before calling `CoInitializeEx` with the specified `COINIT_MULTITHREADED` value, `CoInitializeEx` can return `RPC_E_CHANGED_MODE (0x80010106)`. As a result, the application might crash, hang, or display unexpected behavior.
1919

2020
## Cause
2121

22-
If a thread that calls `HtmlHelp` hasn't been initialized with `CoInitialize` or `CoInitializeEx`, `HtmlHelp` initializes the thread as apartment-threaded with `COINIT_APARTMENTTHREADED`.
22+
If a thread that calls `HtmlHelp` isn't initialized with `CoInitialize` or `CoInitializeEx`, `HtmlHelp` initializes the thread as apartment-threaded with `COINIT_APARTMENTTHREADED`.
2323

2424
## Workaround
2525

support/windows/win32/xa-transaction-require-registry-entry.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,26 @@ For example, when you upgrade an existing system to Windows Server 2003, and the
2626
> [!IMPORTANT]
2727
> This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, see [How to back up and restore the registry in Windows](https://support.microsoft.com/help/322756).
2828
29-
A security risk occurs when MS DTC uses user-specified DLLs. These DLLs are loaded directly in the MS DTC process. MS DTC uses these DLLs to communicate with the Transaction Manager (TM) of the XA partner. This scenario can expose the Resource Manager (RM) databases to serious data corruption. This scenario can also permit denial-of-service attacks if a malicious or defective XA DLL does not verify that the distributed transaction commits or aborts correctly. Also, if a malicious or defective XA DLL contains code that is not security-enhanced, an attacker might exploit this weakness to cause a denial-of-service attack.
29+
A security risk occurs when MS DTC uses user-specified DLLs. These DLLs are loaded directly in the MS DTC process. MS DTC uses these DLLs to communicate with the Transaction Manager (TM) of the XA partner. This scenario can expose the Resource Manager (RM) databases to serious data corruption. This scenario can also permit denial-of-service attacks if a malicious or defective XA DLL doesn't verify that the distributed transaction commits or aborts correctly. Also, if a malicious or defective XA DLL contains code that isn't security-enhanced, an attacker might exploit this weakness to cause a denial-of-service attack.
3030

3131
To help to prevent this security risk, Windows Server 2003 turns off all XA transactions when you upgrade to Windows Server 2003. If the support for XA transactions is turned off, Windows Server 2003 helps to protect MS DTC from denial-of-service attacks.
3232

3333
You may have to turn on support for XA transactions. To do this, follow these steps:
3434

3535
1. Open **Component Services**.
3636
2. Expand the tree view to locate the computer on which you want to turn on support for XA transactions (for example, **My Computer**).
37-
3. Right-click the computer name, and then click **Properties**.
38-
4. Click the **MSDTC** tab, and then click **Security Configuration**.
37+
3. Right-click the computer name, and then select **Properties**.
38+
4. Select the **MSDTC** tab, and then select **Security Configuration**.
3939
5. Under **Security Settings**, select the check box for **XA Transactions** to turn on this support.
4040

41-
Windows Server 2003 provides a registry entry for you to specify the XA DLLs that you will use. When you upgrade to Windows Server 2003, you can work with XA transactions in the same way that you worked with them in earlier versions of Microsoft Windows Server.
41+
Windows Server 2003 provides a registry entry for you to specify the XA DLLs that you'll use. When you upgrade to Windows Server 2003, you can work with XA transactions in the same way that you worked with them in earlier versions of Microsoft Windows Server.
4242

4343
To do this, create a registry named-value under the following registry subkey:
4444
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL`
4545

46-
In your registry named-value, **Name** can be the file name of the XA DLL (for example, dllname.dll), although you are not required to use this naming convention. Also in this named-value, **Type** is String (REG_SZ), and the value is the full path name (including the file name) of the DLL file.
46+
In your registry named-value, **Name** can be the file name of the XA DLL (for example, dllname.dll), although you aren't required to use this naming convention. Also in this named-value, **Type** is String (REG_SZ), and the value is the full path name (including the file name) of the DLL file.
4747

48-
Create an entry for each XA DLL file that you plan to use. Also, if you are configuring MS DTC on a cluster, you must create these registry entries on each node in the cluster.
48+
Create an entry for each XA DLL file that you plan to use. Also, if you're configuring MS DTC on a cluster, you must create these registry entries on each node in the cluster.
4949

5050
## References
5151

0 commit comments

Comments
 (0)