Reading the MSDN page for DeviceIoControl says the following:
Return value
If the operation completes successfully, the return value is nonzero.
If the operation fails or is pending, the return value is zero. To get extended error information, call GetLastError.
So, it seems that your IOCtls are supported by the device since you get something other than zero. Remember that you may get negative value if you are using signed integers, try them with unsigned integers if you aren't supposed to get negative values.