Yeah I get that, and I realise the change is wrong. (I blindly followed the headers). I just wanna understand it before I revert.
What I don't get is that if I were to write code which uses this API, I would write my callbacks without NTAPI as per the headers. I'm guessing most other devs would too. So how are people building with cdecl and being called by Windows with stdcall without stack issues?
In fact, explicitly going against the DDK and adding NTAPI to your callbacks would generate a compiler warning.
Ged.
-----Original Message----- From: Ros-dev [mailto:ros-dev-bounces@reactos.org] On Behalf Of Timo Kreuzer Sent: 05 May 2015 21:25 To: ReactOS Development List Subject: Re: [ros-dev] [ros-diffs] [gedmurphy] 67563: [DDK] Fix the FS filter callback definitions
MS DDK often misses NTAPI, since the compiler uses it by default. So unless there is a __cdecl in the DDK definition, your change is most likely wrong.
PS: I guess it's time to finally autogenerate headers at build time, so that nobody even gets tempted to hack ntifs/ntddk/wdm/winnt directly instead of adding stuff to XDK... :)
Timo
Am 05.05.2015 um 21:41 schrieb Ged Murphy:
Well this is a weird one, the DDK says these callbacks are cdecl (missing
NTAPI) and anyone building against the DDK will obviously declare their callbacks to match this convention. However internally, windows uses stdcall for these callbacks.
I can't find much by way of problems people have encountered with this, so
why aren't people seeing problems with the way the stack is cleaned up? Anyone have any ideas before I blindly revert this change?
Ged.
-----Original Message----- From: Ros-diffs [mailto:ros-diffs-bounces@reactos.org] On Behalf Of gedmurphy@svn.reactos.org Sent: 05 May 2015 19:54 To: ros-diffs@reactos.org Subject: [ros-diffs] [gedmurphy] 67563: [DDK] Fix the FS filter callback definitions
Author: gedmurphy Date: Tue May 5 18:54:28 2015 New Revision: 67563
URL: http://svn.reactos.org/svn/reactos?rev=67563&view=rev Log: [DDK] Fix the FS filter callback definitions
Modified: trunk/reactos/include/ddk/ntifs.h
Modified: trunk/reactos/include/ddk/ntifs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntifs.h?r ev=67563&r1=67562&r2=67563&view=diff
============================================================================ ==
--- trunk/reactos/include/ddk/ntifs.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/ntifs.h [iso-8859-1] Tue May 5 18:54:28
2015
@@ -4890,12 +4890,12 @@ } FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA;
typedef NTSTATUS -(NTAPI *PFS_FILTER_CALLBACK) ( +(*PFS_FILTER_CALLBACK) ( _In_ PFS_FILTER_CALLBACK_DATA Data, _Out_ PVOID *CompletionContext);
typedef VOID -(NTAPI *PFS_FILTER_COMPLETION_CALLBACK) ( +(*PFS_FILTER_COMPLETION_CALLBACK) ( _In_ PFS_FILTER_CALLBACK_DATA Data, _In_ NTSTATUS OperationStatus, _In_ PVOID CompletionContext);
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev