сбор информаций о локальных группах и пользователях в wk, xp
От: kulsary  
Дата: 30.04.07 08:16
Оценка:
среда программирования vc 4.0 ос хр sp2
у меня при обращений к функциям NetLocalGroupEnum, NetLocalGroupGetMembers возникает ошибка(через F5)

First-chance exception in SoftCollector.exe (NETAPI32.DLL): 0xC0000005: Access Violation.

некоторые работают NetUserGetInfo, NetGetDCName
вот код

BOOL CInfoCollector::GetGoupsName( char *ServerName,char *GoupsName )
{
WCHAR servername[256]; // Unicode user name
WCHAR workgroup[256]; // Unicode user name

NET_API_STATUS netok;
unsigned ientry;

PLOCALGROUP_INFO_1 bufptr1;
DWORD entriesread;
DWORD totalentries;
DWORD resumehandle;


/* We use parameter #1 as server name. */
/* Convert it to wide string */
MultiByteToWideChar( CP_ACP, 0, ServerName,
strlen(ServerName)+1, servername, sizeof(servername) );
MultiByteToWideChar( CP_ACP, 0, "workgroup",
strlen("workgroup")+1, workgroup, sizeof(workgroup) );

/* Display list of available groups */
do {
/* Execute (resume) enumeration */
netok = NetLocalGroupEnum( (LPWSTR) servername, /* server name */
1, /* we want GROUP_INFO_1 */
(LPBYTE *)&bufptr1, /* NET API buffer */
2048, /* desired buffer size */
&entriesread, /* number of retrieved entries*/
&totalentries, /* entries available */
&resumehandle ); /* handle for next enum call */

if ((ERROR_MORE_DATA != netok) && (NERR_Success != netok)) {
break;
}

/* Display enumerated groups */
for( ientry = 0; ientry < entriesread; ientry ++ ) {

WideCharToMultiByte( CP_ACP,
0,
bufptr1[ientry].lgrpi1_name,
-1,
GoupsName /*это пока тестовый не обращать внимания*/,
256,
NULL,
NULL );
}

} while (netok == ERROR_MORE_DATA);

// Necessary cleanup
if (bufptr1) {
NetApiBufferFree( bufptr1 );
}
return (TRUE);
}
Re: сбор информаций о локальных группах и пользователях в wk
От: latemic Украина  
Дата: 30.04.07 11:05
Оценка:
Здравствуйте, kulsary, Вы писали:

K>среда программирования vc 4.0 ос хр sp2

K>у меня при обращений к функциям NetLocalGroupEnum, NetLocalGroupGetMembers возникает ошибка(через F5)

K> First-chance exception in SoftCollector.exe (NETAPI32.DLL): 0xC0000005: Access Violation.


K>некоторые работают NetUserGetInfo, NetGetDCName

K>вот код

А какой ServerName в функцию передаётся?
"Если нельзя, но очень хочется... то можно"
Re: сбор информаций о локальных группах и пользователях в wk
От: Alexey Frolov Беларусь  
Дата: 30.04.07 11:28
Оценка:
   WCHAR  servername[256] = L"";           // Unicode user name
   WCHAR  workgroup[256] = L"";            // Unicode user name


Попробуйте для начала проинициализировать эти переменные, чтобы избавиться от Access Violation
Скорее всего это именно из-за них, а затем продолжайте отладку и поиск причины почему не конвертится servername
Re[2]: сбор информаций о локальных группах и пользователях в
От: kulsary  
Дата: 01.05.07 02:20
Оценка:
Здравствуйте, Alexey Frolov, Вы писали:

AF>
AF>   WCHAR  servername[256] = L"";           // Unicode user name
AF>   WCHAR  workgroup[256] = L"";            // Unicode user name
AF>


AF>Попробуйте для начала проинициализировать эти переменные, чтобы избавиться от Access Violation

AF>Скорее всего это именно из-за них, а затем продолжайте отладку и поиск причины почему не конвертится servername

спасибо идея с начальной инициализацией очень помогло

DWORD resumehandle=0;


resumehandle
... The handle should be zero on the first call ...

netok = NetLocalGroupEnum( (LPWSTR) servername, /* server name */
1, /* we want GROUP_INFO_1 */
(LPBYTE *)&bufptr1, /* NET API buffer */
2048, /* desired buffer size */
&entriesread, /* number of retrieved entries*/
&totalentries, /* entries available */
&resumehandle ); /* handle for next enum call */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.