* PROJECT: ReactOS system libraries
* PURPOSE: Boot Data implementation
* FILE: lib/rtl/bootdata.c
- * PROGRAMMERS:
+ * PROGRAMMERS:
*/
/* INCLUDES *****************************************************************/
static SID_IDENTIFIER_AUTHORITY LocalSystemAuthority = {SECURITY_NT_AUTHORITY};
static NTSTATUS
-RtlpSysVolCreateSecurityDescriptor(OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
+RtlpSysVolCreateSecurityDescriptor(OUT PISECURITY_DESCRIPTOR *SecurityDescriptor,
OUT PSID *SystemSid)
{
PSECURITY_DESCRIPTOR AbsSD = NULL;
/* allocate and initialize the security descriptor */
AbsSD = RtlpAllocateMemory(sizeof(SECURITY_DESCRIPTOR),
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (AbsSD == NULL)
{
- Status = STATUS_INSUFFICIENT_RESOURCES;
+ Status = STATUS_NO_MEMORY;
goto Cleanup;
}
DaclSize = sizeof(ACL) + sizeof(ACE) +
RtlLengthSid(LocalSystemSid);
Dacl = RtlpAllocateMemory(DaclSize,
- TAG('S', 'e', 'A', 'c'));
+ 'cAeS');
if (Dacl == NULL)
{
- Status = STATUS_INSUFFICIENT_RESOURCES;
+ Status = STATUS_NO_MEMORY;
goto Cleanup;
}
if (Dacl != NULL)
{
RtlpFreeMemory(Dacl,
- TAG('S', 'e', 'A', 'c'));
+ 'cAeS');
}
if (AbsSD != NULL)
{
RtlpFreeMemory(AbsSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
}
static NTSTATUS
RtlpSysVolCheckOwnerAndSecurity(IN HANDLE DirectoryHandle,
- IN PSECURITY_DESCRIPTOR SecurityDescriptor)
+ IN PISECURITY_DESCRIPTOR SecurityDescriptor)
{
PSECURITY_DESCRIPTOR RelSD = NULL;
PSECURITY_DESCRIPTOR NewRelSD = NULL;
/* allocate enough memory for the security descriptor */
RelSD = RtlpAllocateMemory(DescriptorSize,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (RelSD == NULL)
{
- Status = STATUS_INSUFFICIENT_RESOURCES;
+ Status = STATUS_NO_MEMORY;
goto Cleanup;
}
ASSERT(AbsSDSize > DescriptorSize);
AbsSD = RtlpAllocateMemory(DescriptorSize,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (AbsSD == NULL)
{
- Status = STATUS_INSUFFICIENT_RESOURCES;
+ Status = STATUS_NO_MEMORY;
goto Cleanup;
}
/* allocate enough memory for the new self-relative descriptor */
NewRelSD = RtlpAllocateMemory(RelSDSize,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (NewRelSD == NULL)
{
+ Status = STATUS_NO_MEMORY;
goto Cleanup;
}
if (RelSD != NULL)
{
RtlpFreeMemory(RelSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
if (NewRelSD != NULL)
{
RtlpFreeMemory(NewRelSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
#ifdef _WIN64
if (AbsSDAllocated)
{
RtlpFreeMemory(AbsSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
#endif
HANDLE hDirectory;
UNICODE_STRING DirectoryName, NewPath;
ULONG PathLen;
- PSECURITY_DESCRIPTOR SecurityDescriptor = NULL;
+ PISECURITY_DESCRIPTOR SecurityDescriptor = NULL;
PSID SystemSid = NULL;
BOOLEAN AddSep = FALSE;
NTSTATUS Status;
AddSep = TRUE;
PathLen += sizeof(WCHAR);
}
-
+
/* allocate the new string */
NewPath.MaximumLength = (USHORT)PathLen + sizeof(WCHAR);
NewPath.Buffer = RtlpAllocateStringMemory(NewPath.MaximumLength,
/* free allocated memory */
ASSERT(SecurityDescriptor != NULL);
- ASSERT(SecurityDescriptor->Dacl != NULL)
+ ASSERT(SecurityDescriptor->Dacl != NULL);
RtlpFreeMemory(SecurityDescriptor->Dacl,
- TAG('S', 'e', 'A', 'c'));
+ 'cAeS');
RtlpFreeMemory(SecurityDescriptor,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
RtlFreeSid(SystemSid);
}
return Status;
}
+/*
+* @unimplemented
+*/
+NTSTATUS
+NTAPI
+RtlCreateBootStatusDataFile(VOID)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
/*
* @unimplemented
*/
NTSTATUS
NTAPI
RtlLockBootStatusData(
- HANDLE Filehandle
+ OUT PHANDLE Filehandle
)
{
UNIMPLEMENTED;
NTSTATUS
NTAPI
RtlUnlockBootStatusData(
- HANDLE Filehandle
+ IN HANDLE Filehandle
)
{
UNIMPLEMENTED;