Yes, AES_CBC requires a 16 byte initialization vector
You should write:
byte[] iv = new byte[16];
// fill the iv with some value
.....
Mechanism aescbc = new Mechanism(Mechanism.CKM_AES_CBC, iv)
// launches the encryption operation AES mechanism
nRes = session.EncryptInit(aescbc, keys1);