Exemplo n.º 1
0
APIERR MNetSessionGetInfo(
        const TCHAR FAR  * pszServer,
        const TCHAR FAR  * pszClientName,
        UINT               Level,
        BYTE FAR        ** ppbBuffer )
{
    DWORD cTotalEntries;
    DWORD cEntriesRead;
    DWORD err;

    err = NetSessionEnum( (TCHAR *)pszServer,
                          (TCHAR *)pszClientName,
                          NULL,
                          Level,
                          ppbBuffer,
                          MAXPREFERREDLENGTH,
                          &cEntriesRead,
                          &cTotalEntries,
                          NULL );

    if( ( err == NERR_Success ) && ( cEntriesRead == 0 ) )
    {
        return NERR_ClientNameNotFound;
    }
    else
    {
        return (APIERR)err;
    }

}   // MNetSessionGetInfo
Exemplo n.º 2
0
BOOL wumf()
{
	LPSESSION_INFO_1 s_info = NULL;
	DWORD ent_read = 0, ent_total = 0, res_handle = 0;
	NET_API_STATUS res = NERR_Success;
	if ((res = NetSessionEnum(NULL, NULL, NULL, 1, (LPBYTE *)&s_info, MAX_PREFERRED_LENGTH, &ent_read, &ent_total, &res_handle)) == NERR_Success ||
		res == ERROR_MORE_DATA)
	{
		mark_all(&list, TRUE);
		for(unsigned i = 0; i < ent_read; i++)
			process_session(s_info[ i ]);

		NetApiBufferFree(s_info);
	}
	else printError(res);

	return del_marked(&list);
}
Exemplo n.º 3
0
APIERR MNetSessionEnum(
        const TCHAR FAR  * pszServer,
        UINT               Level,
        BYTE FAR        ** ppbBuffer,
        UINT FAR         * pcEntriesRead )
{
    DWORD cTotalAvail;

    return (APIERR)NetSessionEnum( (TCHAR *)pszServer,
                                   NULL,
                                   NULL,
                                   Level,
                                   ppbBuffer,
                                   MAXPREFERREDLENGTH,
                                   (LPDWORD)pcEntriesRead,
                                   &cTotalAvail,
                                   NULL );

}   // MNetSessionEnum
Exemplo n.º 4
0
WORD
MNetSessionEnum(
    LPTSTR pszServer,
    DWORD nLevel,
    LPBYTE * ppbBuffer,
    DWORD * pcEntriesRead)
{

    DWORD   cTotalAvail;
    DWORD   nRes;  // return from Netapi

    nRes = NetSessionEnum(pszServer, NULL, NULL, nLevel,
                          ppbBuffer, MAXPREFERREDLENGTH,
                          pcEntriesRead, &cTotalAvail, NULL);

    if (nRes == NERR_Success || nRes == ERROR_MORE_DATA)
    {
        TCHAR * pszDesc;
        switch (nLevel)
        {
        case 0:
        default:
            pszDesc = pszDesc_session_info_0;
            break;
        case 1:
            pszDesc = pszDesc_session_info_1;
            break;
        case 2:
            pszDesc = pszDesc_session_info_2;
            break;
        case 10:
            pszDesc = pszDesc_session_info_10;
            break;
        }
    }

    return LOWORD(nRes);
}
Exemplo n.º 5
0
bool CWfpNET::Sessions_get(void)  {
		LPSESSION_INFO_10 pBuf = NULL, pTmpBuf = NULL;
	DWORD dwLevel = 10,	dwPrefMaxLen = MAX_PREFERRED_LENGTH,
		dwEntriesRead = 0, dwTotalEntries = 0, dwResumeHandle = 0,
		i = 0;
	LPWSTR pszClientName = NULL, pszUserName = NULL;
	NET_API_STATUS nStatus = NULL;
	CString tmp, session;

	// The NetSessionEnum function provides information about sessions
	// established on a server.
	// No special group membership is required for level 0 or level 10 calls.

	do // begin do
	{
		nStatus = NetSessionEnum(node.szComputerW, pszClientName, pszUserName,
			dwLevel, (LPBYTE*)&pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries,
			&dwResumeHandle);
		if((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
		{		  
			if((pTmpBuf = pBuf) != NULL)
			{
				for(i = 0; i < dwEntriesRead; i++)
				{
					assert(pTmpBuf != NULL);

					if(pTmpBuf == NULL)
						break;
					    
					tmp.Format(_T("Client: %S "),pTmpBuf->sesi10_cname);
					session.operator +=(tmp);
					   
					tmp.Format(_T("User: %S "),pTmpBuf->sesi10_username);
					session.operator +=(tmp);

					tmp.Format(_T("Seconds Connected: %d "),pTmpBuf->sesi10_time);
					session.operator +=(tmp);
				
					tmp.Format(_T("Seconds Idle: %d"),pTmpBuf->sesi10_idle_time);
					session.operator +=(tmp);
					Sessions.Add(session);
					pTmpBuf++;
				}
			}
			
			if(pBuf != NULL)
			{
				NetApiBufferFree(pBuf);
				pBuf = NULL;
			}
		}
		else
		{
			ErrorHandler("NetSessionEnum", nStatus);
			return false;
		}
	    
		if(pBuf != NULL)
		{
			NetApiBufferFree(pBuf);
				pBuf = NULL;
		}
	}while (nStatus == ERROR_MORE_DATA); // end do

	if (pBuf != NULL)
		NetApiBufferFree(pBuf);
	  
	return true;
}