1 /* $Id: lpcclt.c,v 1.8 2002/02/24 17:44:22 ea Exp $
3 * DESCRIPTION: Simple LPC Client
4 * PROGRAMMER: David Welch
16 const char * MyName
= "LPC-CLI";
20 void debug_printf(char* fmt
, ...)
26 vsprintf(buffer
,fmt
,args
);
27 WriteConsoleA(OutputHandle
, buffer
, strlen(buffer
), NULL
, NULL
);
32 int main(int argc
, char* argv
[])
34 UNICODE_STRING PortName
;
37 LPC_MAX_MESSAGE Request
;
39 ULONG ConnectInfoLength
= 0;
40 SECURITY_QUALITY_OF_SERVICE Sqos
;
42 printf("%s: Lpc test client\n", MyName
);
44 RtlInitUnicodeString(&PortName
, TEST_PORT_NAME_U
);
46 printf("%s: Connecting to port \"%s\"...\n", MyName
, TEST_PORT_NAME
);
47 ConnectInfoLength
= 0;
48 ZeroMemory (& Sqos
, sizeof Sqos
);
49 Status
= NtConnectPort(&PortHandle
,
57 if (!NT_SUCCESS(Status
))
59 printf("%s: NtConnectPort() failed with status = 0x%08X.\n", MyName
, Status
);
63 printf("%s: Connected to \"%s\" with anonymous port 0x%x.\n", MyName
, TEST_PORT_NAME
, PortHandle
);
65 ZeroMemory(& Request
, sizeof Request
);
66 strcpy(Request
.Data
, GetCommandLineA());
67 Request
.Header
.DataSize
= strlen(Request
.Data
);
68 Request
.Header
.MessageSize
= sizeof(LPC_MESSAGE_HEADER
) +
69 Request
.Header
.DataSize
;
71 printf("%s: Sending to port 0x%x message \"%s\"...\n",
74 (char *) Request
.Data
);
75 Status
= NtRequestPort(PortHandle
,
77 if (!NT_SUCCESS(Status
))
79 printf("%s: NtRequestPort(0x%x) failed with status = 0x%8X.\n",
86 printf("%s: Sending datagram to port 0x%x succeeded.\n", MyName
, PortHandle
);
90 printf("%s: Disconnecting...", MyName
);