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) 1999 Microsoft Corporation
Module Name: shutcall.c
Abstract:
This module contains callbacks for RP-Calling into winlogon's shutdown interface
Author:
Dragos C. Sambotin (dragoss) 21-May-1999
Notes:
Revision History:
--*/
#include <rpc.h>
#include "shutinit.h"
#include "regconn.h"
LONG NewShutdownCallback( IN RPC_BINDING_HANDLE *pbinding, IN PREG_UNICODE_STRING Message, IN PSHUTDOWN_CONTEXT ShutdownContext ) /*++
Routine Description:
New callback for binding to a machine to initiate a shutdown. This will call into BaseInitiateShutdown from InitShutdown interface (in winlogon), instead of BaseInitiateSystemShutdown from winreg interface
Arguments:
pbinding - Supplies a pointer to the RPC binding context
Message - Supplies message to display during shutdown timeout period.
ShutdownContext - Supplies remaining parameters for BaseInitiateSystemShutdown
Return Value:
ERROR_SUCCESS if no error.
--*/
{ DWORD Result;
RpcTryExcept { Result = BaseInitiateShutdown((PREGISTRY_SERVER_NAME)pbinding, Message, ShutdownContext->dwTimeout, ShutdownContext->bForceAppsClosed, ShutdownContext->bRebootAfterShutdown); } RpcExcept(EXCEPTION_EXECUTE_HANDLER) { Result = RpcExceptionCode(); } RpcEndExcept;
if (Result != ERROR_SUCCESS) { RpcBindingFree(pbinding); } return(Result); }
LONG NewShutdownCallbackEx( IN RPC_BINDING_HANDLE *pbinding, IN PREG_UNICODE_STRING Message, IN PSHUTDOWN_CONTEXTEX ShutdownContext ) /*++
Routine Description:
New version of callback for binding to a machine to initiate a shutdown. This will call BaseInitiateShutdownEx from InitShutdown interface (in winlogon) instead of BaseInitiateSystemShutdownEx from winreg interface
Arguments:
pbinding - Supplies a pointer to the RPC binding context
Message - Supplies message to display during shutdown timeout period.
ShutdownContext - Supplies remaining parameters for BaseInitiateSystemShutdown
Return Value:
ERROR_SUCCESS if no error.
--*/
{ DWORD Result;
RpcTryExcept { Result = BaseInitiateShutdownEx((PREGISTRY_SERVER_NAME)pbinding, Message, ShutdownContext->dwTimeout, ShutdownContext->bForceAppsClosed, ShutdownContext->bRebootAfterShutdown, ShutdownContext->dwReason); } RpcExcept(EXCEPTION_EXECUTE_HANDLER) { Result = RpcExceptionCode(); } RpcEndExcept;
if (Result != ERROR_SUCCESS) { RpcBindingFree(pbinding); } return(Result); }
LONG NewAbortShutdownCallback( IN RPC_BINDING_HANDLE *pbinding, IN PVOID Unused1, IN PVOID Unused2 ) /*++
Routine Description:
New callback for binding to a machine to abort a shutdown. This will call into BaseAbortShutdown in InitShutdown interface (in winlogon), instead of BaseAbortSystemShutdown in winreg interface
Arguments:
pbinding - Supplies a pointer to the RPC binding context
Return Value:
ERROR_SUCCESS if no error.
--*/
{ DWORD Result;
RpcTryExcept { Result = BaseAbortShutdown((PREGISTRY_SERVER_NAME)pbinding); } RpcExcept(EXCEPTION_EXECUTE_HANDLER) { Result = RpcExceptionCode(); } RpcEndExcept;
if (Result != ERROR_SUCCESS) { RpcBindingFree(pbinding); } return(Result); }
|