@@ -1,6 +1,6 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2024, Quinn Stephens.
|
||||
Copyright (c) 2024-2025, Quinn Stephens.
|
||||
Provided under the BSD 3-Clause license.
|
||||
|
||||
Module Name:
|
||||
@@ -19,7 +19,7 @@ Abstract:
|
||||
int
|
||||
ScanHexFormat (
|
||||
IN PCWSTR Buffer,
|
||||
IN ULONG MaximumLength,
|
||||
IN ULONG MaximumLength,
|
||||
IN PCWSTR Format,
|
||||
...
|
||||
)
|
||||
@@ -28,13 +28,17 @@ ScanHexFormat (
|
||||
|
||||
Routine Description:
|
||||
|
||||
Turns a text representation of a GUID into the binary format.
|
||||
Parses a formatted hex string.
|
||||
|
||||
Arguments:
|
||||
|
||||
String - A GUID string in the format {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.
|
||||
Buffer - The source string to parse.
|
||||
|
||||
Guid - The GUID structure which is to recieve the data.
|
||||
MaximumLength - The length of the source string.
|
||||
|
||||
Format - The format of the source string.
|
||||
|
||||
... - Pointers to data destinations.
|
||||
|
||||
Return Value:
|
||||
|
||||
@@ -93,10 +97,10 @@ Return Value:
|
||||
|
||||
if (*Buffer >= '0' && *Buffer <= '9') {
|
||||
Number += *Buffer - '0';
|
||||
} else if (*Buffer >= 'a' && *Buffer <= 'f') {
|
||||
Number += *Buffer - 'a' + 0xa;
|
||||
} else if (*Buffer >= 'A' && *Buffer <= 'F') {
|
||||
Number += *Buffer - 'A' + 0xA;
|
||||
} else if (*Buffer >= 'a' && *Buffer <= 'f') {
|
||||
Number += *Buffer - 'a' + 0xa;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
@@ -125,8 +129,8 @@ Return Value:
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlGUIDFromString (
|
||||
IN PUNICODE_STRING String,
|
||||
OUT GUID *Guid
|
||||
IN PUNICODE_STRING String,
|
||||
OUT GUID *Guid
|
||||
)
|
||||
|
||||
/*++
|
||||
@@ -155,9 +159,9 @@ Return Value:
|
||||
// Convert string to GUID data.
|
||||
//
|
||||
if (ScanHexFormat(
|
||||
String->Buffer, String->Length / sizeof(WCHAR),
|
||||
L"{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
|
||||
&Guid->Data1, &Guid->Data2, &Guid->Data3, &Data4[0], &Data4[1], &Data4[2], &Data4[3], &Data4[4], &Data4[5], &Data4[6], &Data4[7]
|
||||
String->Buffer, String->Length / sizeof(WCHAR),
|
||||
L"{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
|
||||
&Guid->Data1, &Guid->Data2, &Guid->Data3, &Data4[0], &Data4[1], &Data4[2], &Data4[3], &Data4[4], &Data4[5], &Data4[6], &Data4[7]
|
||||
) == -1) {
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2024, Quinn Stephens.
|
||||
Copyright (c) 2024-2025, Quinn Stephens.
|
||||
Provided under the BSD 3-Clause license.
|
||||
|
||||
Module Name:
|
||||
@@ -20,7 +20,7 @@ VOID
|
||||
NTAPI
|
||||
RtlInitUnicodeString (
|
||||
OUT PUNICODE_STRING Destination,
|
||||
IN PCWSTR Source
|
||||
IN PCWSTR Source
|
||||
)
|
||||
|
||||
/*++
|
||||
|
Reference in New Issue
Block a user