da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER START
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The contents of this file are subject to the terms of the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Common Development and Distribution License (the "License").
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You may not use this file except in compliance with the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * See the License for the specific language governing permissions
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and limitations under the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * When distributing Covered Code, include this CDDL HEADER in each
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If applicable, add the following below this CDDL HEADER, with the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * fields enclosed by brackets "[]" replaced with your own identifying
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * information: Portions Copyright [yyyy] [name of copyright owner]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER END
148c5f43199ca0b43fc8e3b643aab11cd66ea327Alan Wright * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * NetLogon RPC (NETR) interface definition. This module provides
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * the server side NETR RPC interface and the interface registration
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * function.
8d7e41661dc4633488e93b13363137523ce59977jose borregostatic int netr_s_ServerReqChallenge(void *, ndr_xa_t *);
8d7e41661dc4633488e93b13363137523ce59977jose borregostatic int netr_s_ServerAuthenticate2(void *, ndr_xa_t *);
8d7e41661dc4633488e93b13363137523ce59977jose borregostatic int netr_s_ServerPasswordSet(void *, ndr_xa_t *);
8d7e41661dc4633488e93b13363137523ce59977jose borregostatic int netr_s_SamLogoff(void *, ndr_xa_t *);
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw { netr_s_ServerReqChallenge, NETR_OPNUM_ServerReqChallenge },
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw { netr_s_ServerAuthenticate2, NETR_OPNUM_ServerAuthenticate2 },
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw { netr_s_ServerPasswordSet, NETR_OPNUM_ServerPasswordSet },
8d7e41661dc4633488e93b13363137523ce59977jose borrego "12345678-1234-abcd-ef00-01234567cffb", 1, /* abstract */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 0, /* no bind_instance_size */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 0, /* no bind_req() */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 0, /* no unbind_and_close() */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 0, /* use generic_call_stub() */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * netr_initialize
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * This function registers the NETR RPC interface with the RPC runtime
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * library. It must be called in order to use either the client side
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * or the server side functions.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * netr_s_ServerReqChallenge
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*ARGSUSED*/
8d7e41661dc4633488e93b13363137523ce59977jose borregonetr_s_ServerReqChallenge(void *arg, ndr_xa_t *mxa)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * netr_s_ServerAuthenticate2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*ARGSUSED*/
8d7e41661dc4633488e93b13363137523ce59977jose borregonetr_s_ServerAuthenticate2(void *arg, ndr_xa_t *mxa)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * netr_s_ServerPasswordSet
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*ARGSUSED*/
8d7e41661dc4633488e93b13363137523ce59977jose borregonetr_s_ServerPasswordSet(void *arg, ndr_xa_t *mxa)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * netr_s_SamLogon
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*ARGSUSED*/
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * netr_s_SamLogoff
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*ARGSUSED*/
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Declare extern references.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Patch the netr_SamLogon union.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * This function is called from mlsvc_netr_ndr.c
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw switch (level) {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The netr_validation_u union contains a pointer, which
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * is a DWORD in NDR. So we need to set size1 to ensure
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * that we can correctly decode the remaining parameters.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If the request is badly formed or the level is invalid,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * the server returns NT_STATUS_INVALID_INFO_CLASS. Size1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * must be zero to correctly decode the status.
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego size3 = size2 + sizeof (ndr_request_hdr_t) + sizeof (DWORD);