最初に行うことは、SECURITY_ATTRIBUTES
構造体を作成し、そのメンバーを設定することです。
SECURITY_ATTRIBUTES SecAttr;
SecAttr.size = sizeof(SECURITY_ATTRIBUTES); //Set size of structure
次のメンバーは、SECURITY_DESCRIPTOR
このオブジェクトへのセキュリティアクセスを管理するために必要なすべてのデータを実際に含むタイプです。
MSDNのドキュメントに従って、この構造体を直接作成することはできませんが、ドキュメントで提供されている関数を使用してそのような構造体を作成し、必要に応じて必要なすべてのフラグを設定してから、に渡すポインタを取得しますSecAttr
。
SECURITY_DESCRIPTOR
このような構造体を作成する方法の例は、ここにあります。この例では、レジストリキーに対して実行されますが、原則は同じです。
基本的に、オブジェクトに持たせたいアクセス(読み取り/書き込み/読み取り専用)などの適切なプロパティを備えたDACL(随意セキュリティアクセス制御リスト)またはSACL(システムアクセス制御リスト)を入力します。
構造体全体に入力したら、SECURITY_ATTRIBUTES
それを関数に渡すことができますSHCreateDirectoryEx
。