Forum Replies Created
-
AuthorPosts
-
supportKeymaster
Looks like your CUE file contains audio tracks. Presently, WinCDEmu does not support multi-track CDs. However, this feature will probably be added in future versions.
supportKeymasterObviously, you need a WinDbg (http://www.microsoft.com/whdc/devtools/debugging/) to do that. I recommend reading some tutorials about ‘kernel debugging for beginners’ before starting. Note that VirtualKD is not itself a kernel debugger. Instead, it is a tool, that speeds up interaction between a virtual machine and WinDbg.
supportKeymasterIt does not prompt at every mount, as soon as you select “manage drive letters automatically”.
supportKeymasterOk, if you mount an image, ensure that an “error code 10” appears in Device Manager, open command prompt and type “net start BazisVirtualCD”, which error message will you get?
October 6, 2009 at 16:01 in reply to: How to set Target machine hostname or IP on with VirtualBox #1071supportKeymasterWell, if you are already debugging your machine with WinDbg, how can VisualDDK attach to it? The pipe is obviously occupied by WinDbg instance. However, if you close the WinDbg (and uncheck ‘automatically start the debugger’ in VMMON, or just close VMMON, as it is no needed for VisualDDK), debugging from VisualDDK should work.
October 3, 2009 at 16:59 in reply to: How to set Target machine hostname or IP on with VirtualBox #1068supportKeymasterBridging is required for automatic driver binary updating, however, is not mandatory for debugging with VisualDDK. If WinDbg/VirtualKD works, and VisualStudio with VisualDDK fails, you can try using Debug->Attach command, selecting “Kernel-mode connections” and picking your OS manually. You will get either a working debug session, or a more detailed error message.
supportKeymasterSure, however, with relatively small DriverEntry this will not give any noticeable effect. On the other hand, moving some initialization functions to .init section may cause failures, in case such functions are accidentally called after initialization. So, IMHO, freeing up to 10K of RAM (typically less than 1K) on a 1-4GB machine at a cost of making the code potentially unstable (if later one forgets that a certain function is in .init) is not very reasonable. However, this is just my IMHO.
supportKeymasterSo, if i understand correctly, i can use new/delete/npagednew in KM C++ if i include stlsup.cpp?
Yes. Otherwise you will simply get a linker error stating that “operator new()” is undefined.
Just try DDKWizard, why you not use RTL_CONSTANT_STRING to define DeviceName and Win32Device instead of RtlInitUnicodeString?
Sample files for DDKWizard were copy-pasted from some very old stuff without any refactorring. Anyway, thanks for the advice, I’ll probably update the samples.
supportKeymasterIt is managed by BazisLib. You can see the stlsup.cpp file for new() and delete() implementation. However, note that if you need to allocate objects from non-paged pool, you should use the npagednew() function instead (or, more preferably, overload the new() operator for your specific class, that always needs to be allocated from non-paged pool; for example, see the irpqueue.h file). The standard C malloc()/free() implementations are provided as well for compatibility reasons.
supportKeymasterYou need a special “runtime” libraries to use exceptions. For other purposes (static/global constructors & etc.), the BazisLib startup file is enough.
supportKeymasterSurely you can use the STLPort without BazisLib, however you will need the code that calls static C++ constructors/destructors, that can be easily separated from BazisLib.
As for the compiler flags & etc, I would recommend avoiding exceptions in kernel mode, as using them has quite an impact on performance and stack requirement. Check out the VisualDDK project wizard, it allows creating Visual Studio driver projects without a link to BazisLib.
Finally, regarding object creation & programming style, I could only suggest being sure, what will the optimizing compiler produce from your C++ code, and checking the disassembly in case of a smallest doubt. Anyway, it is possible to make C++ programs as efficient/small as C ones with much less coding effort, however it requires checking the disassembly, as the optimizer is not always perfect.
See WinCDEmu sources for a (relatively) simple example of a C++ kernel driver.October 2, 2009 at 12:07 in reply to: How to set Target machine hostname or IP on with VirtualBox #1066supportKeymasterDoes the VirtualKD with WinDbg work on your machine? If not, what does the VM monitor show?
supportKeymaster😮 ??? If something about kernel-mode part of BazisLib is bad, a bugreport/wishlist would be much better than undirected sarcasm.
supportKeymasterOops. Saw the post too late. Already fixed, will be included in next version installer. As for the quotation marks & unicode symbols, maybe will do it later, however, I’m not that good in PHP, as in kernel development 😉
supportKeymasterWhat’s your version of Windows?
-
AuthorPosts