ファイルの所有者の表示(C言語)

説明:

ファイルの所有者を表示する。呼び出し元はREAD_CONTROLアクセスを持っていなければならない。

サンプルコード:

void DispFileOwner()
{
	PSECURITY_DESCRIPTOR psd;
	PSID psid;
	SID_NAME_USE snu;
	DWORD sdsize;
	BOOL OwnerDefaulted;
	char *AccountName, *DomainName;
	DWORD AccountLen, DomainLen;

	/* 初期化 */
	psd = GlobalAlloc(GMEM_FIXED, 1000);
	AccountName = GlobalAlloc(GMEM_FIXED, 1000);
	DomainName = GlobalAlloc(GMEM_FIXED, 1000);

	AccountLen = DomainLen = 1000;

	/* ファイルのセキュリティ情報取得 */
	GetFileSecurity("c:\\test", OWNER_SECURITY_INFORMATION, psd, 1000, &sdsize);

	/* 所有者のSID取得 */
	GetSecurityDescriptorOwner(psd, &psid, &OwnerDefaulted);

	/* SIDを名前に変換 */
	LookupAccountSid(NULL, psid, AccountName, &AccountLen, DomainName, &DomainLen, &snu);

	/* 表示 */
	printf("Owner Name: %s\n", AccountName);
	printf("Domain of Owner: %s\n", DomainName);

	/* 後処理 */
	GlobalFree(psd);
	GlobalFree(AccountName);
	GlobalFree(DomainName);

}
(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。