diff options
| author | Barry Golden <[email protected]> | 2015-07-30 16:03:24 -0700 |
|---|---|---|
| committer | Barry Golden <[email protected]> | 2015-07-30 16:03:24 -0700 |
| commit | 4dc90ad04d5e40851e2e370f487b7cc9a3be071b (patch) | |
| tree | c2e74dd18a743893c555d311f29ad9fba77b60c6 /network | |
| parent | d3abcb10a801986a2956d6bbdfeb652bda1d9a74 (diff) | |
Update README.md
Diffstat (limited to 'network')
| -rw-r--r-- | network/ndis/filter/ReadMe.md | 21 | ||||
| -rw-r--r-- | network/ndis/mux/ReadMe.md | 29 | ||||
| -rw-r--r-- | network/ndis/ndisprot/6x/ReadMe.md | 73 | ||||
| -rw-r--r-- | network/radio/HidSwitchDriverSample/ReadMe.md | 56 | ||||
| -rw-r--r-- | network/radio/RadioManagerSample/ReadMe.md | 130 | ||||
| -rw-r--r-- | network/trans/inspect/ReadMe.md | 2 | ||||
| -rw-r--r-- | network/trans/msnmntr/ReadMe.md | 8 |
7 files changed, 105 insertions, 214 deletions
diff --git a/network/ndis/filter/ReadMe.md b/network/ndis/filter/ReadMe.md index 4202c41a..386115a1 100644 --- a/network/ndis/filter/ReadMe.md +++ b/network/ndis/filter/ReadMe.md @@ -36,9 +36,11 @@ Before you manually deploy a driver, you must turn on test signing and install a Ndislwf is installed as a service (called **NDIS Sample LightWeight Filter** in the supplied INF). To install it, do the following: 1. Prepare an installation directory on the target computer and copy these files from the host computer into the directory: +``` netlwf.cat netlwf.inf ndislwf.sys +``` 2. Open **Control Panel**. 3. Click **Network and Internet** and then open **Network and Sharing Center**. Under **View your active networks**, click the connection listed under **Connections**: and click **Properties**. 4. If you have previously installed this sample, highlight it in the list. @@ -68,7 +70,7 @@ If you chose to deploy your driver manually, then you need to set up kernel debu The kernel-mode debuggers (WinDbg.exe and Kd.exe) are included in the WDK. -On the host computer, locate and open a kernel-mode debugger (example: c:\\Program Files (x86)\\Windows Kits\\8.1\\Debuggers\\x64\\windbg.exe). Establish a kernel-mode debugging session between the host and target computers. The details of how to do this depend on the type of debug cable you are using. For information about how to start a debugging session, see [Setting Up Kernel-Mode Debugging Manually](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439378). +On the host computer, locate and open a kernel-mode debugger (example: c:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64\\windbg.exe). Establish a kernel-mode debugging session between the host and target computers. The details of how to do this depend on the type of debug cable you are using. For information about how to start a debugging session, see [Setting Up Kernel-Mode Debugging Manually](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439378). Setting kd\_default\_mask ------------------------- @@ -83,25 +85,16 @@ Viewing trace messages ---------------------- On the host computer, in the kernel-mode debugger, verify that you see trace messages similar to these: - -<table> -<colgroup> -<col width="100%" /> -</colgroup> -<tbody> -<tr class="odd"> -<td align="left"><pre><code>NDISLWF: ===>DriverEntry... +``` +NDISLWF: ===>DriverEntry... NDISLWF: ===>FilterRegisterOptions NDISLWF: <===FilterRegisterOptions NDISLWF: ==>FilterRegisterDevice NDISLWF: <==FilterRegisterDevice: 0 NDISLWF: <===DriverEntry, Status = 0 NDISLWF: ===>FilterAttach: NdisFilterHandle FFFFE00000F73650 -NDISLWF: <===FilterAttach: Status 0</code></pre></td> -</tr> -</tbody> -</table> - +NDISLWF: <===FilterAttach: Status 0 +``` What the Ndislwf sample driver does: ------------------------------------ diff --git a/network/ndis/mux/ReadMe.md b/network/ndis/mux/ReadMe.md index e22050fe..cc864aec 100644 --- a/network/ndis/mux/ReadMe.md +++ b/network/ndis/mux/ReadMe.md @@ -98,18 +98,11 @@ The only status indications that are forwarded up by MUX are media connect statu During initialization (`MPInitialize`), the MUX miniport sets the attribute **NDIS\_ATTRIBUTE\_NO\_HALT\_ON\_SUSPEND** in its call to `NdisMSetMiniportAttributes`. When the MUX miniport is requested to report its Plug and Play capabilities (**OID\_PNP\_CAPABILITIES**), the MUX miniport forwards the request to the underlying miniport. If this request succeeds, then the MUX miniport overwrites the following fields before successfully completing the original request: -<table> -<colgroup> -<col width="100%" /> -</colgroup> -<tbody> -<tr class="odd"> -<td align="left"><pre><code>NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp = NdisDeviceStateUnspecified; +``` +NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp = NdisDeviceStateUnspecified; NDIS_DEVICE_POWER_STATE MinPatternWakeUp= NdisDeviceStateUnspecified; -NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp=NdisDeviceStateUnspecified</code></pre></td> -</tr> -</tbody> -</table> +NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp=NdisDeviceStateUnspecified +``` See `PtPostProcessPnPCapabilities` for details. @@ -170,5 +163,19 @@ The notify object provides a custom property page for the MUX IM driver. The cus When the MUX IM driver is uninstalled, or binding is disabled, or the user deletes all the virtual adapters on top of a physical adapter, the notify object restores the bindings of other protocols to the physical adapter if it has been compiled with the preprocessor flag **DISABLE\_PROTOCOLS\_TO\_PHYSICAL** defined in the Sources file. +### File Manifest +File | Description +-----|------------ +Miniport.c | Miniport related routines for the MUX driver +Mux.c | DriverEntry routine and any routines common to the MUX miniport and protocol +Mux.h | Prototypes of all functions and data structures used by the MUX driver +Mux.rc | Resource file for the MUX driver +Muxp.inf | Installation INF for the service (protocol side installation) +Mux_mp.inf | Installation INF for the miniport (virtual device installation) +Precomp.h | Precompile header file +Protocol.c | Protocol related routines for the MUX driver +Public.h | Contains the common declarations shared by driver and user applications + +For more information, see **NDIS Intermediate Drivers** in the network devices design guide. diff --git a/network/ndis/ndisprot/6x/ReadMe.md b/network/ndis/ndisprot/6x/ReadMe.md index 63e3a5ec..cdf35d7c 100644 --- a/network/ndis/ndisprot/6x/ReadMe.md +++ b/network/ndis/ndisprot/6x/ReadMe.md @@ -3,9 +3,7 @@ NDIS Connection-less Protocol Driver Sample This sample demonstrates a connection-less NDIS 6.0 protocol.The driver supports sending and receiving raw Ethernet frames using `ReadFile`/`WriteFile` calls from user-mode. It only receives frames with a specific EtherType field. As an NDIS protocol, it illustrates how to establish and tear down bindings to Ethernet adapters, i.e. those that export medium type **NdisMedium802\_3**. It shows how to set a packet filter, send and receive data, and handle plug-and-play events. - -INSTALLATION ------------- +### INSTALLATION The driver is installed using the INF file ndisprot.inf, which is provided in the driver directory. In Network Connections UI, select an adapter and open **Properties.** @@ -13,8 +11,7 @@ Click **Install**, then **Protocol**, then **Add**, and then **Have disk**. Then Select **Sample NDIS Protocol Driver** and click **OK**. After installing the protocol, copy over the test application prottest.exe to a convenient location. Please note that the driver service has been set to manual start in the INF file. As a result, it doesn't get loaded automatically when you install. -Usage ------ +### Usage To start the driver, type **Net start ndisprot**. @@ -22,24 +19,16 @@ To stop the driver, type **Net stop ndisprot**. To test the driver, run **prottest**. For help on usage, run **prottest -?** -**usage: PROTTEST [options] \<devicename\>** - -**options:** +**usage: PROTTEST [options] \\*devicename*** -<table> -<colgroup> -<col width="50%" /> -<col width="50%" /> -</colgroup> -<tbody> -<tr class="odd"> -<td align="left">-e -Enumerate devices</td> -<td align="left">-r -Read</td> -</tr> -</tbody> -</table> +options | Description +----------|------------ +-e | Enumerate devices +-r | Read +-w | Write (default) +-l | <length>: length of each packet (default: 100) +-n | <count>: number of packets (defaults to infinity) +-m | <MAC address> (defaults to local MAC) Prottest exercises the IOCTLs supported by NDISPROT, and sends and/or receives data on the selected device. In order to use prottest, the user must have administrative privilege. Users should pass down a big enough buffer in order to receive the entire received data. If the length of the buffer passed down is smaller than the length of the received data, NDISPROT will only copy part of the data and discard the rest when the given buffer is full. @@ -51,34 +40,24 @@ Use the **–e** option to enumerate all devices to which NDISPROT is bound: **DoReadProc finished: read 2 packets** -**Note** - -With a checked version of ndisprot.sys, you can control the volume of debug information generated by changing the variable `ndisprotDebugLevel`. Refer to debug.h for more information. +**Note** With a checked version of ndisprot.sys, you can control the volume of debug information generated by changing the variable `ndisprotDebugLevel`. Refer to debug.h for more information. For more information, see [NDIS Protocol Drivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff566821) in the network devices design guide. -File Manifest -------------- +### File Manifest -<table> -<colgroup> -<col width="50%" /> -<col width="50%" /> -</colgroup> -<thead> -<tr class="header"> -<th align="left">File -Description</th> -</tr> -</thead> -<tbody> -<tr class="odd"> -<td align="left">prottest.c -User-mode test application</td> -<td align="left">debug.c -Routines to aid debugging</td> -</tr> -</tbody> -</table> +File | Description +-----|------------ +prottest.c | User-mode test application +debug.c | Routines to aid debugging +debug.h | Debug macro definitions +macros.h | Spinlock, event, referencing macros +ndisbind.c | NDIS protocol entry points to handle binding/unbinding from adapters +ndisprot.h | Data structure definitions +ndisprot.inf | INF file for installing NDISPROT +ntdisp.c | NT Entry points and dispatch routines for NDISPROT +protuser.h | IOCTL and associated structure definitions +recv.c | NDIS protocol entry points for receiving data, and IRP_MJ_READ processing +send.c | NDIS protocol routines for sending data, and IRP_MJ_WRITE processing diff --git a/network/radio/HidSwitchDriverSample/ReadMe.md b/network/radio/HidSwitchDriverSample/ReadMe.md index 5a94b523..5f4fdd81 100644 --- a/network/radio/HidSwitchDriverSample/ReadMe.md +++ b/network/radio/HidSwitchDriverSample/ReadMe.md @@ -3,8 +3,15 @@ Radio Switch Test Driver for OSR USB-FX2 Development Board This sample demonstrates how to structure a HID driver for radio switches for the OSR USB-FX2 Development Board. -Starting with Windows 8.1, the hardware switch or button to control wireless transmission and the global software switch (Airplane mode switch) in the Radio Management User Interface must be synchronized. To ensure the hardware and software switches that control radio transmission are synchronized, the hardware switch or button must have a HID-compliant driver. +The hardware switch or button to control wireless transmission and the global software switch (Airplane mode switch) in the Radio Management User Interface must be synchronized. To ensure the hardware and software switches that control radio transmission are synchronized, the hardware switch or button must have a HID-compliant driver. +Switch Pack Mapping +------------------- + +### Switch Mapping + 1 | 2 | 3 | 4 | 5 | 7 | 8 +---|---|---|---|---|---|--- + Mode Select Bit 3 | Mode Select Bit 2 | Mode Select Bit 1 | - | - | - | Radio Switch Testing ------- @@ -15,42 +22,17 @@ The driver supports five modes representing the valid combinations of HID descri ### Switch Mapping -<table> -<colgroup> -<col width="25%" /> -<col width="25%" /> -<col width="25%" /> -<col width="25%" /> -</colgroup> -<thead> -<tr class="header"> -<th align="left">1 -2 -3 -Mode</th> -</tr> -</thead> -<tbody> -<tr class="odd"> -<td align="left">0 -0 -0 -Mode 1</td> -<td align="left">0 -0 -1 -Mode 1</td> -<td align="left">0 -1 -0 -Mode 2</td> -<td align="left">0 -1 -1 -Mode 3</td> -</tr> -</tbody> -</table> + 1 | 2 | 3 | Mode +---|---|---|----- + 0 | 0 | 0 | Mode 1 + 0 | 0 | 1 | Mode 1 + 0 | 1 | 0 | Mode 2 + 0 | 1 | 1 | Mode 3 + 1 | 0 | 0 | Mode 4 + 1 | 0 | 1 | Mode 5 + 1 | 1 | 0 | Mode 1 + 1 | 1 | 1 | Mode 1 + ### Mode 1 Radio Push Button diff --git a/network/radio/RadioManagerSample/ReadMe.md b/network/radio/RadioManagerSample/ReadMe.md index 4c481bbd..e62f096c 100644 --- a/network/radio/RadioManagerSample/ReadMe.md +++ b/network/radio/RadioManagerSample/ReadMe.md @@ -1,9 +1,9 @@ Windows Radio Management Sample =============================== -The Radio Manager sample demonstrates how to structure a Radio Manager for use with the Windows 8.1 Radio Management APIs. +The Radio Manager sample demonstrates how to structure a Radio Manager for use with the Windows Radio Management APIs. -Starting with Windows 8.1, the operating system contains a set of APIs which are used as a software mechanism to control the various radios found on the machine. The APIs work by communicating with a Radio Manager, which is a COM object that relays commands from the APIs to turn the radio on or off, and reports back radio information to the APIs. This feature is designed in such a way that a separate Radio Manager is required for each radio media type. For example, a WLAN radio will be controlled by a different Radio Manager than a GPS radio. If there are 2 WLAN radios and a GPS radio, the 2 WLAN radios will be controlled by one Radio Manager, and the GPS radio will be controlled by a different Radio Manager. The Radio Manager must be able to run correctly within Local Service Account context. Under this context, the Radio Manager will have the minimum privilege on the local computer. +The operating system contains a set of APIs which are used as a software mechanism to control the various radios found on the machine. The APIs work by communicating with a Radio Manager, which is a COM object that relays commands from the APIs to turn the radio on or off, and reports back radio information to the APIs. This feature is designed in such a way that a separate Radio Manager is required for each radio media type. For example, a WLAN radio will be controlled by a different Radio Manager than a GPS radio. If there are 2 WLAN radios and a GPS radio, the 2 WLAN radios will be controlled by one Radio Manager, and the GPS radio will be controlled by a different Radio Manager. The Radio Manager must be able to run correctly within Local Service Account context. Under this context, the Radio Manager will have the minimum privilege on the local computer. When the user turns the radio off (either by using the specific radio software switch or the airplane mode switch), radio transmission must be turned off. The device can be powered off as long as the radio switch does not disappear from the UI. It is very important that the radio manager developer ensures that when the device is powered off, the radio switch does not disappear from the UI. If the radio switch disappears from the UI when the radio is turned off by the user, then user has no way to turn the radio back on! If it is desired to conserve power by cutting power to the device when the radio is turned off, but the device cannot be completely powered off because it disappears from the UI, then the solution would be to put the device in a low power state (e.g. D3). @@ -20,84 +20,28 @@ Copy the *install.cmd*, *SampleRM.reg* and *SampleRM.dll* files to a directory. Code Tour --------- -File - -Description - -install.cmd - -Installation script. Copies and registers the dll and executes SampleRM.reg. - -SampleRM.reg - -script to install the Sample Radio Manager into the registry, along with 2 radio instances. - -SampleRM.sln - -The Visual Studio solution file for building the Sample Radio Manager dll. - -sampleRM.idl - -The interface definition for the Sample Radio Manager. - -RadioMgr.idl - -The interface definition for a Windows Radio Manager. - -SampleRadioManager.h - -Header file for the functions required for a Radio Manager. - -SampleRadioInstance.h - -Header file for the functions required for a Radio Instance. - -SampleInstanceCollection.h - -Header file for the functions required for a Collection of Radio Instances. - -precomp.h - -Common header file. - -InternalInterfaces.h - -Header file for internal interface used for this sample. - -dllmain.cpp - -Standard dllmain. - -SampleRadioManager.cpp - -Implementation details for the Sample Radio Manager. Important concepts include: - -- Utilizing [IMediaRadioManagerNotifySink](http://msdn.microsoft.com/en-us/library/windows/hardware/hh406534) for radio instance events -- Adding/Removing radio instances -- Queuing and deploying worker jobs for system events - -SampleRadioInstance.cpp - -Implementation details for the Sample Radio Instance. Important concepts include: - -- Accessors & Modifiers for radio information -- Instance change functions - -SampleInstanceCollection.cpp - -Implementation details for the Sample Instance Collection. Important concepts include:l - -- Radio Instance discovery and retrieval - -RadioMgr\_interface.cpp - -Helper source file to include the MIDL-generated files. +File | Description +-----|----- +install.cmd | Installation script. Copies and registers the dll and executes SampleRM.reg. +SampleRM.reg | Script to install the Sample Radio Manager into the registry, along with 2 radio instances. +SampleRM.sln | The Visual Studio solution file for building the Sample Radio Manager dll. +sampleRM.idl |The interface definition for the Sample Radio Manager. +RadioMgr.idl | The interface definition for a Windows Radio Manager. +SampleRadioManager.h | Header file for the functions required for a Radio Manager. +SampleRadioInstance.h | Header file for the functions required for a Radio Instance. +SampleInstanceCollection.h | Header file for the functions required for a Collection of Radio Instances. +precomp.h | Common header file. +InternalInterfaces.h | Header file for internal interface used for this sample. +dllmain.cpp | Standard dllmain. +SampleRadioManager.cpp | Implementation details for the Sample Radio Manager. Important concepts include utilizing [IMediaRadioManagerNotifySink](http://msdn.microsoft.com/en-us/library/windows/hardware/hh406534) for radio instance events, adding/Removing radio instances, and queuing and deploying worker jobs for system events. +SampleRadioInstance.cpp | Implementation details for the Sample Radio Instance. Important concepts include accessors and modifiers for radio information, and instance change functions. +SampleInstanceCollection.cpp | Implementation details for the Sample Instance Collection. Important concepts include radio instance discovery and retrieval. +RadioMgr\_interface.cpp | Helper source file to include the MIDL-generated files. Run the sample -------------- -Operation ---------- +### Operation ### This sample Radio Manager does not operate on an actual radio. Instead, it uses registry keys to act as virtual radios. @@ -115,22 +59,13 @@ IsAssociatingDevice \*\*\* It is required that the registry key has AT LEAST a Name value, otherwise the Sample Radio Manager will fail to initialize. \*\*\* -**Important** The radio manager must be given a name and the registry key must have, as a minimum, a Name value. Otherwise, the Sample Radio Manager will fail to initialize. This is the name of the radio switch that is displayed to the user in the Wireless page of PC Settings. The name must be simple, yet descriptive of what the radio is. For example, for NFC radios, the value of the name field should be "NFC", and for GPS radios, the value of the name field should be "GPS" or "GNSS", whichever is more appropriate. The name must not include the word "radio" or the manufacturer's name or some other word related to the functionality of the radio (e.g. "Location" OR "port"). +**Important** The radio manager must be given a name and the registry key must have, as a minimum, a Name value. Otherwise, the Sample Radio Manager will fail to initialize. This is the name of the radio switch that is displayed to the user in the Wireless page of PC Settings. The name must be simple, yet descriptive of what the radio is. For example, for NFC radios, the value of the name field should be "NFC", and for GPS radios, the value of the name field should be "GPS" or "GNSS", whichever is more appropriate. The name must not include the word "radio" or the manufacturer's name or some other word related to the functionality of the radio (e.g. "Location" OR "port"). When the Radio Manager is initialized, it uses these registry keys to retrieve the "radio" information. The radio state values can be any of the following enum values: -<table> -<colgroup> -<col width="100%" /> -</colgroup> -<thead> -<tr class="header"> -<th align="left">C++</th> -</tr> -</thead> -<tbody> -<tr class="odd"> -<td align="left"><pre><code>typedef enum _DEVICE_RADIO_STATE + +```c_cpp +typedef enum _DEVICE_RADIO_STATE { DRS_RADIO_ON = 0, DRS_SW_RADIO_OFF = 1, @@ -140,32 +75,27 @@ When the Radio Manager is initialized, it uses these registry keys to retrieve t DRS_RADIO_INVALID = 5, DRS_HW_RADIO_OFF_UNCONTROLLABLE = 6, DRS_RADIO_MAX = DRS_HW_RADIO_OFF_UNCONTROLLABLE -} DEVICE_RADIO_STATE;</code></pre></td> -</tr> -</tbody> -</table> +} DEVICE_RADIO_STATE; +``` For IsMultiComm and IsAssociatingDevice, a value of 0 means 'no' and 1 means 'yes'. -Adding and Setting a Radio Instance ------------------------------------ +### Adding and Setting a Radio Instance ### To add a new radio instance, add a new instance key to the registry key like the following entry: -``` {.syntax xml:space="preserve"} +``` [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\SampleRadioManager\SampleRadioX] "RadioState"=dword:00000000 "Name"="SampleRadioX" "IsMultiComm"=dword:00000000 ``` -Editing a Radio Instance ------------------------- +### Editing a Radio Instance ### Simply change the values in the registry. For example, change the radio state from DRS\_RADIO\_ON to DRS\_SW\_RADIO\_OFF by changing the 'RadioState' value from 0 to 1. -Removing a Radio Instance -------------------------- +### Removing a Radio Instance ### Delete the corresponding registry key. diff --git a/network/trans/inspect/ReadMe.md b/network/trans/inspect/ReadMe.md index ef7fc9e8..4f28598c 100644 --- a/network/trans/inspect/ReadMe.md +++ b/network/trans/inspect/ReadMe.md @@ -5,7 +5,7 @@ This sample driver demonstrates the traffic inspection capabilities of the Windo The sample driver consists of a kernel-mode Windows Filtering Platform (WFP) callout driver (Inspect.sys) that intercepts all transport layer traffic (for example, Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and nonerror Internet Control Message Protocol (ICMP)) sent to or received from a configurable remote peer and queues then to a worker thread for out-of-band processing. -Inspect.sys inspects inbound and outbound connections and all packets that belong to those connections. Additionally, Inspect.sys demonstrates the special considerations that are required to be compatible with Internet Protocol security (IPsec) in Windows Vista and Windows Server 2008. +Inspect.sys inspects inbound and outbound connections and all packets that belong to those connections. Additionally, Inspect.sys demonstrates the special considerations that are required to be compatible with Internet Protocol security (IPsec). Inspect.sys implements the `ClassifyFn` callout functions for the ALE Connect, Recv-Accept, and Transport callouts. In addition, the system worker thread that performs the actual packet inspection is also implemented along with the event mechanisms that are shared between the Classify function and the worker thread. diff --git a/network/trans/msnmntr/ReadMe.md b/network/trans/msnmntr/ReadMe.md index 9f247ff5..9c980db4 100644 --- a/network/trans/msnmntr/ReadMe.md +++ b/network/trans/msnmntr/ReadMe.md @@ -40,7 +40,7 @@ Copy the user-mode application, monitor.exe to a folder on the target computer ( Copy the PDB file, msnmntr.pdb to a folder on the target computer (for example, c:\\Symbols). -Copy the tool TraceView.exe to a folder on the target computer (for example c:\\Tools). TraceView.exe comes with the WDK. You can find it in your WDK installation folder under Tools (for example, c:\\Program Files (x86)\\Windows Kits\\8.1\\Tools\\x64\\TraceView.exe). +Copy the tool TraceView.exe to a folder on the target computer (for example c:\\Tools). TraceView.exe comes with the WDK. You can find it in your WDK installation folder under Tools (for example, c:\\Program Files (x86)\\Windows Kits\\10\\Tools\\x64\\TraceView.exe). Start the msnmntr service ------------------------- @@ -52,7 +52,7 @@ Running the user-mode application On the target computer, open a Command Prompt window as Administrator, and navigate to the folder that contains monitor.exe. Enter **monitor.exe addcallouts**. Then enter **monitor.exe monitor** *TargetAppPath*, where *TargetAppPath* is the path to the application that you want to monitor. Here is an example that initiates monitoring of Internet Explorer. -``` {.syntax xml:space="preserve"} +``` monitor.exe addcallouts monitor.exe monitor "C:\Program Files (x86)\Internet Explorer\iexplore.exe" ``` @@ -71,9 +71,9 @@ Using MSBuild As an alternative to building the WFP MSN Messenger Monitor Sample in Visual Studio, you can build it in a Visual Studio Command Prompt window. In Visual Studio, on the **Tools** menu, choose **Visual Studio Command Prompt**. In the Visual Studio Command Prompt window, navigate to the folder that has the solution file, msnmntr.sln. Use the [MSBuild](http://go.microsoft.com/fwlink/p/?linkID=262804) command to build the solution. Here are some examples: -**msbuild /p:configuration=”Win7 Debug” /p:platform=”x64” msnmntr.sln** +**msbuild /p:configuration="Debug" /p:platform="x64" msnmntr.sln** -**msbuild /p:configuration=”Win8 Release” /p:platform=”win32” msnmntr.sln** +**msbuild /p:configuration="Release" /p:platform="Win32" msnmntr.sln** For more information about using [MSBuild](http://go.microsoft.com/fwlink/p/?linkID=262804) to build a driver package, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644). |
