/*** | ****************************************************************/
-typedef struct _SM_PORT_MESSAGE
+typedef union _SM_PORT_MESSAGE
{
/*** LPC common header ***/
LPC_MESSAGE Header;
- /*** SM common header ***/
struct {
- DWORD ApiIndex;
- NTSTATUS Status;
- } SmHeader;
- /*** SM per API arguments ***/
- union {
+ UCHAR LpcHeader[LPC_MESSAGE_BASE_SIZE];
+ /*** SM common header ***/
+ struct {
+ DWORD ApiIndex;
+ NTSTATUS Status;
+ } SmHeader;
+ /*** SM per API arguments ***/
union {
- SM_PORT_MESSAGE_COMPSES CompSes;
- SM_PORT_MESSAGE_EXECPGM ExecPgm;
- SM_PORT_MESSAGE_QRYINFO QryInfo;
- } Request;
- union {
- SM_PORT_MESSAGE_COMPSES CompSes;
- SM_PORT_MESSAGE_EXECPGM ExecPgm;
- SM_PORT_MESSAGE_QRYINFO QryInfo;
- } Reply;
+ union {
+ SM_PORT_MESSAGE_COMPSES CompSes;
+ SM_PORT_MESSAGE_EXECPGM ExecPgm;
+ SM_PORT_MESSAGE_QRYINFO QryInfo;
+ } Request;
+ union {
+ SM_PORT_MESSAGE_COMPSES CompSes;
+ SM_PORT_MESSAGE_EXECPGM ExecPgm;
+ SM_PORT_MESSAGE_QRYINFO QryInfo;
+ } Reply;
+ };
};
-
} SM_PORT_MESSAGE, * PSM_PORT_MESSAGE;
#pragma pack(pop)
<module name="smdll" type="nativedll" baseaddress="${BASEADDRESS_SMDLL}" installbase="system32" installname="smdll.dll">\r
<importlibrary definition="smdll.def" />\r
<include base="smdll">.</include>\r
+ <define name="__USE_W32API" />\r
<define name="_DISABLE_TIDENTS" />\r
<library>smlib</library>\r
<library>ntdll</library>\r
<module name="smlib" type="staticlibrary">
<include base="smlib">.</include>
+ <define name="__USE_W32API" />
<define name="_DISABLE_TIDENTS" />
<file>connect.c</file>
<file>execpgm.c</file>