public SecurityDescriptor(SafeHandle objectHandle, ObjectType objectType, SECURITY_DESCRIPTOR *descriptor, bool ownsHandle = true) : base((IntPtr)descriptor, ownsHandle) { _control = descriptor->Control; _objectHandle = objectHandle; _objectType = objectType; }
/// <summary> /// Equivalent of InitializeObjectAttributes macro with the exception that you can directly set SQOS. /// </summary> public unsafe OBJECT_ATTRIBUTES(UNICODE_STRING *objectName, ObjectAttributes attributes, IntPtr rootDirectory, SECURITY_DESCRIPTOR *securityDescriptor = null, QualityOfService *securityQualityOfService = null) { Length = (uint)sizeof(OBJECT_ATTRIBUTES); RootDirectory = rootDirectory; ObjectName = objectName; Attributes = attributes; SecurityDescriptor = securityDescriptor; SecurityQualityOfService = securityQualityOfService; }