ソース見たけどKernelのソースはファイル名が*.cになってるなぁ。

int strcmpW(const wchar_t *pwc1, const wchar_t *pwc2)
{
 int ret = 0;

 while ( !(ret = *pwc1 - *pwc2) && *pwc2)
  ++pwc1, ++pwc2;
 return ret;
}

こんなの発見。strcmpと違って返り値は-1,0,1じゃないんだね。