В .NET Framework есть класс SafeHandleZeroOrMinusOneIsInvalid , а также класс SafeHandleMinusOneIsInvalid .
SafeHandleZeroOrMinusOneIsInvalid
SafeHandleMinusOneIsInvalid
Почему это? В каких ситуациях ноль когда-либо является допустимым дескриптором?