/*++

Copyright (c) 2024, Quinn Stephens.
Provided under the BSD 3-Clause license.

Module Name:

   ntrtl.h

Abstract:

   Provides NT RTL (Run-Time Library) definitions.

--*/

#ifndef _NTRTL_H
#define _NTRTL_H

#include <string.h>
#include <ntdef.h>

//
// Memory operations.
//
#define RtlMoveMemory(Destination, Source, Length) memmove((Destination), (Source), (Length))
#define RtlCopyMemory(Destination, Source, Length) memcpy((Destination), (Source), (Length))
#define RtlFillMemory(Destination, Length, Fill)   memset((Destination), (Fill), (Length))
#define RtlZeroMemory(Destination, Length)         memset((Destination), 0, (Length))

VOID
NTAPI
RtlInitUnicodeString (
   OUT PUNICODE_STRING Destination,
   IN PCWSTR Source
   );

NTSTATUS
NTAPI
RtlGUIDFromString (
   IN PUNICODE_STRING String,
   OUT GUID *Guid
   );

#endif /* !_NTRTL_H */