# Why \`std::os::windows::raw::HANDLE\` a pointer while \`windows\_sys::Windows::Win32::Foundation::HANDLE\` a usize?

**URL:** <https://internals.rust-lang.org/t/why-std-handle-a-pointer-while-windows-sys-handle-a-usize/19559>\
**Category:** Uncategorized\
**Created:** [September 12, 2023, 8:49am UTC](https://internals.rust-lang.org/t/why-std-handle-a-pointer-while-windows-sys-handle-a-usize/19559 "2023-09-12T08:49:37Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![stackinspector](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/stackinspector/32/9487_2.png) [@stackinspector](https://internals.rust-lang.org/u/stackinspector)\
**Post date:** [September 19, 2023, 1:10pm UTC](https://internals.rust-lang.org/t/why-std-handle-a-pointer-while-windows-sys-handle-a-usize/19559/8 "2023-09-19T13:10:00Z")

</div>

> [@lyphyser](#):
>
> The only difference is that on CHERI-like systems, pointers have capability/provenance metadata, while usize doesn't.

May related: [Pre-RFC: `usize` semantics](https://internals.rust-lang.org/t/pre-rfc-usize-semantics/19444)

---

_[View the full topic](https://internals.rust-lang.org/t/why-std-handle-a-pointer-while-windows-sys-handle-a-usize/19559)._
