6

LsaOpenPolicy構造体を取るを呼び出したいと思いLSA_OBJECT_ATTRIBUTESます。pinvoke.net の構造体定義を使用しています。この構造体にはフィールドがありますpublic LSA_UNICODE_STRING ObjectName;

LSA_OBJECT_ATTRIBUTESMSDNの記事には次のように書かれています。

を呼び出すときは、関数が情報を使用しないため、LsaOpenPolicyこの構造体のメンバーをNULLまたはゼロに初期化します。

具体的には:

オブジェクト名

NULL    にする必要があります。

LSA_OBJECT_ATTRIBUTES構造体の他のフィールドを(または値の型に対してIntPtr.Zero単純に)割り当てることはできますが、 . 具体的には、0ObjectName

タイプ 'System.IntPtr' を 'LSA_UNICODE_STRING' に暗黙的に変換することはできません

この場合、どうすればよいですか?LSA_UNICODE_STRING長さゼロ (長さ 0、最大長 0、空/ヌル バッファ) を初期化する必要がありますか? LSA_OBJECT_ATTRIBUTESフィールドが になるように定義を変更する必要がありIntPtrますか? null 可能にnullしてそのフィールドに割り当てる必要がありますか?

私はメモリ管理の経験がほとんどないため、メモリ リークを引き起こす可能性のあるものには警戒しています。

4

1 に答える 1