- Fix incorrect PFILE_MAILSLOT_SET_INFORMATION definition - Fix MSFS to build with MSDDK. - Fix iotypes.h to be MSDDK compatible. Modified: trunk/reactos/drivers/fs/ms/create.c Modified: trunk/reactos/drivers/fs/ms/finfo.c Modified: trunk/reactos/drivers/fs/ms/fsctrl.c Modified: trunk/reactos/drivers/fs/ms/msfs.c Modified: trunk/reactos/drivers/fs/ms/msfs.h Modified: trunk/reactos/drivers/fs/ms/rw.c Modified: trunk/reactos/include/ndk/iotypes.h Modified: trunk/reactos/w32api/include/ddk/ntifs.h _____
Modified: trunk/reactos/drivers/fs/ms/create.c --- trunk/reactos/drivers/fs/ms/create.c 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/drivers/fs/ms/create.c 2005-09-04 23:18:34 UTC (rev 17648) @@ -17,7 +17,7 @@
/* FUNCTIONS *****************************************************************/
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp) { @@ -101,7 +101,7 @@ }
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject, PIRP Irp) { @@ -229,7 +229,7 @@ }
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp) { _____
Modified: trunk/reactos/drivers/fs/ms/finfo.c --- trunk/reactos/drivers/fs/ms/finfo.c 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/drivers/fs/ms/finfo.c 2005-09-04 23:18:34 UTC (rev 17648) @@ -60,13 +60,13 @@
if (*BufferLength < sizeof(FILE_MAILSLOT_SET_INFORMATION)) return(STATUS_BUFFER_OVERFLOW);
- Fcb->Mailslot->TimeOut = Buffer->ReadTimeout; + Fcb->Mailslot->TimeOut = *Buffer->ReadTimeout;
return(STATUS_SUCCESS); }
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp) { @@ -132,7 +132,7 @@ }
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp) { _____
Modified: trunk/reactos/drivers/fs/ms/fsctrl.c --- trunk/reactos/drivers/fs/ms/fsctrl.c 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/drivers/fs/ms/fsctrl.c 2005-09-04 23:18:34 UTC (rev 17648) @@ -17,7 +17,7 @@
/* FUNCTIONS *****************************************************************/
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) { _____
Modified: trunk/reactos/drivers/fs/ms/msfs.c --- trunk/reactos/drivers/fs/ms/msfs.c 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/drivers/fs/ms/msfs.c 2005-09-04 23:18:34 UTC (rev 17648) @@ -17,7 +17,7 @@
/* FUNCTIONS *****************************************************************/
-NTSTATUS STDCALL +NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) { _____
Modified: trunk/reactos/drivers/fs/ms/msfs.h --- trunk/reactos/drivers/fs/ms/msfs.h 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/drivers/fs/ms/msfs.h 2005-09-04 23:18:34 UTC (rev 17648) @@ -4,6 +4,22 @@
#include <ntifs.h> #include <ndk/iotypes.h>
+/* + * FIXME: GCC doesn't have a working option for defaulting to a calling + * convention. It will always default to cdecl. The MS DDK was designed + * for compilers which support this option, and thus some of their headers + * do not specify STDCALL or NTAPI everywhere. As such, callbacks will be + * interpreted as cdecl on gcc, while they should be stdcall. Defining + * NTAPI manually won't work either, since msvc will realize that the + * two definitions are different. So we have to use something to close + * the compatibility gap, until someone fixes gcc. + */ +#ifdef _MSC_VER +#define DEFAULTAPI +#else +#define DEFAULTAPI __stdcall +#endif + typedef struct _MSFS_DEVICE_EXTENSION { LIST_ENTRY MailslotListHead; @@ -48,16 +64,16 @@
#define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
-NTSTATUS STDCALL MsfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp); -NTSTATUS STDCALL MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject, PIRP Irp); -NTSTATUS STDCALL MsfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
-NTSTATUS STDCALL MsfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp); -NTSTATUS STDCALL MsfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
-NTSTATUS STDCALL MsfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp); -NTSTATUS STDCALL MsfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
-NTSTATUS STDCALL MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp); +NTSTATUS DEFAULTAPI MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
#endif /* __SERVICES_FS_NP_NPFS_H */ _____
Modified: trunk/reactos/drivers/fs/ms/rw.c --- trunk/reactos/drivers/fs/ms/rw.c 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/drivers/fs/ms/rw.c 2005-09-04 23:18:34 UTC (rev 17648) @@ -17,7 +17,7 @@
/* FUNCTIONS *****************************************************************/
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp) { @@ -93,7 +93,7 @@ }
-NTSTATUS STDCALL +NTSTATUS DEFAULTAPI MsfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp) { _____
Modified: trunk/reactos/include/ndk/iotypes.h --- trunk/reactos/include/ndk/iotypes.h 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/include/ndk/iotypes.h 2005-09-04 23:18:34 UTC (rev 17648) @@ -14,11 +14,10 @@
/* EXPORTED DATA *************************************************************/ #ifndef NTOS_MODE_USER -extern POBJECT_TYPE NTOSAPI IoAdapterObjectType; -extern POBJECT_TYPE NTOSAPI IoDeviceHandlerObjectType; -extern POBJECT_TYPE NTOSAPI IoDeviceObjectType; -extern POBJECT_TYPE NTOSAPI IoDriverObjectType; -extern POBJECT_TYPE NTOSAPI IoFileObjectType; +extern POBJECT_TYPE NTSYSAPI IoAdapterObjectType; +extern POBJECT_TYPE NTSYSAPI IoDeviceHandlerObjectType; +extern POBJECT_TYPE NTSYSAPI IoDeviceObjectType; +extern POBJECT_TYPE NTSYSAPI IoDriverObjectType; #endif
/* CONSTANTS *****************************************************************/ @@ -369,7 +368,7 @@
typedef struct _FILE_MAILSLOT_SET_INFORMATION { - LARGE_INTEGER ReadTimeout; + PLARGE_INTEGER ReadTimeout; } FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION;
typedef struct _FILE_BOTH_DIR_INFORMATION @@ -554,12 +553,12 @@ struct _DEVICE_NODE *PrevSibling; struct _DEVICE_NODE *NextSibling; struct _DEVICE_NODE *Child; - UINT Level; + ULONG Level; struct _PO_DEVICE_NOTIFY *Notify; PNP_DEVNODE_STATE State; PNP_DEVNODE_STATE PreviousState; PNP_DEVNODE_STATE StateHistory[20]; - UINT StateHistoryEntry; + ULONG StateHistoryEntry; INT CompletionStatus; PIRP PendingIrp; ULONG Flags; @@ -625,7 +624,7 @@ UCHAR ResourcesChanged; } PI_RESOURCE_ARBITER_ENTRY, *PPI_RESOURCE_ARBITER_ENTRY;
-typedef struct _DEVOBJ_EXTENSION +typedef struct _EXTENDED_DEVOBJ_EXTENSION { CSHORT Type; USHORT Size; @@ -639,7 +638,7 @@ LONG StartIoKey; ULONG StartIoFlags; struct _VPB *Vpb; -} DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION; +} EXTENDED_DEVOBJ_EXTENSION, *PEXTENDED_DEVOBJ_EXTENSION;
typedef struct _PRIVATE_DRIVER_EXTENSIONS { _____
Modified: trunk/reactos/w32api/include/ddk/ntifs.h --- trunk/reactos/w32api/include/ddk/ntifs.h 2005-09-04 22:33:28 UTC (rev 17647) +++ trunk/reactos/w32api/include/ddk/ntifs.h 2005-09-04 23:18:34 UTC (rev 17648) @@ -899,7 +899,7 @@
} FILE_MAILSLOT_QUERY_INFORMATION, *PFILE_MAILSLOT_QUERY_INFORMATION;
typedef struct _FILE_MAILSLOT_SET_INFORMATION { - LARGE_INTEGER ReadTimeout; + PLARGE_INTEGER ReadTimeout; } FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION;
typedef struct _FILE_MODE_INFORMATION {