Zitat von
scp:
Manchmal ist auch gerade bei APIs erforderlich, die Strukturen vor allen anderen Aktionen mit FillChar() bzw. ZeroMemory() vorher auf Null zu setzten, damit eventuell nicht gesetzte Parameter auch als solche erkannt werden.
hier definitiv nicht notwendig da man den Inhalt der Struktur moeglichst nicht manuell anruehren sollte.
Ich hab gedacht dein CreatePrivateObjectSecurity() wuerde weiterhin fehlschlagen. Die einzige Idee die ich noch habe ist dass NetShareAdd() einen parent descriptor braucht.
Ich vermute auch dass du zu der ACE den aktuellen user sid (GetTokenInformation()) und everyone (eine entsprechende SID generieren, details siehe unten) mindestens hinzufuegen musst. Evtl auch einen Administrator wenn das prog nicht als admin laeuft. hinzufuegen geht mit AddAccessAllowedAceEx().
SIDs, bei allen Revision: SID_REVISION, nicht genannte felder auf 0:
Administrators:
SubAuthorityCount:
IdentifierAuthority.Value[5]: 5 (nt authority)
SubAuthority[0]: SECURITY_BUILTIN_DOMAIN_RID
SubAuthority[1]: DOMAIN_ALIAS_RID_ADMINS
Users:
SubAuthorityCount: 2
IdentifierAuthority.Value[5]: 5 (nt authority) (koennte auch 2 (local authority sein, bin mir da nicht ganz sicher))
SubAuthority[0]: SECURITY_BUILTIN_DOMAIN_RID
SubAuthority[1]: DOMAIN_ALIAS_RID_USERS
Everyone:
SubAuthorityCount: 1
IdentifierAuthority.Value[5]: 1 (world authority)
SubAuthority[0]: SECURITY_WORLD_RID
SubAuthority[1]: 0
ich hoff ich hab mich da nicht irgendwie vertan....