NS_E_PROTOCOL_MISMATCH 0XC00D0012 Fix: Quick Steps
This error means your client and server can't agree on a streaming protocol. Almost always it's a Windows Media Services config issue or a firewall block on port 1755.
1. Windows Media Services protocol restriction (most common culprit)
The error 0XC00D0012 shows up when Windows Media Services (WMS) on the server is configured to only allow certain protocols, but the client (usually Windows Media Player) is trying to negotiate a protocol that's not on the list. I've seen this dozens of times on Server 2008 R2 and Server 2012 R2 boxes.
Here's the fix:
- Open Windows Media Services on the server.
- Right-click the publishing point you're hitting and select Properties.
- Go to the Source tab. Under Allow WMS to use the following protocols for delivery, check MMS, RTSP, and HTTP.
- Click Apply, then restart the publishing point.
Don't bother messing with the advanced protocol settings under the General tab unless the above doesn't work. That's a rabbit hole that rarely helps.
If you're serving content to clients on a LAN, MMS over UDP (port 1755) is the fastest. For internet clients, HTTP is more reliable through firewalls. The real fix is to enable all three protocols so the client can pick what works.
2. Firewall blocking port 1755 (MMS/UDP or MMS/TCP)
Even with WMS configured correctly, the error pops up if a firewall between the client and server blocks port 1755. I've seen this with Windows Firewall on the server itself, and with network firewalls.
For the server's Windows Firewall:
netsh advfirewall firewall add rule name="WMS MMS" dir=in action=allow protocol=TCP localport=1755
netsh advfirewall firewall add rule name="WMS MMS UDP" dir=in action=allow protocol=UDP localport=1755
Also open port 554 for RTSP and port 80 for HTTP if the client tries those protocols.
A quick test: from the client machine, run telnet server_ip 1755. If it fails, the port's blocked. If it connects (even briefly), the issue is elsewhere.
I've also seen this when the client's own firewall (like Norton or McAfee) blocks Windows Media Player. Disable the client firewall temporarily to test. If the stream works, add an exception for wmplayer.exe.
3. Client-side protocol fallback disabled or misconfigured
Windows Media Player has a setting that controls which protocols it tries. If someone disabled MMS or RTSP in the player, you get 0XC00D0012 even when the server is fine.
To check this:
- Open Windows Media Player on the client machine.
- Press Alt to show the menu bar, then Tools > Options.
- Go to the Network tab.
- Under Streaming media protocols, check that RTSP/UDP, RTSP/TCP, HTTP, and MMS are all checked. Also make sure Use a proxy is set to Automatically detect proxy settings unless you have a specific proxy to enter.
- Click Apply, then OK.
Group Policy often locks these settings in corporate environments. If the boxes are grayed out, check with your AD admin. There's a GPO setting under Computer Configuration > Administrative Templates > Windows Components > Windows Media Player > Networking that can force specific protocols.
Quick-reference summary table
| Cause | Check | Fix |
|---|---|---|
| WMS protocol restriction | Publishing point properties > Source tab | Enable MMS, RTSP, and HTTP for delivery |
| Port 1755 blocked | Telnet test, firewall logs | Open TCP/UDP 1755 on server and any network firewalls |
| Client protocol settings | Windows Media Player > Tools > Options > Network | Check all protocol boxes, auto-detect proxy |
If none of these fix it, check the Windows Media Services logs on the server. They're at %systemroot%\System32\LogFiles\WMS. Look for error code 0xC00D0012 in the logs — it'll tell you exactly which protocol negotiation failed.
Real-world scenario: I once spent three hours on this error only to find a Cisco ASA firewall was inspecting RTSP traffic and breaking the handshake. Disabling RTSP inspection on the ASA fixed it. If you have a security appliance, check its RTSP/MMS inspection settings.
Was this solution helpful?