https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e4748fe448e3e8b04d8082c7ca5e250706a4a8d9

commit e4748fe448e3e8b04d8082c7ca5e250706a4a8d9
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Tue Jun 4 17:18:13 2024 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Sun Jan 5 22:06:59 2025 +0100

    [NTOS:IO] IoVolumeDeviceToDosName(): Add SAL2 annotations, fix pool tag 
(#6989)
    
    The DEV2DOS tag value is from the official Windows pooltag.txt file.
---
 ntoskrnl/include/internal/tag.h |  1 +
 ntoskrnl/io/iomgr/volume.c      | 10 ++++++----
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/ntoskrnl/include/internal/tag.h b/ntoskrnl/include/internal/tag.h
index 4c71be47240..6febe9d6e51 100644
--- a/ntoskrnl/include/internal/tag.h
+++ b/ntoskrnl/include/internal/tag.h
@@ -94,6 +94,7 @@
 #define TAG_VPB                 ' BPV'
 #define TAG_RTLREGISTRY         'vrqR'
 #define TAG_PNP_DEVACTION       'aDpP'
+#define TAG_DEV2DOS             ' d2D'
 
 /* Loader Related Tags */
 #define TAG_MODULE_OBJECT       'omlk' /* klmo - kernel ldr module object */
diff --git a/ntoskrnl/io/iomgr/volume.c b/ntoskrnl/io/iomgr/volume.c
index 600d899ce48..3f614e27c98 100644
--- a/ntoskrnl/io/iomgr/volume.c
+++ b/ntoskrnl/io/iomgr/volume.c
@@ -1276,8 +1276,10 @@ IoSetSystemPartition(IN PUNICODE_STRING VolumeNameString)
  */
 NTSTATUS
 NTAPI
-IoVolumeDeviceToDosName(IN PVOID VolumeDeviceObject,
-                        OUT PUNICODE_STRING DosName)
+IoVolumeDeviceToDosName(
+    _In_ PVOID VolumeDeviceObject,
+    _Out_ _When_(return==0, _At_(DosName->Buffer, __drv_allocatesMem(Mem)))
+        PUNICODE_STRING DosName)
 {
     NTSTATUS Status;
     ULONG Length;
@@ -1373,7 +1375,7 @@ IoVolumeDeviceToDosName(IN PVOID VolumeDeviceObject,
 
     /* Reallocate the memory, even in case of success, because
      * that's the buffer that will be returned to the caller */
-    VolumePathPtr = ExAllocatePoolWithTag(PagedPool, Length, 'D2d ');
+    VolumePathPtr = ExAllocatePoolWithTag(PagedPool, Length, TAG_DEV2DOS);
     if (!VolumePathPtr)
     {
         Status = STATUS_INSUFFICIENT_RESOURCES;
@@ -1418,7 +1420,7 @@ IoVolumeDeviceToDosName(IN PVOID VolumeDeviceObject,
     goto Quit;
 
 ReleaseMemory:
-    ExFreePoolWithTag(VolumePathPtr, 'D2d ');
+    ExFreePoolWithTag(VolumePathPtr, TAG_DEV2DOS);
 
 Quit:
     ObDereferenceObject(FileObject);

Reply via email to