MSDN says if DeviceIoControl completes successfully, the return value is non zero.

Given this code:
Code:
if(!DeviceIoControl(<parameters>)
{
    <code>
}
Is this the same thing?
Code:
BOOL bSuccess;

bSuccess = DeviceIoControl(<parameters>)
if(bSuccess == 0) //function call failed
{
    <code>
}
(I know this is very basic, but the ! operator always causes me great confusion,
especially when some functions succeed return is zero, and others is non-zero.)