Ok perhaps I can answer your questions with more simplicity. I use vtxFace's a lot when I writing scripts to change an objects vertex coloring because it alows you to access a certain corner of a face. The two dimensions as you've guessed refer to a vertex index and then a face index, they are depended on each other(not so much one specifically on the other) as long as you choose a vertex index that's part of the face index you choose it will work.
"3. And of cause, how can I find the mysterious .vtx, .vtxFace or other useful things if I write my own script. I tried listAttr, but all these things are not in the list."
Ok, there's two things you might be trying to find, a currently selected vert, face, vxtFace you check with the "ls" command.
If you're looking for how many verts, faces, vxtFace and object has all you need to do it have the object selected and use the "polyEvaluate" command, for example:
$facecount = polyEvaluate -f
;
or
$vertcount = polyEvaluate -v
;
*Note this with return an array so when you check it, check $facecount[0]
Now to find all the verts associated with a face or to find the faces associated with a vert for using vxtFace, you want the "polyListComponentConversion" command
string $verts[] = polyListComponentConversion -ff -tv "object.f[#]"
;
or
string $faces[] = polyListComponentConversion -fv -tf "object.vxt[#]"
;
So there you go, I hope that explains everything, I apologise if my terminaligy is funny, I'm only a self-taught programmer 