I come back to this matter. Why checking the available memory? After all, I could just rely to the error generated by the allocation function. In fact, I don't check the available memory for the ramdisk, but to protect the whole system from becoming totally unusable. And the system needs virtual memory. That's why I think checking ullAvailPageFile even for physical allocation is the right thing. Perhaps I miss something, but I think the only issue of the large-page allocation method is that we cannot...
@w77 - I would assume that you have no plans on expanding to add support for ARM64, but I would certainly love to see it. Having used a mid-level Qualcomm Snapdragon X Plus laptop (32GB RAM), I think it is far superior in some respects (especially heat and quietness) to my far more expensive and beefier June 2025 Lenovo ThinkPad Intel/Nvidia laptop.
@w77 - I would assume that you have no plans on expanding to add support for ARM64, but I would certainly love to see it. Having used a mid-level Qualcomm Snapdragon X Plus laptop (32GB RAM), I think it is far superior in some respects (especially heat and quietness) to my far more expensive and beefier June 2025 Intel/Nvidia laptop.
Hi All ! Please tell me what the AWE option is for. My PC has 96 GB of RAM, and of course I don't use a swap file. Do I need this option to create a RAM drive or not?
Hi All! I can create a fixed-size RAM drive, and it works perfectly. But I don't understand how to create a dynamic RAM drive.
Hi v77, the fix works! Thank you so much! Best regards, J
For one of the two command line tools (aim_cli.exe), a flag was not explicitly specified for disks that are not read-only. It still worked well... except for removable disks. Thanks for pointing that. I have uploaded a quick fix. Please try.
Dear Forum, I'm using a program called Rekordbox that can write only to removable disks. As I don't have a USB key at hand, I thought I'd emulate one, by mounting an image using AIM Toolkit, ticking the "removable" checkbox, so that Rekordbox can then write to that image. I can successfully mount the image and the contained FAT32 volume shows up as removable in Rekordbox just like I need. However, the entire disk is read-only, i.e. I can not alter or write to the volume. In diskpart, the disk shows...
OK, thanks, I'll try that then.
Why not use the GUI? In the Advanced tab, there is a field "Run after mounting" that allows you to run anything just after the drive is ready. You could use swapadd in this field. With what you use in your previous topic, it would come to: "C:\Windows\System32\swapadd.exe" P:\pagefile.sys 256M 5G Just ensure that the correct full path to swapadd is present.
Hi everyone, I'm thinking about regrouping my Temp/Tmp folders and pagefile under the same roof instead of having two separate RAM disks. Since I'm running a .bat file that creates the RAM disk where the pagefile resides (the other is set via GUI), I'd like to know what commands I must add to it so that the disk is initiated, set to the proper size and file system, then points both user and system temp folders to it.
OK, I'm not sure I understood everything in your last post so here's what I did: I copy-pasted swapadd.exe onto the C:\Programmes\AIM Toolkit folder, then edited my .bat file with the complete path of both aim_ll and swapadd and now it's working. Thanks for your help! I'm still not sure what difference placing a pagefile in the RAM disk is going to make, but I wanted to try anyway.
Unlike ImDisk, AIM Toolkit copies no file in Windows\System32. As I said, you have to go in the installation folder (or write the full path to aim_ll). "ll" means "low level".
Unlike ImDisk, AIM Toolkit copies no file in Windows\System32. As I said, you have to go in the installation folder (or write the full path to aim_ll).
EDIT: it doesn't work. "aim_ll" isn't recognized as a command. Do I have to manually add AIM to the Path? I also tried "aim_cli" just in case, same result.
EDIT: it doesn't work. "aim_ll" isn't recognized as a command. Do I have to manually add AIM to the Path?
OK thanks, I'll try. Is that "ll" or "II" (two lower case L's or two upper case i's)? I'll copy-paste from your post, but just in case I need to type further down the road, you know...
You can just replace imdisk by aim_ll (in the installation folder). Most options are compatible. aim_ll -a -s 6G -m P: -p "/fs:ntfs /q /y" Never tried swapadd but it should work the same way.
Hi everyone, I finally adopted AIM Toolkit since ImDisk is now defunct (RIP 😢), but I don't know if I can create a pagefile in a RAM disk the way I used to with ImDisk. The syntax I used looked like this (just an example): imdisk -a -s 6G -m P: -p "/fs:ntfs /q /y" swapadd P:\pagefile.sys 256M 5G Swapadd is located in my Windows\System32 folder and ready to go, but I don't know: a) If AIM Toolkit supports it; and b) How to edit the command line above to make it work. 😐
OK, got it. I've uninstalled ImDisk and installed AIM instead. So far, so good. Thx!
Both can run simultaneously. But if you uninstall one of them, you should reinstall the other one. The main difference is that volumes are in fact emulated full disks that you can see in the Windows Disk Manager.
Hi everyone, I discovered the existence of AIM Toolkit completely by chance and came here. I've read several entries in the discussion board, including one where v77 says that "ImDisk is dead". As a long time ImDisk user, I'm wondering what are the advantages and drawbacks of switching to AIM Toolkit. I'm not worried about speed or that kind of thing, because those things are almost imperceptible and highly subjective, but overall stability is important for me. My main PC runs Windows 10 Iot LTSC...
also one extra annoying , when create 2 or more ramdisk , it som times not remember volume name and can mix names example i have 2 volumes Cache and Data, and after reboot Data can mount as Local Drive or Cache Cache
Latest exist nvidia driver. Not tested with dynamic ramdisk . The video itself works, but that "scroll" is annoying. especially when the video has black bars on the sides, it flashes on the left black bar. I'll try to make a video of this or screenshots to explain it more clearly.
There seems to be an incompatibility between the AIM driver and the graphic driver. Is the graphic driver updated? And does this occur with dynamic ramdisks? I cannot explain the second issue but I keep that in mind.
I created RAMdisk 1 for the Google Chrome cache and pointed it to empty Cache and Code Cache folders to clear them every system restart. Then I placed them using a symbolic link and added them to my Google Chrome profile. 2 for data I copy from a prepared folder with "deletion control" Local Extension Settings IndexedDB and also placed a symbolic link back into the profile. The file system is NTFS, the RAMdisk is fixed. so in result i have 2 disks Cache and Data - with autosaved when shutdown / reboot...
This means that the system does not even try to unfragment the memory in order to get a 2MB contiguous block. Hmm.. I think the system was under high memory pressure at the time and perhaps it was unable to do so. There are 32 GB of RAM, but there was an opened browser window with a lot of tabs opened, a VM with 8 GiB allocated to it was running, and I was also decompressing an archive, which was using %Temp%; that's when the message was displayed. If the system does not try to move anything, this...
With what you had as free pageable memory, testing ullAvailPageFile should not have generated an error. So we can indeed assume that the system could not allocate a 2MB contiguous block. This means that the system does not even try to unfragment the memory in order to get a 2MB contiguous block. And if the system does not try to move anything, this also means that I should test ullAvailPhys, as you suggested. However, a lot of users use this feature because they want their data to be kept in physical...
Possible mistake when large pages are used, ullAvailPageFile?
Sorry, there was a mistake on the website so it had not shown up separately as it should have done. Fixed that now!
If a user wants to lose control of his machine by letting a software decide what file can exist or not, it's his choice and he have to assume.* I like it! :)
By the way, I will never do that for any other vendor. If a user wants to lose control of his machine by letting a software decide what file can exist or not, it's his choice and he have to assume. I like it! :)
AIMtk-svc.exe and RamDyn.exe had these alerts. I made a false positive report. According to VirusTotal, it is now fixed for both files. I hope not to have to do that each time. By the way, I will never do that for any other vendor. If a user wants to lose control of his machine by letting a software decide what file can exist or not, it's his choice and he have to assume.
Solved itself. For completeness I attached a screenshot of the block log from yesterday. But today this did not happen anymore.
No no, thank you! You identified the problem and corrected it in no time at all!
It detects Trojan:Script/Wacatac.B!ml. Best regards, Micha
I am trying to use this feature to assit with downloading stuff to RAM directly. But HWMonitor and Task Manager show SSD activity and temperature increase. I've tried this https://steamcommunity.com/discussions/forum/1/458606877310501802/ mklink /d "C:\Program Files (x86)\Steam\steamapps\workshop\content\<app-id>" "R:\<game> Mods\" I've tried creating junction, I've tried the empty folder feature in program. Nothing works. </game></app-id> It shows SSD writes, then at one time it copies whole file...
Thanks again. It is now fixed and should work like before. aim_cli now uses by default the driver deviodrv instead of the shared memory method previously used, hence the bug. For command line users, you have to either add --io=shm to aim_cli, or ensure that the driver deviodrv is started.
Thank you both for your responses. “accrights” is a great tool too. I'd been struggling with secedit.exe's behavior, but it solved the problem in one go.
How much time did you spend to make all these measures? Did you really notice these differences by yourself? Are you making huge static ramdisks the whole day? But thanks. You perfectly illustrate what I was saying.
FYI: Speed test on a Intel Core Ultra 7 265K with 192GB of RAM which runs at 6400Mhz 32,39,39,102 AIM Toolkit 2025-10-22 Creating 170GB drive default settings 63 Seconds. Creating 170GB drive Quick Format enabled 0.5 Seconds. Creating 50GB drive default settings 22 Seconds. Creating 50GB drive Quick Format enabled 0.5 Seconds. Copying 50GB data from SSD to Ram drive 22 seconds Copying 50GB data from one memory drive to an other 50Gbyte memory drive takes 17 seconds. ImDisk 2025-02-06 Creating 170GB...
I cannot find it. Edit: It is in the archive files just below the line (not obvious): "Big ZIP files with compiled stand-alone exe-files for most of the utilities listed here and some more:"
I cannot find it.
I have a tool I call "accrights" that can do this if you like. To show assigned rights to Administrators group: accrights Administrators To remove “SeLockMemoryPrivilege”: accrights /remove Administrators SeLockMemoryPrivilege It is on my website https://ltr-data.se/opencode.html
For now, I changed the default download to the version 20250818. I asked Olof about this issue, as I cannot find a quick fix. I could also try to remove the use of aim_ll, but it would require more time.
The permission is granted to the administrators group. Without the group policy editor, it is indeed difficult to revert the change, but not impossible, with secedit.exe, or a PowerShell script such as that. I could add something to remove the permission, but if another software needs it, this can break it. And even you are not necessarily aware of that. For instance, 7-Zip does not ask you before changing this permission... So I would say, you should not worry too much about that.
Hi. I have a question. I understand that the Toolkit automatically adds the “SeLockMemoryPrivilege” permission as needed, but specifically, to which account is the “SeLockMemoryPrivilege” permission granted? I want to know how to revert to the original state after trying “large-page”. Also, if using the Home Edition, how can I check and restore this? As you know, the Home Edition does not include the Group Policy Editor.
Hi. This is a question. I understand that the Toolkit automatically adds the “SeLockMemoryPrivilege” permission as needed, but specifically, to which account is the “SeLockMemoryPrivilege” permission granted? I want to know how to revert to the original state after trying “large-page”. Also, if using the Home Edition, how can I check and restore this? As you know, the Home Edition does not include the Group Policy Editor.
Yes thanks, there is an issue. I will dig into that. It should be the update of aim_cli done in the version 20251015.
AIMtk installed cleanly as far as I could see, with all components selected and RAM disks work as expected, I have one running, but I am unable to mount a VMDK image using MountImg. From what I could see, because it spawns quickly, MountImg calls aim_cli and aim_ll with command lines similar to these: "C:\Program Files\AIM Toolkit\aim_cli.exe" --name=AIM99c4766dcc7 --filename="C:\Virtual Machines\Storage\Shared.vmdk" "C:\Program Files\AIM Toolkit\aim_ll.exe" -a -t proxy -o shm,hd,rw,fix -f AIM99c4766dcc7...
Wikipedia
Thanks. I will wait a few days, in case other translators also publish something. And also in case there is a bug, which is not impossible for this kind of release. ;)
Updated to AIM Toolkit 20251015.
When I start up, I automatically create a 32GB RAM disk and also redirect the paths %SystemRoot%\TEMP to (Ramdisk)X:"\Temp. My problem now is that when I boot into Windows 11 Safe Mode, I can't download any files using either Firefox or Edge. For some reason, both programs don't download the data to my desired folder, but first download it to %SystemRoot%\TEMP\xyz and then move it to my desired location. Why Firefox does this is a mystery to me, as I have disabled the HDD cache there myself. Since...
This release brings the support of large-page memory allocations for dynamic ramdisks. This means that Windows uses 2MB memory blocks instead of the usual 4KB blocks. The main advantage is that these blocks cannot be written to the pagefile, like AWE, but with a speed close to the virtual memory. 2 warnings though: - Like a hard drive, RAM can be fragmented. Therefore, finding a new 2MB block can be difficult and may require memory moves from the system, which can lead to a general slowdown. However,...
While the RAMDisk is active, Disk Management has a conniption, absolutely refusing to load, getting stuck on 'Connecting to Virtual Disk Service...', which I found rather humorous.
I could probably do some research on the issue with Ghost. Is it possible to download a trial version or something of Ghost somewhere?
About RAMdisk not recreated, that was on my first attemp (when it didn't format it). Not sure all things I changed including installing .NET framework, so maybe it was something unrelated, and couldn't repeat the failure. Unfortunately GHOST32 or GHOST64 just makes a dump and exits with no messages or hints about what happened. At least I could isolate the other problem to Cluster Size.
Thanks for your tests. Ramdisks do not use .NET Framework. All that is really weird. The next version should handle better some unlikely errors but... this is really not satisfactory.
One last drawback, and I'm forced to return to IMDisk: Ghost64 or Ghost32 exits on start when a RamDisk made by AIMtoolkit is present. I usually use system images with ghost to and from RAMdisks, so in spite trying to be future proof, I'll stick with what it woks ... :(
New tests: Error only occur when cluster size is bigger than 4k. Any lower size works ok too. But 8k to 64k gives: Can't format.
Without dynamic allocation works ok. Your command created a new small RamDisk without any issues. Unfortunatelly Dynamic Allocation is essential as sometimes I need huge ramdisk to process all video/ or Virtual Machines in RAMDISK . And other times I need huge RAM to use 7zip at extreme settings: dynamic allocation saves me making constant changes. Another thing I forgot to mention is that RamDisk was not recreated after boot, found out that my w10 didn't had net framework 4.8 (component may be excluded...
Without dynamic allocation works ok. Your command created a new small RamDisk without any issues. Unfortunatelly Dynamic Allocation is essential as sometimes I need huge ramdisk to process all video in RAM, and other times I need huge RAM to use 7zip at extreme settings, dynamic allocation saves me fiddling with settings. Another thing I forgot to mention is that RamDisk was not recreated after boot, found out that my w10 didn't had net framework 4.8 (component may be excluded from install). And...
Without dynamic allocation it works ok. Your command created a new small RamDisk without any issues. Unfortunatelly Dynamic Allocation is essential as sometimes I need huge ramdisk to process all video in RAM, and other times I need huge RAM to use 7zip at extreme settings, dynamic allocation saves me fiddling with settings. Another thing I forgot to mention is that RamDisk was not recreated after boot, found out that my w10 didn't had net framework 4.8 (component may be excluded from install). And...
I now have my implementation of large-page allocations in RamDyn. Here are the results with CrystalDiskMark. The small requests with AWE are pretty bad... For the large-pages, as expected, results are close to the virtual memory allocations. However, it seems that large requests with several queues are a bit slower. I don't know why, but it's not a huge difference. But as I said, a benchmark does not always reflect real life performances, and we cannot see here the slowdown in the case the memory...
Thanks for the report. Are you using the latest version? Could you please try without the dynamic allocation? You can reduce the ramdisk size, it does not matter. After that, could you please try the following command in an elevated command prompt and from the installation folder? aim_ll.exe -a -s 100M -p "/fs:NTFS /q /y" For now, I assume this is the usual bug, that is, Windows cannot find the created volume, and therefore there is nothing to format. If it is confirmed, this bug is really a nightmare....
under latest win10, tried creating a new ramdisk (43Gb, NTFS, 32k cluster, 4k sector sz, allocate dynamic), I just uninstalled IMDisk thinking that it may be the cause, but same issue remains: "Error, the volume cannot be formatted" Disk is created, but I have to manually format.
To be honest with ya, I didn't think about it/notice it (Foldername). That's already good enough... No need to have a switch from running install.bat as I'm not running that anyways. I was asking to just have a set version=20250818 in it (or even a rem 20250818 or something like that would suffice, so my script would just read install.bat and interprete that, but then, indeed, I might aswell just read the foldername for that... Thanks for pointing that out...
Why not use the folder name inside the ZIP file? But yes, I can also add the version in install.bat. Please try the file below. If you use "install.bat /version", it will return the version in both the standard output and in the %ERRORLEVEL% variable. Is that fine for you?
It would suffice if you add a DOS-variable like set version=2025.08.18.0 to the install.bat. I can simply extract that and use it as the versionnumber... Or better, but don't know if possible, add file-version to the .cab ?
Not sure to find something really helpful... Could you please show me your update script?
You put fileversion in ImDiskTk-x64.exe on my request in the past. I was using that to determine update-status through my scripts and auto-update if newer... Since AIMtk is just a zip/7z I can't do that 'trick' anymore... Don't know if, perhaps, you could add the fileversion to the zip/7z ?
Besides, every Windows system requires a certain minimum amount of RAM, without which it won't run. Creating a 16GB RAM disk on 16GB of RAM is crazy, IMO. ;)
Thanks a lot. I didn't expect that this diagnostic script helps so much... So here is what I see: You have 16GB RAM and try to create a static ramdisk of 16GB, that is, a ramdisk that fills all your RAM, and even beyond because of the space used by the system. This is the first issue. It can still work because you have a pagefile that increases your virtual memory. In the current case, as the virtual memory in use is about 6GB, I would say that the memory allocation (done by the driver) has failed,...
It did fail on the next start, so I've attached the diagnostic file. I then started it with the command-line, and it hasn't failed since...but if it does, it'll fall back to the command-line and restart it automatically with my script.
Yes, the latest. The next time it fails, I'll run the command file. Documentation would really be helpful. The syntax generated doesn't provide an example, like in that command line string above. If I hadn't found that previous post, I wouldn't have been able to put that together myself. I'll try this as a fallback. Thank you so much! Jack
When the ramdisk is not created at startup, could you please run this command file and then attach the file diag.txt to your message?
If you have an issue to report, please use the tool below. It is intended to help me to get the context. Run it with administrative privileges. It will create a file diag.txt. Then, attach the file to your report.
Are you using the last version? The command "aim_ll.exe -a -t vm -s 16G -m R: -p "/fs:ntfs /q /y" is correct ("-t vm" is not mandatory). Check that you are in the correct folder and you have administrative privileges. The syntax help can be get by starting aim_ll without argument in a command prompt. For RamDyn, you can also start it without argument, or even start it from Explorer, because it displays a message box. aim_cli is for image file mounting only. Perhaps I should provide a diagnotic t...
As noted in RamDisk autostart sometimes fails , this is the exact same problem I run into. It'll work for a few days, and then it won't. I have a batch startup script that checks to see if the RAM disk was created (just a simple drive check), and if not, produce an error message and open the GUI interface. Instead of the GUI interface, I want to just fallback to a command line creation of the default configuration with 16 GB. But the command line tests tries aren't working. As noted in mount commands,...
As noted in RamDisk autostart sometimes fails , this is the exact same problem I run into. It'll work for a few days, and then it won't. I have a batch startup script that checks to see if the RAM disk was created (just a simple drive check), and if not, produce an error message and open the GUI interface. Instead of the GUI interface, I want to just fallback to a command line creation of the default configuration with 16 GB. But the command line tests tries aren't working. As noted in mount commands,...
There is no change with ImDisk Toolkit about that: the version is returned by config.exe with the switch /version in both the standard output and the exit code. However, calling install.bat with this switch does not work (there is another command after config.exe and it creates a new process of cmd). Not sure to understand what you need.
Could you embed a version ID somewhere. Even if just declaring as a variable in the install.bat script would suffice. I'm trying to auto-convert all my imdisk installations with AIMtk. For imDisk I asked you before to embed a version ID which you did and it enabled me to write a "auto-update" script. Would like to do the same/re-use parts of that code for AIMtk after a one-time-only conversion... Thanx...
The GUI has an option for "Synchronize at System Shutdown" for a content folder and Launch at Windows Startup. I would like to use both of these but I need to run a script before the drive is mounted at boot to make sure that the backup path is available. I can't do that using scripting because I don't see a way to set Synchronize via the CLI (aim_ll.exe). If I don't set the Launch at Windows Startup, can I somehow using the CLI to create/attach the drive defined in the GUI? I think the best option...
.