Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1994 Microsoft Corporation Copyright (c) 1993 Micro Computer Systems, Inc.
Module Name:
net\svcdlls\nwsap\client\init.c
Abstract:
This routine initializes the SAP Library
Author:
Brian Walker (MCS) 06-15-1993
Revision History:
--*/
#include "precomp.h"
#pragma hdrstop
/** Global Variables **/
INT SapLibInitialized = 0; HANDLE SapXsPortHandle;
/*++
******************************************************************* S a p L i b I n i t
Routine Description:
This routine initializes the SAP interface for a program
Arguments: None
Return Value:
0 = Ok Else = Error ******************************************************************* --*/
DWORD SapLibInit( VOID) { UNICODE_STRING unistring; NTSTATUS status; SECURITY_QUALITY_OF_SERVICE qos;
/** If already initialized - return ok **/
if (SapLibInitialized) { return 0; }
/** Connect the port **/
/** Fill out the security quality of service **/
qos.Length = sizeof(qos); qos.ImpersonationLevel = SecurityImpersonation; qos.ContextTrackingMode = SECURITY_DYNAMIC_TRACKING; qos.EffectiveOnly = TRUE;
/** Setup the unicode string of the port name **/
RtlInitUnicodeString(&unistring, NWSAP_BIND_PORT_NAME_W);
/** Do the connect **/
status = NtConnectPort( &SapXsPortHandle, /* We get a handle back */ &unistring, /* Port name to connect to */ &qos, /* Quality of service */ NULL, /* Client View */ NULL, /* Server View */ NULL, /* MaxMessageLength */ NULL, /* ConnectionInformation */ NULL); /* ConnectionInformationLength */
/** If error - just return it **/
if (!NT_SUCCESS(status)) return status;
/** All Done **/
SapLibInitialized = 1; return 0; }
/*++
******************************************************************* S a p L i b S h u t d o w n
Routine Description:
This routine shuts down the SAP interface for a program
Arguments: None
Return Value:
0 = Ok Else = Error ******************************************************************* --*/
DWORD SapLibShutdown( VOID) { /** If not initialized - leave **/
if (!SapLibInitialized) return 0;
/** Close the port **/
NtClose(SapXsPortHandle);
/** All Done **/
SapLibInitialized = 0; return 0; }
|