You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: support/windows/win32/client-application-error-create-com-plus-component.md
+20-20Lines changed: 20 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,10 +37,10 @@ This problem occurs because the Component Object Model (COM) initialization coun
37
37
38
38
## Resolution
39
39
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.
41
41
42
42
> [!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.
44
44
45
45
For more information about the `CoInitialize` function, see [CoInitialize function](/windows/win32/api/objbase/nf-objbase-coinitialize).
46
46
@@ -56,24 +56,24 @@ To determine which COM component contains the affected code, use the Microsoft I
56
56
1.[Download and install DebugDiag](https://www.microsoft.com/download/details.aspx?id=58210).
57
57
2. Create a crash rule in DebugDiag. To do this, follow these steps:
58
58
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**.
77
77
78
78
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:
Copy file name to clipboardExpand all lines: support/windows/win32/coinitializeex-fails-after-calling-htmlhelp-same-thread.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,17 +9,17 @@ ms.custom: sap:Component Development\COM, DCOM, and COM+ Programming and Runtime
9
9
---
10
10
# CoInitializeEx function fails after calling the HtmlHelp function on the same thread
11
11
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.
13
13
14
14
_Applies to:_ All supported operating system
15
15
16
16
## Symptoms
17
17
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.
19
19
20
20
## Cause
21
21
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`.
Copy file name to clipboardExpand all lines: support/windows/win32/xa-transaction-require-registry-entry.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,26 +26,26 @@ For example, when you upgrade an existing system to Windows Server 2003, and the
26
26
> [!IMPORTANT]
27
27
> 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).
28
28
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.
30
30
31
31
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.
32
32
33
33
You may have to turn on support for XA transactions. To do this, follow these steps:
34
34
35
35
1. Open **Component Services**.
36
36
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**.
39
39
5. Under **Security Settings**, select the check box for **XA Transactions** to turn on this support.
40
40
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.
42
42
43
43
To do this, create a registry named-value under the following registry subkey:
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.
47
47
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.
0 commit comments