summaryrefslogblamecommitdiffstats
path: root/private/net/svcdlls/at/client/atstub.c
blob: 6b0c8d7517647042a986d98ab0e446a782b718d2 (plain) (tree)













































































































































































































































































































                                                                               
/*++

Copyright (c) 1992  Microsoft Corporation

Module Name:

    atstub.c

Abstract:

    Client stubs of the Schedule service APIs.

Author:

    Vladimir Z. Vulovic     (vladimv)       06 - November - 1992

Environment:

    User Mode - Win32

Revision History:

    06-Nov-1992     vladimv
        Created

--*/

#include "atclient.h"
#undef IF_DEBUG                 // avoid wsclient.h vs. debuglib.h conflicts.
#include <debuglib.h>           // IF_DEBUG() (needed by netrpc.h).
#include <lmserver.h>
#include <lmsvc.h>
#include <netlib.h>             // NetpServiceIsStarted() (needed by netrpc.h).
#include <netrpc.h>             // NET_REMOTE macros.
#include <lmstats.h>



NET_API_STATUS
NetScheduleJobAdd(
    IN      LPCWSTR         ServerName      OPTIONAL,
    IN      LPBYTE          Buffer,
    OUT     LPDWORD         pJobId
    )
/*++

Routine Description:

    This is the DLL entrypoint for NetScheduleJobAdd.  This API adds a job
    to the schedule.

Arguments:

    ServerName - Pointer to a string containing the name of the computer
        that is to execute the API function.

    Buffer - Pointer to a buffer containing information about the job

    pJobId - Pointer to JobId of a newly added job.


Return Value:

    NET_API_STATUS

--*/
{
    NET_API_STATUS          status;

    NET_REMOTE_TRY_RPC

        //
        // Try RPC (local or remote) version of API.
        //
        status = NetrJobAdd(
                     ServerName,
                     (LPAT_INFO)Buffer,
                     pJobId
                     );

    NET_REMOTE_RPC_FAILED(
            "NetScheduleJobAdd",
            ServerName,
            status,
            NET_REMOTE_FLAG_NORMAL,
            SERVICE_SCHEDULE
            )

        status = ERROR_NOT_SUPPORTED;

    NET_REMOTE_END

    return( status);

}  //  NetScheduleJobAdd


NET_API_STATUS
NetScheduleJobDel(
    IN      LPCWSTR         ServerName      OPTIONAL,
    IN      DWORD           MinJobId,
    IN      DWORD           MaxJobId
    )
/*++

Routine Description:

    This is the DLL entrypoint for NetScheduleJobDel.  This API removes
    from the schedule all jobs whose job ids are:

    -   greater than or equal to the minimum job id

            and

    -   less than or equal to the maximum job id

Arguments:

    ServerName - Pointer to a string containing the name of the computer
        that is to execute the API function.

    MinJobId - minumum job id

    MaxJobId - maxumum job id

Return Value:

    NET_API_STATUS

--*/
{
    NET_API_STATUS          status;

    NET_REMOTE_TRY_RPC

        //
        // Try RPC (local or remote) version of API.
        //
        status = NetrJobDel(
                     ServerName,
                     MinJobId,
                     MaxJobId
                     );

    NET_REMOTE_RPC_FAILED(
            "NetScheduleJobDel",
            ServerName,
            status,
            NET_REMOTE_FLAG_NORMAL,
            SERVICE_SCHEDULE
            )

        status = ERROR_NOT_SUPPORTED;

    NET_REMOTE_END

    return( status);

}  //  NetScheduleJobDel


NET_API_STATUS
NetScheduleJobEnum(
    IN      LPCWSTR         ServerName              OPTIONAL,
    OUT     LPBYTE *        PointerToBuffer,
    IN      DWORD           PreferredMaximumLength,
    OUT     LPDWORD         EntriesRead,
    OUT     LPDWORD         TotalEntries,
    IN OUT  LPDWORD         ResumeHandle
    )
/*++

Routine Description:

    This is the DLL entrypoint for NetScheduleJobEnum.  This API enumarates
    all jobs in the schedule.

Arguments:

    ServerName - Pointer to a string containing the name of the computer
        that is to execute the API function.

    PointerToBuffer - Pointer to location where pointer to returned data will
        be stored

    PreferredMaximumLength - Indicates a maximum size limit that the caller
        will allow for the return buffer.

    EntriesRead - A pointer to the location where the number of entries
        (data structures)read is to be returned.

    TotalEntries - A pointer to the location which upon return indicates
        the total number of entries in the table.

    ResumeHandle - Pointer to a value that indicates where to resume
        enumerating data.

Return Value:

    NET_API_STATUS

--*/
{
    NET_API_STATUS          status;
    AT_ENUM_CONTAINER       EnumContainer;

    EnumContainer.EntriesRead = 0;
    EnumContainer.Buffer = NULL;

    NET_REMOTE_TRY_RPC

        //
        // Try RPC (local or remote) version of API.
        //
        status = NetrJobEnum(
                     ServerName,
                     &EnumContainer,
                     PreferredMaximumLength,
                     TotalEntries,
                     ResumeHandle
                     );

        if ( status == NERR_Success || status == ERROR_MORE_DATA) {
            *EntriesRead = EnumContainer.EntriesRead;
            *PointerToBuffer = (LPBYTE)EnumContainer.Buffer;
        }

    NET_REMOTE_RPC_FAILED(
            "NetScheduleJobEnum",
            ServerName,
            status,
            NET_REMOTE_FLAG_NORMAL,
            SERVICE_SCHEDULE
            )

        status = ERROR_NOT_SUPPORTED;

    NET_REMOTE_END

    return( status);

}  //  NetScheduleJobEnum


NET_API_STATUS
NetScheduleJobGetInfo(
    IN      LPCWSTR         ServerName              OPTIONAL,
    IN      DWORD           JobId,
    OUT     LPBYTE *        PointerToBuffer
    )
/*++

Routine Description:

    This is the DLL entrypoint for NetScheduleGetInfo.  This API obtains
    information about a particular job in the schedule.

Arguments:

    ServerName - Pointer to a string containing the name of the computer
        that is to execute the API function.

    JobId - Id of job of interest.

    PointerToBuffer - Pointer to location where pointer to returned data will
        be stored

Return Value:

    NET_API_STATUS

--*/
{
    NET_API_STATUS          status;

    NET_REMOTE_TRY_RPC

        //
        // Try RPC (local or remote) version of API.
        //
        status = NetrJobGetInfo(
                     ServerName,
                     JobId,
                     (LPAT_INFO *)PointerToBuffer
                     );

    NET_REMOTE_RPC_FAILED(
            "NetScheduleJobGetInfo",
            ServerName,
            status,
            NET_REMOTE_FLAG_NORMAL,
            SERVICE_SCHEDULE
            )

        status = ERROR_NOT_SUPPORTED;

    NET_REMOTE_END

    return( status);

}  //  NetScheduleJobGetInfo