Added parameters to NtXxxPort functions prototypes

Alberto Massari alby at exln.com
Tue Dec 10 04:42:04 CST 2002


Changelog:
 - Added parameters to NtXxxPort functions prototypes (as reported by "Undocumented Windows NT" - from http://www.windowsitlibrary.com/Documents/Book.cfm?DocumentID=356)

Alberto

Index: nt.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/nt.c,v
retrieving revision 1.47
diff -u -r1.47 nt.c
--- nt.c	5 Dec 2002 19:56:16 -0000	1.47
+++ nt.c	10 Dec 2002 10:31:22 -0000
@@ -33,6 +33,41 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
 
+/* Structures used by NtConnectPort */
+
+typedef struct LpcSectionInfo
+{
+  DWORD Length;
+  HANDLE SectionHandle;
+  DWORD Param1;
+  DWORD SectionSize;
+  DWORD ClientBaseAddress;
+  DWORD ServerBaseAddress;
+} LPCSECTIONINFO, *PLPCSECTIONINFO;
+
+typedef struct LpcSectionMapInfo
+{
+  DWORD Length;
+  DWORD SectionSize;
+  DWORD ServerBaseAddress;
+} LPCSECTIONMAPINFO, *PLPCSECTIONMAPINFO;
+
+/* Structure used by NtAcceptConnectPort, NtReplyWaitReceivePort */
+
+#define MAX_MESSAGE_DATA 328
+
+typedef struct LpcMessage
+{
+  WORD ActualMessageLength;
+  WORD TotalMessageLength;
+  DWORD MessageType;
+  DWORD ClientProcessId;
+  DWORD ClientThreadId;
+  DWORD MessageId;
+  DWORD SharedSectionSize;
+  BYTE MessageData[MAX_MESSAGE_DATA];
+} LPCMESSAGE, *PLPCMESSAGE;
+
 /*
  *	Timer object
  */
@@ -440,81 +475,100 @@
  *  NtCreatePort		[NTDLL.@]
  *  ZwCreatePort		[NTDLL.@]
  */
-NTSTATUS WINAPI NtCreatePort(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5)
+NTSTATUS WINAPI NtCreatePort(PHANDLE PortHandle,POBJECT_ATTRIBUTES ObjectAttributes,
+                             DWORD MaxConnectInfoLength,DWORD MaxDataLength,DWORD unknown)
 {
-	FIXME("(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5);
-	return 0;
+  FIXME("(%p,%p,0x%08lx,0x%08lx,0x%08lx),stub!\n",PortHandle,ObjectAttributes,
+        MaxConnectInfoLength,MaxDataLength,unknown);
+  return 0;
 }
 
 /******************************************************************************
  *  NtConnectPort		[NTDLL.@]
  *  ZwConnectPort		[NTDLL.@]
  */
-NTSTATUS WINAPI NtConnectPort(DWORD x1,PUNICODE_STRING uni,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8)
-{
-	FIXME("(0x%08lx,%s,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",
-	x1,debugstr_w(uni->Buffer),x3,x4,x5,x6,x7,x8);
-	return 0;
+NTSTATUS WINAPI NtConnectPort(PHANDLE PortHandle,PUNICODE_STRING PortName,PVOID Unknown1,
+                              PLPCSECTIONINFO sectionInfo,PLPCSECTIONMAPINFO mapInfo,PVOID Unknown2,
+                              PVOID ConnectInfo,PDWORD pConnectInfoLength)
+{
+  FIXME("(%p,%s,%p,%p,%p,%p,%p,%p (%ld)),stub!\n",PortHandle,debugstr_w(PortName->Buffer),Unknown1,
+        sectionInfo,mapInfo,Unknown2,ConnectInfo,pConnectInfoLength,pConnectInfoLength?*pConnectInfoLength:-1);
+  if(ConnectInfo && pConnectInfoLength)
+    TRACE("\tMessage = %s\n",debugstr_an(ConnectInfo,*pConnectInfoLength));
+  return 0;
 }
 
 /******************************************************************************
  *  NtListenPort		[NTDLL.@]
  *  ZwListenPort		[NTDLL.@]
  */
-NTSTATUS WINAPI NtListenPort(DWORD x1,DWORD x2)
+NTSTATUS WINAPI NtListenPort(HANDLE PortHandle,PLPCMESSAGE pLpcMessage)
 {
-	FIXME("(0x%08lx,0x%08lx),stub!\n",x1,x2);
-	return 0;
+  FIXME("(%p,%p),stub!\n",PortHandle,pLpcMessage);
+  return 0;
 }
 
 /******************************************************************************
  *  NtAcceptConnectPort	[NTDLL.@]
  *  ZwAcceptConnectPort	[NTDLL.@]
  */
-NTSTATUS WINAPI NtAcceptConnectPort(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6)
+NTSTATUS WINAPI NtAcceptConnectPort(PHANDLE PortHandle,DWORD Unknown,PLPCMESSAGE pLpcMessage,
+                                    DWORD acceptIt,DWORD Unknown2,PLPCSECTIONMAPINFO mapInfo)
 {
-	FIXME("(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6);
-	return 0;
+  FIXME("(%p,0x%08lx,%p,0x%08lx,0x%08lx,%p),stub!\n",PortHandle,Unknown,pLpcMessage,acceptIt,Unknown2,mapInfo);
+  return 0;
 }
 
 /******************************************************************************
  *  NtCompleteConnectPort	[NTDLL.@]
  *  ZwCompleteConnectPort	[NTDLL.@]
  */
-NTSTATUS WINAPI NtCompleteConnectPort(DWORD x1)
+NTSTATUS WINAPI NtCompleteConnectPort(HANDLE PortHandle)
 {
-	FIXME("(0x%08lx),stub!\n",x1);
-	return 0;
+  FIXME("(%p),stub!\n",PortHandle);
+  return 0;
 }
 
 /******************************************************************************
  *  NtRegisterThreadTerminatePort	[NTDLL.@]
  *  ZwRegisterThreadTerminatePort	[NTDLL.@]
  */
-NTSTATUS WINAPI NtRegisterThreadTerminatePort(DWORD x1)
+NTSTATUS WINAPI NtRegisterThreadTerminatePort(HANDLE PortHandle)
 {
-	FIXME("(0x%08lx),stub!\n",x1);
-	return 0;
+  FIXME("(%p),stub!\n",PortHandle);
+  return 0;
 }
 
 /******************************************************************************
  *  NtRequestWaitReplyPort		[NTDLL.@]
  *  ZwRequestWaitReplyPort		[NTDLL.@]
  */
-NTSTATUS WINAPI NtRequestWaitReplyPort(DWORD x1,DWORD x2,DWORD x3)
+NTSTATUS WINAPI NtRequestWaitReplyPort(HANDLE PortHandle,PLPCMESSAGE pLpcMessageIn,PLPCMESSAGE pLpcMessageOut)
 {
-	FIXME("(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3);
-	return 0;
+  FIXME("(%p,%p,%p),stub!\n",PortHandle,pLpcMessageIn,pLpcMessageOut);
+  if(pLpcMessageIn)
+  {
+    TRACE("Message to send:\n");
+    TRACE("\tActualMessageLength = %d\n",pLpcMessageIn->ActualMessageLength);
+    TRACE("\tTotalMessageLength  = %d\n",pLpcMessageIn->TotalMessageLength);
+    TRACE("\tMessageType         = %ld\n",pLpcMessageIn->MessageType);
+    TRACE("\tClientProcessId     = %ld\n",pLpcMessageIn->ClientProcessId);
+    TRACE("\tClientThreadId      = %ld\n",pLpcMessageIn->ClientThreadId);
+    TRACE("\tMessageId           = %ld\n",pLpcMessageIn->MessageId);
+    TRACE("\tSharedSectionSize   = %ld\n",pLpcMessageIn->SharedSectionSize);
+    TRACE("\tMessageData         = %s\n",debugstr_an(pLpcMessageIn->MessageData,pLpcMessageIn->ActualMessageLength));
+  }
+  return 0;
 }
 
 /******************************************************************************
  *  NtReplyWaitReceivePort	[NTDLL.@]
  *  ZwReplyWaitReceivePort	[NTDLL.@]
  */
-NTSTATUS WINAPI NtReplyWaitReceivePort(DWORD x1,DWORD x2,DWORD x3,DWORD x4)
+NTSTATUS WINAPI NtReplyWaitReceivePort(HANDLE PortHandle,PDWORD Unknown,PLPCMESSAGE pLpcMessageOut,PLPCMESSAGE pLpcMessageIn)
 {
-	FIXME("(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4);
-	return 0;
+  FIXME("(%p,%p,%p,%p),stub!\n",PortHandle,Unknown,pLpcMessageOut,pLpcMessageIn);
+  return 0;
 }
 
 /*
Index: ntdll.spec
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/ntdll.spec,v
retrieving revision 1.83
diff -u -r1.83 ntdll.spec
--- ntdll.spec	27 Nov 2002 20:21:24 -0000	1.83
+++ ntdll.spec	10 Dec 2002 10:31:22 -0000
@@ -54,7 +54,7 @@
 @ extern NlsAnsiCodePage NlsAnsiCodePage
 @ extern NlsMbCodePageTag NlsMbCodePageTag
 @ extern NlsMbOemCodePageTag NlsMbOemCodePageTag
-@ stdcall NtAcceptConnectPort(long long long long long long) NtAcceptConnectPort
+@ stdcall NtAcceptConnectPort(ptr long ptr long long ptr) NtAcceptConnectPort
 @ stdcall NtAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck
 @ stub NtAccessCheckAndAuditAlarm
 @ stub NtAdjustGroupsToken
@@ -70,8 +70,8 @@
 @ stdcall NtClearEvent(long) NtClearEvent
 @ stdcall NtClose(long) NtClose
 @ stub NtCloseObjectAuditAlarm
-@ stdcall NtCompleteConnectPort(long) NtCompleteConnectPort
-@ stdcall NtConnectPort(long long long long long long long long) NtConnectPort
+@ stdcall NtCompleteConnectPort(ptr) NtCompleteConnectPort
+@ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
 @ stub NtContinue
 @ stdcall NtCreateDirectoryObject(long long long) NtCreateDirectoryObject
 @ stdcall NtCreateEvent(long long long long long) NtCreateEvent
@@ -83,7 +83,7 @@
 @ stub NtCreateMutant
 @ stub NtCreateNamedPipeFile
 @ stdcall NtCreatePagingFile(long long long long) NtCreatePagingFile
-@ stdcall NtCreatePort(long long long long long) NtCreatePort
+@ stdcall NtCreatePort(ptr ptr long long long) NtCreatePort
 @ stub NtCreateProcess
 @ stub NtCreateProfile
 @ stdcall NtCreateSection(ptr long ptr ptr long long long) NtCreateSection
@@ -118,7 +118,7 @@
 @ stub NtImpersonateClientOfPort
 @ stub NtImpersonateThread
 @ stub NtInitializeRegistry
-@ stdcall NtListenPort(long long) NtListenPort
+@ stdcall NtListenPort(ptr ptr) NtListenPort
 @ stub NtLoadDriver
 @ stdcall NtLoadKey(ptr ptr) NtLoadKey
 @ stub NtLockFile
@@ -185,18 +185,18 @@
 @ stub NtReadRequestData
 @ stub NtReadVirtualMemory
 @ stub NtRegisterNewDevice
-@ stdcall NtRegisterThreadTerminatePort(long) NtRegisterThreadTerminatePort
+@ stdcall NtRegisterThreadTerminatePort(ptr) NtRegisterThreadTerminatePort
 @ stub NtReleaseMutant
 @ stub NtReleaseProcessMutant
 @ stdcall NtReleaseSemaphore(long long ptr) NtReleaseSemaphore
 @ stub NtRemoveIoCompletion
 @ stdcall NtReplaceKey(ptr long ptr) NtReplaceKey
 @ stub NtReplyPort
-@ stdcall NtReplyWaitReceivePort(long long long long) NtReplyWaitReceivePort
+@ stdcall NtReplyWaitReceivePort(ptr ptr ptr ptr) NtReplyWaitReceivePort
 @ stub NtReplyWaitReceivePortEx
 @ stub NtReplyWaitReplyPort
 @ stub NtRequestPort
-@ stdcall NtRequestWaitReplyPort(long long long) NtRequestWaitReplyPort
+@ stdcall NtRequestWaitReplyPort(ptr ptr ptr) NtRequestWaitReplyPort
 @ stdcall NtResetEvent(long ptr) NtResetEvent
 @ stdcall NtRestoreKey(long long long) NtRestoreKey
 @ stdcall NtResumeThread(long long) NtResumeThread
@@ -574,7 +574,7 @@
 @ stdcall RtlxUnicodeStringToAnsiSize(ptr) RtlUnicodeStringToAnsiSize
 @ stdcall RtlxUnicodeStringToOemSize(ptr) RtlUnicodeStringToOemSize
 @ stub SaveEm87Context
-@ stdcall ZwAcceptConnectPort(long long long long long long) NtAcceptConnectPort
+@ stdcall ZwAcceptConnectPort(ptr long ptr long long ptr) NtAcceptConnectPort
 @ stdcall ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck
 @ stub ZwAccessCheckAndAuditAlarm
 @ stdcall ZwAdjustGroupsToken(long long long long long long) NtAdjustPrivilegesToken
@@ -590,8 +590,8 @@
 @ stdcall ZwClearEvent(long) NtClearEvent
 @ stdcall ZwClose(long) NtClose
 @ stub ZwCloseObjectAuditAlarm
-@ stdcall ZwCompleteConnectPort(long) NtCompleteConnectPort
-@ stdcall ZwConnectPort(long long long long long long long long) NtConnectPort
+@ stdcall ZwCompleteConnectPort(ptr) NtCompleteConnectPort
+@ stdcall ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
 @ stub ZwContinue
 @ stdcall ZwCreateDirectoryObject(long long long) NtCreateDirectoryObject
 @ stdcall ZwCreateEvent(long long long long long) NtCreateEvent
@@ -603,7 +603,7 @@
 @ stub ZwCreateMutant
 @ stub ZwCreateNamedPipeFile
 @ stdcall ZwCreatePagingFile(long long long long) NtCreatePagingFile
-@ stdcall ZwCreatePort(long long long long long) NtCreatePort
+@ stdcall ZwCreatePort(ptr ptr long long long) NtCreatePort
 @ stub ZwCreateProcess
 @ stub ZwCreateProfile
 @ stdcall ZwCreateSection(ptr long ptr ptr long long long) NtCreateSection
@@ -637,7 +637,7 @@
 @ stub ZwImpersonateClientOfPort
 @ stub ZwImpersonateThread
 @ stub ZwInitializeRegistry
-@ stdcall ZwListenPort(long long) NtListenPort
+@ stdcall ZwListenPort(ptr ptr) NtListenPort
 @ stub ZwLoadDriver
 @ stdcall ZwLoadKey(ptr ptr) NtLoadKey
 @ stub ZwLockFile
@@ -704,17 +704,17 @@
 @ stub ZwReadRequestData
 @ stub ZwReadVirtualMemory
 @ stub ZwRegisterNewDevice
-@ stdcall ZwRegisterThreadTerminatePort(long) NtRegisterThreadTerminatePort
+@ stdcall ZwRegisterThreadTerminatePort(ptr) NtRegisterThreadTerminatePort
 @ stub ZwReleaseMutant
 @ stub ZwReleaseProcessMutant
 @ stdcall ZwReleaseSemaphore(long long ptr) NtReleaseSemaphore
 @ stub ZwRemoveIoCompletion
 @ stdcall ZwReplaceKey(ptr long ptr) NtReplaceKey
 @ stub ZwReplyPort
-@ stdcall ZwReplyWaitReceivePort(long long long long) NtReplyWaitReceivePort
+@ stdcall ZwReplyWaitReceivePort(ptr ptr ptr ptr) NtReplyWaitReceivePort
 @ stub ZwReplyWaitReplyPort
 @ stub ZwRequestPort
-@ stdcall ZwRequestWaitReplyPort(long long long) NtRequestWaitReplyPort
+@ stdcall ZwRequestWaitReplyPort(ptr ptr ptr) NtRequestWaitReplyPort
 @ stdcall ZwResetEvent(long ptr) NtResetEvent
 @ stdcall ZwRestoreKey(long long long) NtRestoreKey
 @ stdcall ZwResumeThread(long long) NtResumeThread





More information about the wine-patches mailing list