ワイドキャラの定義がUTF-16でないならば、UTF-16ファイルを
read(buf, 10)
wchar_t* w = (wchar_t*)buf;
wcsstr(buf, str);
みたいなコードで検索するのはすべてだめということになりそうな。。
ワイドキャラを固定文字コードとするのが違反なら、Utf16ToWideChar
みたいな関数が必要になるよね