わかった。多くの掘り下げの後、最終的に解決策を見つけました:I_NetLogonControl2
NETLOGON_INFO_2* buffer=NULL;
LPBYTE domainName = (LPBYTE) L"eng";
int ret = I_NetLogonControl2(NULL, NETLOGON_CONTROL_TC_VERIFY, 2, (LPBYTE) &domainName, (LPBYTE*)&buffer);
wprintf( L"I_NetLogonControl2() returned %i\n", ret);
if (ret==0)
{
wprintf( L"PdcConenctionStatus: %i\n", buffer->netlog2_pdc_connection_status);
if (buffer->netlog2_pdc_connection_status==0)
wprintf(L"Trust relationship verified.\n");
else
wprintf(L"Trust relationship FAILED.\n");
wprintf( L"TcConenctionStatus: %i\n", buffer->netlog2_tc_connection_status);
wprintf( L"Flags: %i\n", buffer->netlog2_flags);
}
return 0;
そのため、NETLOGON_INFO_2::netlog2_pdc_connection_status に魔法のようなものが隠されています。
この値が 86 (ERROR_INVALID_PASSWORD) または 5 (ERROR_ACCESS_DENIED) の場合、コンピューター アカウントは変更 (またはリセット) されています。
コンピューター アカウントが削除されている場合、値は 1787 (ERROR_NO_TRUST_SAM_ACCOUNT) です。
これが他の人に役立つことを願っています!
残念ながら、MSDN のドキュメントは正確ではありません。「NETLOGON_CONTROL_TC_VERIFY」を指定する場合、データ引数 (LPBYTE) は (LPWSTR*) を指している必要があります。