Windows 2000で Steam が起動しなくなった理由を調査 その1
push 00000000h push 00000000h lea eax,[ebp-14h] mov dword ptr [ebp-24h],25A207B9h push eax push 00000004h push [L0077251C] lea eax,[ebp-24h] mov dword ptr [ebp-20h],4660DDF3h push 00000010h push eax push C8000006h push esi mov dword ptr [ebp-1Ch],E576E98Eh mov dword ptr [ebp-18h],3E06748Ch mov [ebp-14h],edi call [WS2_32.dll!WSAIoctl] |
Windows XP で動作して、 2000だと動作しない部分のコードです
これを C++ で書き直すと
#define WSAID_CONNECTEX {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
WSAIoctl(socket, SIO_GET_EXTENSION_FUNCTION_POINTER, WSAID_CONNECTEX , sizeof(GUID) /*0x10*/, &lpfnConnectEx, sizeof(lpfnConnectEx) /*4*/ , &dwBytes, NULL, NULL);
となります。
WSAID_CONNECTEX は Windows 2000には存在しない機能なので、エラーになってたわけですね ・ω・
同様に WSAID_DISCONNECTEX / WSAID_TRANSMITPACKETS も存在しないわけですが ・ω・;
#define WSAID_DISCONNECTEX {0x7fda2e11,0x8630,0x436f,{0xa0,0x31,0xf5,0x36,0xa6,0xee,0xc1,0x57}}
#define WSAID_TRANSMITPACKETS {0xd9689da0,0x1f90,0x11d3,{0x99,0x71,0x00,0xc0,0x4f,0x68,0xc8,0x76}}
さて、この問題解決できるのでしょうか ・ω・
Comments