Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 44 of file connect.c.
{ UNICODE_STRING SmApiPortName; SECURITY_QUALITY_OF_SERVICE SecurityQos; NTSTATUS Status = STATUS_SUCCESS; SM_CONNECT_DATA ConnectData = {0,0,{0}}; ULONG ConnectDataLength = 0; DPRINT("SMLIB: %s called\n", __FUNCTION__); if (pSbApiPortName) { if (pSbApiPortName->Length > (sizeof pSbApiPortName->Buffer[0] * SM_SB_NAME_MAX_LENGTH)) { return STATUS_INVALID_PARAMETER_1; } if (NULL == hSbApiPort || IMAGE_SUBSYSTEM_UNKNOWN == wSubSystemId) { return STATUS_INVALID_PARAMETER_MIX; } RtlZeroMemory (& ConnectData, sizeof ConnectData); ConnectData.Unused = 0; ConnectData.SubSystemId = wSubSystemId; if (pSbApiPortName->Length > 0) { RtlCopyMemory (& ConnectData.SbName, pSbApiPortName->Buffer, pSbApiPortName->Length); } } ConnectDataLength = sizeof ConnectData; SecurityQos.Length = sizeof (SecurityQos); SecurityQos.ImpersonationLevel = SecurityIdentification; SecurityQos.ContextTrackingMode = SECURITY_DYNAMIC_TRACKING; SecurityQos.EffectiveOnly = TRUE; RtlInitUnicodeString (& SmApiPortName, SM_API_PORT_NAME); Status = NtConnectPort ( phSmApiPort, & SmApiPortName, & SecurityQos, NULL, NULL, NULL, & ConnectData, & ConnectDataLength ); if (NT_SUCCESS(Status)) { return STATUS_SUCCESS; } DPRINT("SMLIB: %s failed (Status=0x%08lx)\n", __FUNCTION__, Status); return Status; }