gpt4 book ai didi

c# - 如何为 pinvoke 调用的结构分配空值?

转载 作者:太空狗 更新时间:2023-10-29 23:23:33 27 4
gpt4 key购买 nike

<分区>

我想调用LsaOpenPolicy ,它需要一个 LSA_OBJECT_ATTRIBUTES结构。我正在使用 the struct definition from pinvoke.net .此结构具有字段 public LSA_UNICODE_STRING ObjectName;

LSA_OBJECT_ATTRIBUTES MSDN 文章说:

When you call LsaOpenPolicy, initialize the members of this structure to NULL or zero because the function does not use the information.

具体来说:

ObjectName

    Should be NULL.

虽然我可以将 LSA_OBJECT_ATTRIBUTES 结构的其他字段分配给 IntPtr.Zero(或者对于值类型只是简单的 0),我看不到为 ObjectName 这样做的方法。具体来说,

Cannot implicitly convert type 'System.IntPtr' to 'LSA_UNICODE_STRING'

遇到这种情况怎么办?我应该只初始化一个长度为零(长度为 0,最大长度为 0,空/空缓冲区)的 LSA_UNICODE_STRING 吗?我是否应该更改 LSA_OBJECT_ATTRIBUTES 定义,以便该字段是 IntPtr?我是否应该使其可为空并将 null 分配给该字段?

我在内存管理方面的经验很少,所以我对任何可能导致内存泄漏的事情都很谨慎。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com