<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Elyasse Elyacoubi's Weblog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/elyasse/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/elyasse/feed.xml</link>
    <description>Elyasse El Yacoubi - MSFT</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:05:52 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>How to find true stack size in Windows</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/265</link>
      <pubDate>Wed, 04 Oct 2017 20:35:36 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/?p=265</guid>
      <description><![CDATA[Let me start by stating the obvious, if you find yourself needing to get your thread's stack size as...]]></description>
      <content:encoded><![CDATA[Let me start by stating the obvious, if you find yourself needing to get your thread's stack size as part of your code, more likely than not, you are doing something wrong. Unless it is part of your core logic, getting into OS's business is often an invitation to trouble.

&nbsp;

That's said, there are legitimate, yet rare, cases where you may need to get your stack's true stack size. Whether you have specific logic that requires more custom or careful handling of stack overflow situations, or you want to  query your stack size and change your program's behavior when you approach your stack's limit to avoid or better handle SO situations. Or maybe you have some complex memory handling that necessitate writing your own guards and checks against buffer overruns.

&nbsp;

The OS layers, Win32, UWP, or .NET libraries, do extensive work to take care of all these scenarios for you. So it should be fairly rare that you end up needing to meddle with the stack yourself. And if you ever do, exercise extreme care and caution.

&nbsp;

When you run an executable file (PE) in Windows, the OS creates a kernel object and a set of structures that hold information related to the running of your program. One important structure, is the Thread Execution Block (<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686708(v=vs.85).aspx"><i>TEB</i></a><i>)</i>. There, the OS saves information related to the threads associated with your process. In fact, as far as Windows goes, threads are the actual units of execution. The process is simply a container of threads (to put it in an oversimplified term). Every process comes with a default thread which would run first when your executable is invoked, but applications often create additional threads to scale and stay responsive, among other reasons.

&nbsp;

To keep threads isolated, Windows allocates a dedicated space to each thread. That space is what is commonly referred to as "the stack", not to confuse with the stack data structure, although the OS's stack allocates data in a stack data structure format. The stack, in simple terms, is a sandboxed contiguous memory playground  for a given thread. It contains its local variables, parameters, and return values. The size of the stack information lives in TEB, and is defined at linking time at the executable level. The linker sets these values at the PE (your executable) header. The default value for the stack size is 1MB.

&nbsp;

To be frugal on memory usage, the OS only allocates a portion of the requested stack to the device's physical memory. The allocated space is called "committed" memory. The rest of space is only "reserved". Similar to when you reserve a dedicated space in a parking lot, your spot is not necessarily occupied by your car all the time, but it is always yours to use, and no one else can access it. So the OS, acting as the parking authority here, provides a guarantee that the space would be available to the thread whenever needed. If any other party tries to access the thread's reserved memory, it'd get an access violation exception, their parking violation ticket if we want to use the parking space analogy. When the owner thread finally needs access to the reserved space, the referenced memory will move to become part of the committed set. The default committed size by the linker is 4K, which is a single page of memory. Both reserved and committed stack space for a PE can be overwritten at linking time by passing a flag to the linker.

&nbsp;

So how can you know how much stack space you have left? The most straightforward way is to call  <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh706789(v=vs.85).aspx">GetCurrentThreadStackLimits</a>.
<p style="margin: 0in;font-family: Consolas;font-size: 9.5pt;color: black">ULONG_PTR stackBase= 0;</p>
<p style="margin: 0in;font-family: Consolas;font-size: 9.5pt;color: black">ULONG_PTR stackLimit = 0;</p>
<p style="margin: 0in;font-family: Consolas;font-size: 9.5pt;color: black">::GetCurrentThreadStackLimits(&amp;stackLimit, &amp;stackBase);</p>
Then your delta for available space is:

spaceDelta = stackBase - stackLimit

&nbsp;

Both the stack base and the stack limit are properties saved within the system's <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686708(v=vs.85).aspx">TEB</a> data structure for the given thread.

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>System Center Endpoint Protection 2012 on Configuration Manager 2007?</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/system-center-endpoint-protection-2012-on-configuration-manager-2007</link>
      <pubDate>Wed, 22 Aug 2012 12:31:36 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2012/08/22/system-center-endpoint-protection-2012-on-configuration-manager-2007/</guid>
      <description><![CDATA[I saw some questions circulating around whether System Center Endpoint Protection 2012 is supported...]]></description>
      <content:encoded><![CDATA[<p>I saw some questions circulating around whether System Center Endpoint Protection 2012 is supported System Center Configuration Manager (SCCM) 2007. The short answer is no. SCEP 2012 is integrated into Configuration Manager 2012. Only Forefront Endpoint Protection 2010 is supported on Config Manager 2007.</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Endpoint Protection for Windows Azure Customer Technology Preview is now available for free download</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/microsoft-endpoint-protection-for-windows-azure-customer-technology-preview-is-now-available-for-free-download</link>
      <pubDate>Fri, 16 Mar 2012 10:05:00 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2012/03/16/microsoft-endpoint-protection-for-windows-azure-customer-technology-preview-is-now-available-for-free-download/</guid>
      <description><![CDATA[Today we released the customer technology preview of Microsoft Endpoint Protection (MEP)&nbsp;for...]]></description>
      <content:encoded><![CDATA[<p>Today we released the customer technology preview of Microsoft Endpoint Protection (MEP)&nbsp;for Windows Azure, a plugin that allows Windows Azure developers and administrators to include antimalware protection in their Windows Azure VMs. The package is installed as an extension on top of Windows Azure SDK. After installing the MEP for Windows Azure CTP, you can enable antimalware protection on your Windows Azure VMs by simply importing the MEP antimalware module into your roles' definition:</p>
<p>The MEP for Windows Azure can be downloaded and installed from <a href="https://www.microsoft.com/download/en/details.aspx?id=29209">https://www.microsoft.com/download/en/details.aspx?id=29209.</a> Windows Azure SDK 1.6 or later is required before install.</p>
<h2>Functionality recap</h2>
<p>When you deploy the antimalware solution as part of your Windows Azure service, the following core functionality is enabled:</p>
<ul>
<li><b>Real-time protection </b>monitors activity on the system to detect and block malware from executing.</li>
<li><b>Scheduled scanning </b>periodically performs targeted scanning to detect malware on the system,<br />including actively running malicious programs.&nbsp;</li>
<li><b>Malware remediation </b>takes action on detected malware resources, such as deleting or quarantining<br />malicious files and cleaning up malicious registry entries.&nbsp;</li>
<li><b>Signature updates </b>installs the latest protection signatures (aka &ldquo;virus definitions&rdquo;) to<br />ensure protection is up-to-date.&nbsp;</li>
<li><b>Active protection </b>reports metadata about detected threats and suspicious resources to<br />Microsoft to ensure rapid response to the evolving threat landscape, as well as<br />enabling real-time signature delivery through the Dynamic Signature Service<br />(DSS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b><br /></b></li>
</ul>
<p>Microsoft&rsquo;s antimalware endpoint solutions are designed to run quietly in the background without human intervention required. Even if malware is detected, the endpoint protection agent will automatically take action to remove the detected threat. Refer to the document &ldquo;Monitoring Microsoft Endpoint Protection for Windows Azure&rdquo; for information on monitoring for malware-related events or VMs that get into a &ldquo;bad state.&rdquo;</p>
<h2>Providing feedback</h2>
<p>The goal of this technology preview version of Microsoft Endpoint Protection for Windows Azure is to give you a chance to evaluate this approach to providing antimalware protection to Windows Azure VMs and provide feedback. We want to hear from you! Please send any feedback to <a href="mailto:eppazurefb@microsoft.com">eppazurefb@microsoft.com</a>.&nbsp;</p>
<h2>How it works</h2>
<p>Microsoft Endpoint Protection for Windows Azure includes SDK extensions to the Windows Azure Tools for Visual Studio which provides the means to configure your Windows Azure service to include endpoint protection in the specified roles. When you deploy your service, an endpoint protection installer startup task is included that runs as part of spinning up the virtual machine for a given instance. The startup task pulls down the full endpoint protection package platform components from Windows Azure Storage for the geographical region specified in the Service Configuration (.cscfg) file and installs it, applying the other configuration options specified.</p>
<p>Once up and running, the endpoint protection client downloads the latest protection engine and signatures from the Internet and loads them. At this point the virtual machine is up and running with antimalware protection enabled. Diagnostic information such as logs and antimalware events can be configured for persistence in Windows Azure storage for monitoring. The following diagram shows the &ldquo;big pictures&rdquo; of how all the pieces fit together:</p>
<p><br /> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/0336.architecture.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/0336.architecture.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/0336.architecture.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/0336.architecture.jpg" /></a><br /> <br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</p>
<h1>Prerequisites</h1>
<p>Before you get started, you should already have a Windows Azure account configured and have an understanding of how to deploy your service in the Windows Azure environment. You will also need Microsoft Visual Studio 2010. If you have Visual Studio 2010, the Windows Azure Tools for Visual Studio, and have written and deployed Windows Azure services, you&rsquo;re ready to go.</p>
<p>If not, do the following:</p>
<ol>
<li>Sign up for a Windows Azure account&nbsp;&nbsp; <a href="https://windows.azure.com">https://windows.azure.com</a></li>
<li>Install Visual Studio 2010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.microsoft.com/visualstudio">https://www.microsoft.com/visualstudio</a></li>
<li>Install Windows Azure Tools&nbsp; for Visual Studio&nbsp; <a href="https://msdn.microsoft.com/en-us/library/windowsazure/ff687127.aspx">https://msdn.microsoft.com/en-us/library/windowsazure/ff687127.aspx</a></li>
</ol>
<h1>Deployment</h1>
<p>Once you have Visual Studio 2010 and the Windows Azure Tools installed, you&rsquo;re ready to get antimalware protection up and running in your Azure VMs. To do so, follow these steps:</p>
<ol>
<li>Install Microsoft Endpoint Protection for Windows Azure</li>
<li>Enable your Windows Azure service for antimalware</li>
<li>Optionally customize antimalware configuration options</li>
<li>Configure Azure Diagnostics to capture antimalware related information</li>
<li>Publish your service to Windows Azure</li>
</ol>
<h2>Install Microsoft Endpoint Protection for Windows Azure</h2>
<p>Run the Microsoft Endpoint Protection for Windows Azure setup package. The package can be downloaded from the Web at <a href="https://go.microsoft.com/fwlink/?LinkID=244362">https://go.microsoft.com/fwlink/?LinkID=244362</a>.</p>
<p>Follow the steps in the setup wizard to install the endpoint protection components. The required files are installed in the Windows Azure SDK plugins folder. For example:&nbsp;</p>
<p><strong>C:\Program Files\Windows Azure SDK\v1.6\bin\plugins\Antimalware&nbsp;</strong></p>
<p>Once the components are installed, you&rsquo;re ready to enable antimalware in your Windows Azure roles.</p>
<h2>Enable your Windows Azure service for antimalware</h2>
<p>To enable your service to include endpoint protection in<br />your role VMs, simply add the &ldquo;Antimalware&rdquo; plugin when defining the role.</p>
<ol>
<li>In Visual Studio 2010, open the service definition file for your service (ServiceDefinition.csdef).</li>
<li>For each role defined in the service definition (e.g. your worker roles and web roles), update the<br />&lt;imports&gt; section to import the &ldquo;Antimalware&rdquo; plugin by adding the following line:</li>
</ol>
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Import</span> <span style="color: #ff0000;">moduleName</span><span style="color: #0000ff;">="Antimalware" /&gt;</span></p>
<p>&nbsp;</p>
<p>The following image shows an example of adding antimalware for the worker role &ldquo;WorkerRole1&rdquo; but not for the project&rsquo;s Web role.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/0488.import_plugin.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/0488.import_5F00_plugin.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/0488.import_plugin.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/0488.import_5F00_plugin.jpg" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; &nbsp;3. Save the service definition file.</p>
<p>In this example, the worker role instances for the project will now include endpoint protection running in each virtual machine. However the web role instances will not include antimalware protection, because the antimalware import was only specified for the worker role. The next time the service is deployed to Windows Azure, the endpoint protection startup task will run in the worker role instances and install the full endpoint protection client from Windows Azure Storage, which will then install the protection engine and signatures from the Internet. At this point the virtual machine will have active protection up and running.</p>
<h2>Optionally customize antimalware configuration options</h2>
<p>When you enable a role for antimalware protection, the configuration settings for the antimalware plugin are automatically added to your service configuration file (ServiceConfiguration.cscfg). The configuration settings have been pre-optimized for running in the Windows Azure environment. You do not need to change any of these settings. However, you can customize these settings if required for your particular deployment.</p>
<p>&nbsp;</p>
<p><br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/6354.settings.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/6354.settings.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/6354.settings.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/6354.settings.jpg" /></a></p>
<p><b>Default antimalware configuration added to service configuration</b></p>
<p>&nbsp;</p>
<p>The following table summarizes the settings available to configure as part of the service configuration:</p>
<p>&nbsp;</p>
<table style="width: 689px;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="207">
<p><span style="background-color: #99ccff;"><b>Setting</b></span></p>
</td>
<td valign="top" width="152">
<p><span style="background-color: #99ccff;"><b>Options</b></span></p>
</td>
<td valign="top" width="75">
<p><span style="background-color: #99ccff;"><b>Default</b></span></p>
</td>
<td valign="top" width="254">
<p><span style="background-color: #99ccff;"><b>Description</b></span></p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>ServiceLocation</b></p>
</td>
<td valign="top" width="152">
<p>East Asia</p>
<p>North&nbsp;Central US</p>
<p>North Europe</p>
<p>South Central US</p>
<p>Southeast Asia</p>
<p>West Europe</p>
</td>
<td valign="top" width="75">
<p>South Central US</p>
</td>
<td valign="top" width="254">
<p>Specifies the region to download the antimalware client components from. Using the same region as your service can improve deployment time and decrease costs</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>EnableAntimalware</b></p>
</td>
<td valign="top" width="152">
<p>true</p>
<p>false</p>
<p>&nbsp;</p>
</td>
<td valign="top" width="75">
<p>true</p>
</td>
<td valign="top" width="254">
<p>Enables or disables endpoint protection</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>EnableRealtimeProtection</b></p>
</td>
<td valign="top" width="152">
<p>true</p>
<p>false</p>
</td>
<td valign="top" width="75">
<p>true</p>
</td>
<td valign="top" width="254">
<p>Enables or disables real-time scanning, such as on-access disk scanning</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>EnableWeeklyScheduledScans</b></p>
</td>
<td valign="top" width="152">
<p>true</p>
<p>false</p>
</td>
<td valign="top" width="75">
<p>true</p>
</td>
<td valign="top" width="254">
<p>Enables or disables a periodic &ldquo;quick scan&rdquo;<br />&nbsp; for active malware on the system</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>DayForWeeklyScheduledScans</b></p>
</td>
<td valign="top" width="152">
<p>0 - 7</p>
</td>
<td valign="top" width="75">
<p>7</p>
</td>
<td valign="top" width="254">
<p>0 &ndash;&nbsp; scan daily</p>
<p>1 &ndash;&nbsp; Sunday</p>
<p>2 &ndash;&nbsp; Monday</p>
<p>&hellip;</p>
<p>7 &ndash;&nbsp; Saturday</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>TimeForWeeklyScheduledScans</b></p>
</td>
<td valign="top" width="152">
<p>0 - 1440</p>
</td>
<td valign="top" width="75">
<p>120</p>
</td>
<td valign="top" width="254">
<p>Hour at which to begin the scheduled<br />&nbsp; scan. Measured in 60 minute increments corresponding to the desired hour.</p>
<p>60 &ndash; 1:00 AM</p>
<p>120 &ndash; 2:00 AM</p>
<p>&hellip;</p>
<p>1380 &ndash; 11:00 PM</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>ExcludedExtensions</b></p>
</td>
<td valign="top" width="152">
<p>extension1|extension2</p>
</td>
<td valign="top" width="75">
<p>None</p>
</td>
<td valign="top" width="254">
<p>Pipe-delimited<br />&nbsp; list of file extensions to exclude from scanning. Example:<br /><br />&nbsp; gif|log|txt <br /><br />&nbsp; would exclude files with the .gif, .log, or .txt extension from being<br />&nbsp; scanned.</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>ExcludedPaths</b></p>
</td>
<td valign="top" width="152">
<p>path1|path2</p>
</td>
<td valign="top" width="75">
<p>None</p>
</td>
<td valign="top" width="254">
<p>Pipe-delimited list of paths to files<br />&nbsp; or folders to exclude from scanning. Example:<br />&nbsp; e:\approot\worker.dll|e:\approot\temp would exclude the file worker.dll in<br />&nbsp; the e:\approot folder and anything under the folder e:\approot\temp from<br />&nbsp; being scanned.</p>
</td>
</tr>
<tr>
<td valign="top" width="207">
<p><b>ExcludedProcesses</b></p>
</td>
<td valign="top" width="152">
<p>process1|process2</p>
</td>
<td valign="top" width="75">
<p>None</p>
</td>
<td valign="top" width="254">
<p>Pipe-delimited<br />&nbsp; list of process exclusions. Any file opened by an excluded process will not<br />&nbsp; be scanned (the process itself will still be scanned &ndash; to exclude the process<br />&nbsp; itself, use the ExcludedPaths configuration). Example: D:\Program Files\MyApp.exe<br />&nbsp; would exclude any files opened by MyApp.exe from being scanned.</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>Updating configuration for deployed services</h3>
<p>Windows Azure provides the ability to update a service configuration &ldquo;on the fly&rdquo; to a service that is already running in Windows Azure. For example on the Windows Azure Portal you can select the &ldquo;Configure&rdquo; option to upload a new configuration file or manually edit configuration settings for an existing deployment.</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/5531.config.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/5531.config.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/36/61/5531.config.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-61/5531.config.jpg" /></a></p>
<p>&nbsp;</p>
<p>Microsoft Endpoint Protection for Windows Azure supports applying changes to a deployed service. If you change the antimalware settings in the service configuration file, you can deploy the new configuration to your running service and the antimalware related settings will update automatically.</p>
<p>Microsoft Endpoint Protection for Windows Azure must have already been deployed as part of service deployment. You cannot deploy or remove endpoint protection through a configuration update.</p>
<h2>Configure Azure Diagnostics to capture antimalware related information</h2>
<p>In order to monitor the health of your antimalware deployment, you&rsquo;ll need to configure Windows Azure to pull the antimalware useful events and logs into Windows Azure storage. From there, any number of Windows Azure monitoring solutions can be used for antimalware monitoring and alerting.</p>
<p>Refer to the MSDN documentation for Windows Azure Diagnostics for general information:</p>
<p><a href="https://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx">https://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx</a></p>
<h3>Antimalware events</h3>
<p>For antimalware events, you need to configure diagnostics to pull events from the System event log where the source is &ldquo;Microsoft Antimalware.&rdquo; In general you&rsquo;ll want to pull Error and Warning events. See the &ldquo;Monitoring Microsoft Endpoint Protection for Windows Azure&rdquo; document for more<br />information on which events to monitor.</p>
<p>Here&rsquo;s an example of the code you might add to the entry point for your service:&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #339966;">&nbsp;&nbsp;//add antimalware diagnostics</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff;">var</span> config = <span style="color: #008080;">DiagnosticMonitor.</span>GetDefaultInitialConfiguration();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #339966;"> //exclude informational and verbose event log entries</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config.WindowsEventLog.DataSources.Add("System!*[System[Provider[@Name='Microsoft Antimalware'] and (Level=1 or Level=2 or Level=3)]]");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339966;">//write to persisted storage every 1 minute</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config.WindowsEventLog.ScheduledTransferPeriod = System.<span style="color: #008080;">TimeSpan.</span>FromMinutes(1.0);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008080;">DiagnosticMonitor.</span>Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);</p>
<p>&nbsp;</p>
<p>In this case, any antimalware errors or warnings from the System event log will be written to Windows Azure Storage every 1 minute. Use an interval that makes sense for your monitoring requirements.</p>
<p>You can view the raw events by looking at the WADWindowsEventLogsTable table in the storage account you configured to use with Windows Azure Diagnostics. This can be useful to validate that antimalware event collection is working. For example start with including informational events (Level=4) to validate your configuration end-to-end, then turn them off via configuration update.</p>
<h3>Antimalware logs</h3>
<p>In addition, the following locations include logs that may be useful if you are encountering problems getting the antimalware components up and running in your Windows Azure VMs:</p>
<ul>
<li>%programdata%\Microsoft Endpoint Protection<br />includes logs for the startup task that is deployed with your Windows Azure service</li>
<li>%programdata%\Microsoft\Microsoft Security Client<br />includes logs for the installation of the endpoint protection platform components</li>
</ul>
<p>You can configure Windows Azure diagnostics to pull these logs as well by implementing custom logging to move these logs to blob storage. <br />See the following documentation on MSDN for more information:</p>
<p><a href="https://msdn.microsoft.com/en-us/library/windowsazure/hh411528.aspx">https://msdn.microsoft.com/en-us/library/windowsazure/hh411528.aspx</a></p>
<h2>Publish your service to Windows Azure</h2>
<p>The final step once you have everything configured in Visual Studio 2010 is to publish your service to Windows Azure. The roles that have antimalware configured will include the additional startup task to install and start the endpoint protection client as part of service deployment. As with any<br />Windows Azure service, you can package your service for deployment through the Windows Azure portal, or you can publish from within Visual Studio 2010. Either option will work with Microsoft Endpoint Protection for Windows Azure.&nbsp;&nbsp;</p>
<p>Once you publish your service, any roles with antimalware enabled will have the Microsoft Endpoint Protection client running within the VM.</p>]]></content:encoded>
    </item>
    <item>
      <title>On Windows Azure Diagnostics</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/on-windows-azure-diagnostics</link>
      <pubDate>Mon, 20 Feb 2012 09:53:00 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2012/02/20/on-windows-azure-diagnostics/</guid>
      <description><![CDATA[I have run across people asking about the Windows Azure Diagnostics Monitor and how it can be used...]]></description>
      <content:encoded><![CDATA[<p>I have run across people asking about the Windows Azure Diagnostics Monitor and how it can be used or implemented. This is one of the best references on how to get jump started on using the diagnostics monitor. Enjoy :)</p>
<p><a href="https://channel9.msdn.com/posts/Windows-Azure-Jump-Start-08-Windows-Azure-Diagnostics">https://channel9.msdn.com/posts/Windows-Azure-Jump-Start-08-Windows-Azure-Diagnostics</a></p>]]></content:encoded>
    </item>
    <item>
      <title>On Russinovich's "The Case of My Mom's Broken Microsoft Security Essentials Installation"</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/on-russinovichs-the-case-of-my-moms-broken-microsoft-security-essentials-installation</link>
      <pubDate>Mon, 23 Jan 2012 23:11:56 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2012/01/23/on-russinovichs-the-case-of-my-moms-broken-microsoft-security-essentials-installation/</guid>
      <description><![CDATA[I read Mark's latest blog "The Case of My Mom's Broken Microsoft Security Essentials Installation",...]]></description>
      <content:encoded><![CDATA[<p>I read Mark's latest blog "The Case of My Mom's Broken Microsoft Security Essentials Installation", and it was an interesting (I can't say it was pleasant though) read. So the long story short is that Mark's mom bought a new PC, and she used a 3rd party software to migrate her data from her old computer to the new computer. That computer also mistakenly copied some registry settings that belong to Windows Installer's database containing entries on an an old instance of Microsoft Security Essentials she had installed on her old computer. These partly copied settings ended up corrupting the Windows Installer database. So Windows Installer thought it has already another instance of the software installed, but can't find&nbsp;it, nor it can find&nbsp;its components and other related information, leading to a wierd behavior.</p>
<p>This can happen to any&nbsp;Windows Installer based setup pogram, and not only Microsoft Security&nbsp;Essentials setup, but&nbsp;what&nbsp;Microsoft Security Essentials probably&nbsp;could do better, is provide a better&nbsp;is to lead the&nbsp;more savvy users to where it saves its diagnostics logs and information. So if Mark would have consulted the installation logs, it'd probably have been a shorter and more straight forward diagnostics journey.</p>
<p>The Microsoft Security Essentials setup saves its installation logs at: "%ProgramData%\Microsoft\Microsoft Security Client".</p>
<p>You can also download and run the Microsoft Security Support tool to collect the installation logs and relevant diagnostics information. The tool is available at: <a href="https://www.microsoft.com/download/en/details.aspx?id=13088">https://www.microsoft.com/download/en/details.aspx?id=13088</a></p>
<p><b>"Microsoft Security Support tool</b></p>
<p>The Microsoft Security Support tool gathers support data necessary to help the Microsoft Support team to resolve support issues.&nbsp;<br />Run The Microsoft Security Support tool on the problematic FEP computer (client or server).&nbsp;<br /><br />Send the cab file that is created to the Microsoft Support team to enable them to diagnose and resolve the support issues."</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Free online courses at Stanford - UC berkeley</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/free-online-courses-at-stanford-uc-berkeley</link>
      <pubDate>Mon, 23 Jan 2012 22:55:05 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2012/01/23/free-online-courses-at-stanford-uc-berkeley/</guid>
      <description><![CDATA[OK, so I ran across some nice free online classes offered at Stanford. This semeser, the university...]]></description>
      <content:encoded><![CDATA[<p>OK, so I ran across some nice free online classes offered at Stanford. This semeser, the university offers the following free courses:</p>
<ul>
<li>Introduction to Databases: <a href="https://www.db-class.com">www.db-class.com</a></li>
<li>Introduction to Artificial Intelligence: <a href="https://www.ai-class.com">www.ai-class.com</a></li>
<li>Machine Learning: <a href="https://www.ml-class.org">www.ml-class.org</a></li>
<li>Software Engineering for Software as a Service: <a href="https://www.saas-class.org/">https://www.saas-class.org/</a> ,</li>
<li>Technology Entrepreneurship: <a href="https://www.venture-class.org/">https://www.venture-class.org/</a></li>
<li>Human-Computer Interaction: <a href="https://www.hci-class.org/">https://www.hci-class.org/</a>&nbsp;</li>
</ul>
<p>Some classes have open registration, and some have a registration limit (like the db class).</p>
<p>I hope you find these resources useful :)</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Mark Russinovich on Debugging an Installer Service Failure</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/mark-russinovich-on-debugging-an-installer-service-failure</link>
      <pubDate>Wed, 30 Nov 2011 13:30:34 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2011/11/30/mark-russinovich-on-debugging-an-installer-service-failure/</guid>
      <description><![CDATA[A nice case study of an instance where an administrator was debuging a failure in starting windows...]]></description>
      <content:encoded><![CDATA[<p>A nice case study of an instance where an administrator was debuging a failure in starting windows installer service by using procmon.</p>
<p>Check it out at:</p>
<p><a href="https://blogs.technet.com/b/markrussinovich/archive/2011/11/29/3467449.aspx">https://blogs.technet.com/b/markrussinovich/archive/2011/11/29/3467449.aspx</a></p>
<p>Marks's Case of Unexplained series' webinars can be found at:</p>
<p><a href="https://technet.microsoft.com/en-us/sysinternals/bb963887">https://technet.microsoft.com/en-us/sysinternals/bb963887</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Why Intelligent People Fail</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/why-intelligent-people-fail</link>
      <pubDate>Mon, 11 Oct 2010 16:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2010/10/11/why-intelligent-people-fail/</guid>
      <description><![CDATA[I run through this great read: Why Intelligent People Fail. I personally found it inspiring and...]]></description>
      <content:encoded><![CDATA[<p>I run through this great read: Why Intelligent People Fail. I personally found it inspiring and useful. A good exercise is to go through the list and grade yourself against each item and see if there are areas of improvements you want to focus on.. Here you go:</p>
<p><a href="https://www.acceleratingfuture.com/michael/works/intelligentfailure.htm" target="_blank">https://www.acceleratingfuture.com/michael/works/intelligentfailure.htm</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Where to submit sample malware or report false positives for Microsoft Security Essentials</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/where-to-submit-sample-malware-or-report-false-positives-for-microsoft-security-essentials</link>
      <pubDate>Mon, 09 Aug 2010 15:14:52 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2010/08/09/where-to-submit-sample-malware-or-report-false-positives-for-microsoft-security-essentials/</guid>
      <description><![CDATA[If you encounter a false positive detected by Microsoft antimalware, or want to report an...]]></description>
      <content:encoded><![CDATA[<p>If you encounter a false positive detected by Microsoft antimalware, or want to report an encountered malware sample, please go to: <a href="https://www.microsoft.com/security/portal/Submission/Submit.aspx">https://www.microsoft.com/security/portal/Submission/Submit.aspx</a>&nbsp;and submit the sample. Sometimes the false positive may involve an incorrect detection related to an action on two files, the MMPC website above allows you to submit multiple files in a single submission as well.</p>]]></content:encoded>
    </item>
    <item>
      <title>They're here! Microsoft Security Essentials and Forefront Endpoint Protection 2010 Betas!</title>
      <link>https://docs.microsoft.com/archive/blogs/elyasse/theyre-here-microsoft-security-essentials-and-forefront-endpoint-protection-2010-betas</link>
      <pubDate>Wed, 21 Jul 2010 17:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Elyasse Elyacoubi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/elyasse/2010/07/21/theyre-here-microsoft-security-essentials-and-forefront-endpoint-protection-2010-betas/</guid>
      <description><![CDATA[The beta versions of Microsoft security products: Microsoft Security Essentials and Forefront...]]></description>
      <content:encoded><![CDATA[<p>The beta versions of Microsoft security products: Microsoft Security Essentials and Forefront Endpoint Protection 2010 are now available to the public. One key awsome new feature is NIS (Network Inspection System), protecting against network threats on application layer through analyzing signatures along with protocol and application definitions. A lot of other cool features are in the beta as well. FEP 2010 supports distribution and management through SCCM, as well as other existing distribution mechanisms.</p>
<p>You can download the betas of MSE and FEP2010 from here: <a href="https://technet.microsoft.com/en-us/evalcenter/ff182914.aspx">https://technet.microsoft.com/en-us/evalcenter/ff182914.aspx</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>