///************************************************************** /// Microsoft LAN Manager * /// Copyright(c) Microsoft Corp., 1990-1992 * ///************************************************************** // // Add and delete access record // #include // TIME definition #include // TIME definition #include // TIME definition #define NOMINMAX // Avoid redefinition of min and max in stdlib.h #include #include #include #include #include #include #include #include #include #include #include #include #include #define TEST_USER1 L"USER1" #define TEST_PERM1 07 #define TEST_PERM2 31 #define TEST_PERM3 63 #define TEST_RESOURCE L"C:\\UASTEST" // // AddAccess // // void AddAccess(server, username, resource, perms) LPWSTR server; LPWSTR resource; LPWSTR username; DWORD perms; { NET_API_STATUS err; char ebuf[512]; PACCESS_INFO_1 acc = (PACCESS_INFO_1) ebuf; PACCESS_LIST acl; acc->acc1_resource_name = resource; acc->acc1_attr = 1; acc->acc1_count = 1; acl = (PACCESS_LIST) (ebuf + sizeof(ACCESS_INFO_1)); acl->acl_ugname = username; acl->acl_access = perms; if (err = NetAccessAdd(server, 1, ebuf, NULL )) NetpKdPrint(("NetAccessAdd failed, ret = %d\n", err)); else NetpKdPrint(("%ws added successfully\n", resource)); } // // DelAccess // void DelAccess(server, resource) LPWSTR server; LPWSTR resource; { NET_API_STATUS err; if (err = NetAccessDel(server, resource)) NetpKdPrint(("NetAccessDel failed, ret = %d\n", err)); else NetpKdPrint(("%ws deleted successfully\n", resource)); } // // GetAccess // void GetAccess(server, resource) LPWSTR server; LPWSTR resource; { NET_API_STATUS err; LPBYTE buf; DWORD level; for (level = 0; level < 2; level++) { if (err = NetAccessGetInfo(server, resource, level, &buf)) NetpKdPrint(("NetAccessGetInfo failed, ret = %d\n", err)); else { NetpKdPrint(("NetAccessGetInfo: Level %d OK\n", level)); NetApiBufferFree( buf ); } } } // // main driver for NetAccessAdd and NetAccessDel tests // // void main(argc, argv) int argc; char **argv; { LPWSTR resource; LPWSTR user; LPWSTR server; DWORD perm; if ((argc == 1) || (*argv[1] == '?')) { printf("usage: uastest6 resource user perms server\n"); exit(0); } resource = TEST_RESOURCE; user = TEST_USER1; perm = TEST_PERM1; server = NULL; if (argv[1] != NULL) { resource = NetpLogonOemToUnicode(argv[1]); if (argv[2] != NULL) { user = NetpLogonOemToUnicode(argv[2]); if (argv[3] != NULL) { perm = atoi(argv[3]) & 0x3F; if (argv[4] != NULL) server = NetpLogonOemToUnicode(argv[4]); } } } AddAccess(server, user, resource, perm); GetAccess(server, resource); DelAccess(server, resource); }