Struct std::os::windows::io::HandleOrInvalid [−][src]
#[repr(transparent)]pub struct HandleOrInvalid(_);Expand description
FFI type for handles in return values or out parameters, where INVALID_HANDLE_VALUE is used
as a sentry value to indicate errors, such as in the return value of CreateFileW. This uses
repr(transparent) and has the representation of a host handle, so that it can be used in such
FFI declarations.
The only thing you can usefully do with a HandleOrInvalid is to convert it into an
OwnedHandle using its TryFrom implementation; this conversion takes care of the check for
INVALID_HANDLE_VALUE. This ensures that such FFI calls cannot start using the handle without
checking for INVALID_HANDLE_VALUE first.
If this holds a valid handle, it will close the handle on drop.
Trait Implementations
Constructs a new instance of Self from the given RawHandle returned
from a Windows API that uses INVALID_HANDLE_VALUE to indicate
failure, such as CreateFileW.
Use Option<OwnedHandle> instead of HandleOrInvalid for APIs that
use null to indicate failure.
Safety
The resource pointed to by handle must be either open and otherwise
unowned, or equal to INVALID_HANDLE_VALUE (-1). It must not be null.
Note that not all Windows APIs use INVALID_HANDLE_VALUE for errors;
see here for the full story.