News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

poasm and winioctl.inc

Started by petrik, October 03, 2009, 06:49:01 PM

Previous topic - Next topic

petrik

I am in the process of writing a Win32 low level disk sector editor to cater for both FAT and NTFS. I have previously written one for DOS and was writing one for Windows 98 but became tired of all the messing around with 16-bit and 32--bit thunking. Win32 seems a lot less hassle.
I am running Windows XP Pro SP3.
I am using Japheth's winioctl.inc, porc.exe, poasm.exe and polink.exe.
The baic file assembles OK but everytime polink (\masm32\bin\polink.exe /VERBOSE /SUBSYSTEM:WINDOWS DiskEdit.obj rsrc.res) runs it throws up the following error: \masm32\include\winioctl.inc(363): fatal error: Must be inside a section.
The offending line 363 is 'if (_WIN32_WINNT ge 0400h)'.
I don't know what to change in winioctl.inc to make it compatible with poilink.
I would be extremely grateful for any help.
Many thanks.


hutch--

petrik,

In the short term for testing, just load the two values into registers and do the comparison that way. Check the SIZE of both _WIN32_WINNT and 0400h to ensure they are the same so the comparison can be done. Also check the values in the include file to make sure they are correct.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

japheth

Quote from: petrik on October 03, 2009, 06:49:01 PM
I am using Japheth's winioctl.inc, porc.exe, poasm.exe and polink.exe.
The baic file assembles OK but everytime polink (\masm32\bin\polink.exe /VERBOSE /SUBSYSTEM:WINDOWS DiskEdit.obj rsrc.res) runs it throws up the following error: \masm32\include\winioctl.inc(363): fatal error: Must be inside a section.
The offending line 363 is 'if (_WIN32_WINNT ge 0400h)'.
I don't know what to change in winioctl.inc to make it compatible with poilink.

Please elaborate more carefully which tool displays the error. Because PoLink is a linker, it has nothing to do with assembly source files (winioctl.inc).
If it is poasm which complains then just define _WIN32_WINNT somewhere. The winioctl.inc was generated from MS PSDK sources, IIRC common values are:

_WIN32_WINNT equ 400h  ;for Windows NT
_WIN32_WINNT equ 500h  ;for Windows XP

petrik

 :bg
Thank you very much Hutch and Japheth.
Simply adding _WIN32_WINNT equ 500h to winioctl.inc solved the problem.
Why didn't I figure this out myself?
I guess I'll have to stop being lazy and relying on everything always being in the relevant predefined .inc files.
Thanks again.