Struct std::os::windows::io::HandleOrInvalid [−][src]
#[repr(transparent)]pub struct HandleOrInvalid(_);
This is supported on Windows only.
Expand description
返回值或输出参数句柄的 FFI 类型,其中 INVALID_HANDLE_VALUE
用作哨兵值以指示错误,例如在 CreateFileW
的返回值中。
这使用 repr(transparent)
并具有主机句柄的表示,因此它可以用于此类 FFI 声明。
您可以对 HandleOrInvalid
做的唯一有用的事情是使用其 TryFrom
实现将其转换为 OwnedHandle
; 此转换负责检查 INVALID_HANDLE_VALUE
。
这可确保此类 FFI 调用在未先检查 INVALID_HANDLE_VALUE
的情况下无法开始使用句柄。
此类型涉及除 INVALID_HANDLE_VALUE
之外的任何有效值,包括 NULL
。
这是因为使用 INVALID_HANDLE_VALUE
作为它的哨兵值的 API 在 windows_subsystem = "windows"
或其他 I/O 设备分离的情况下可能会返回 NULL
。
如果它持有一个有效的句柄,它将关闭 丢弃 上的句柄。