summaryrefslogtreecommitdiff
path: root/general/WinHEC 2017 Lab
diff options
context:
space:
mode:
authorDavid Spruill <[email protected]>2026-01-08 17:51:47 -0500
committerGitHub <[email protected]>2026-01-08 17:51:47 -0500
commitc5fc3ca1fd0e00a7e085ef48abfeff9c0c39817e (patch)
tree0e650a0fee8027816bbea82ca1fd9b8e3e6ee24a /general/WinHEC 2017 Lab
parentf88e4fbbd4d2671e5cd77e4f60be7a235326797e (diff)
parented3dbe56378117a15105099870f2397671ad99ab (diff)
Merge branch 'develop' into user/daspr/kmodsamplefix
Diffstat (limited to 'general/WinHEC 2017 Lab')
-rw-r--r--general/WinHEC 2017 Lab/PlugInToaster/devcon.exebin81920 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/PlugInToaster/plug.exebin12848 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/PlugInToaster/unplug.bat2
-rw-r--r--general/WinHEC 2017 Lab/README.md13
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/HsaService.cpp116
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.cpp148
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.h29
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.Idl51
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.acf17
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_c.c476
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_h.h103
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_s.c430
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.cpp320
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.h16
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj284
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj.filters76
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.cpp155
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.h46
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.cpp566
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.h121
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.cpp191
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.h57
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.cpp8
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.h15
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/Service/targetver.h8
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster.sln40
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/driver.h80
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/public.h167
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.c418
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.h134
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.inxbin1148 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj229
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj.filters45
-rw-r--r--general/WinHEC 2017 Lab/Toaster Driver/toaster/trace.h62
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App.sln40
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.SCCD11
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj287
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj.filters89
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/DeviceList.cpp244
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Package.appxmanifest41
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.cpp177
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.h30
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface.c6
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_c.c476
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_h.h112
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_s.c430
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.cpp21
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.h47
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml68
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.cpp47
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.h31
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.cpp282
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.h77
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.cpp60
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.h27
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.cpp134
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.h33
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/DeviceHelpers.h67
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml80
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.cpp154
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.h46
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/Square310x310Logo.pngbin6124 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/microsoft-sdk.pngbin3405 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder-sdk.pngbin8991 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder.pngbin4568 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/smalltile-sdk.pngbin670 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/splash-sdk.pngbin9274 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/squaretile-sdk.pngbin1137 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/storelogo-sdk.pngbin442 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/tile-sdk.pngbin4852 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/windows-sdk.pngbin2997 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/App.xaml34
-rw-r--r--general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/Styles.xaml536
-rw-r--r--general/WinHEC 2017 Lab/WinHEC 2017 Lab.docxbin1112525 -> 0 bytes
-rw-r--r--general/WinHEC 2017 Lab/WinHEC 2017 Lab.zipbin1120779 -> 0 bytes
75 files changed, 0 insertions, 8110 deletions
diff --git a/general/WinHEC 2017 Lab/PlugInToaster/devcon.exe b/general/WinHEC 2017 Lab/PlugInToaster/devcon.exe
deleted file mode 100644
index 92f91505..00000000
--- a/general/WinHEC 2017 Lab/PlugInToaster/devcon.exe
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/PlugInToaster/plug.exe b/general/WinHEC 2017 Lab/PlugInToaster/plug.exe
deleted file mode 100644
index d84aa38b..00000000
--- a/general/WinHEC 2017 Lab/PlugInToaster/plug.exe
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/PlugInToaster/unplug.bat b/general/WinHEC 2017 Lab/PlugInToaster/unplug.bat
deleted file mode 100644
index 324ae1cf..00000000
--- a/general/WinHEC 2017 Lab/PlugInToaster/unplug.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@sc delete hsa_usersrv
-@devcon remove TOASTER\BASIC_TOASTER \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/README.md b/general/WinHEC 2017 Lab/README.md
deleted file mode 100644
index eda72f91..00000000
--- a/general/WinHEC 2017 Lab/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-page_type: sample
-description: "Toaster samples from the WinHEC 2017 Lab: Toaster Driver, PlugInToaster, and Toaster Support App."
-languages:
-- cpp
-products:
-- windows
-- windows-wdk
----
-
-# WinHEC 2017 Lab
-
-Toaster samples from the WinHEC 2017 Lab: Toaster Driver, PlugInToaster, and Toaster Support App.
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/HsaService.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/HsaService.cpp
deleted file mode 100644
index d3f70fdf..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/HsaService.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "stdafx.h"
-
-#pragma region Includes
-#include <stdio.h>
-#include <windows.h>
-#include "ServiceInstaller.h"
-#include "ServiceBase.h"
-#include "SampleService.h"
-#pragma endregion
-
-//
-// Settings of the service
-//
-
-// Internal name of the service
-#define SERVICE_NAME L"HsaService"
-
-// Displayed name of the service
-#define SERVICE_DISPLAY_NAME L"Hsa Sample Service"
-
-// Service start options.
-#define SERVICE_START_TYPE SERVICE_DEMAND_START
-
-// List of service dependencies - "dep1\0dep2\0\0"
-#define SERVICE_DEPENDENCIES L""
-
-// The name of the account under which the service should run - NULL uses LocalSystem account.
-#define SERVICE_ACCOUNT NULL
-
-// The password to the service account name
-#define SERVICE_PASSWORD NULL
-
-
-//
-// FUNCTION: wmain(int, wchar_t *[])
-//
-// PURPOSE: entrypoint for the application.
-//
-// PARAMETERS:
-// argc - number of command line arguments
-// argv - array of command line arguments
-//
-// RETURN VALUE:
-// none
-//
-// COMMENTS:
-// wmain() either performs the command line task, or run the service.
-//
-int wmain(_In_ int argc, _In_ wchar_t *argv[])
-{
- bool invalidArgs = false;
-
- if ((argc > 1) && ((*argv[1] == L'-' || (*argv[1] == L'/'))))
- {
- if (_wcsicmp(L"install", argv[1] + 1) == 0)
- {
- // Install the service when the command is
- // "-install" or "/install".
- InstallService(
- SERVICE_NAME, // Name of service
- SERVICE_DISPLAY_NAME, // Name to display
- SERVICE_START_TYPE, // Service start type
- SERVICE_DEPENDENCIES, // Dependencies
- SERVICE_ACCOUNT, // Service running account
- SERVICE_PASSWORD // Password of the account
- );
- }
- else if (_wcsicmp(L"remove", argv[1] + 1) == 0)
- {
- // Uninstall the service when the command is
- // "-remove" or "/remove".
- UninstallService(SERVICE_NAME);
- }
- else if (_wcsicmp(L"console", argv[1] + 1) == 0)
- {
- // Uninstall the service when the command is
- // "-remove" or "/remove".
- CSampleService service(SERVICE_NAME);
- service.ConsoleRun();
- }
- else
- {
- invalidArgs = true;
- }
- }
- else
- {
- invalidArgs = true;
- CSampleService service(SERVICE_NAME);
- if (!CServiceBase::Run(service))
- {
- wprintf(L"Service failed to run w/err 0x%08lx\n", GetLastError());
- }
- }
-
- if (invalidArgs)
- {
- wprintf(L"Parameters:\n");
- wprintf(L" -install to install the service.\n");
- wprintf(L" -remove to remove the service.\n");
- wprintf(L" -console to run in console mode.\n");
- }
-
- return 0;
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.cpp
deleted file mode 100644
index 1766b37c..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "stdafx.h"
-#include "Metering.h"
-#include <assert.h>
-#include "RpcInterface_h.h"
-
-using namespace RpcServer;
-
-//
-// Thread pool callback method for metering worker
-//
-void CALLBACK MeteringWorkerTpCallback(
- _In_ PTP_CALLBACK_INSTANCE /*iTimerInstance*/,
- _In_ PVOID pContext,
- _In_ PTP_TIMER /*pTimer*/)
-{
- Metering *metering = static_cast<Metering *>(pContext);
-
- if (metering != nullptr)
- {
- // Run the metering worker for this instance of metering
- metering->MeteringWorker();
- }
-}
-
-//
-// ctor for Metering
-//
-Metering::Metering(
- _In_ __int64 period)
-{
- tpTimer = CreateThreadpoolTimer(::MeteringWorkerTpCallback, this, nullptr);
- // TODO: Handle if CreateThreadpoolTimer fails i.e tpTimer == nullptr
-
- samplePeriod = period;
- event = CreateEvent(
- nullptr, // default security attributes
- FALSE, // auto-reset event object
- FALSE, // initial state is nonsignaled
- nullptr); // unnamed object
-}
-
-//
-// dtor for Metering
-//
-Metering::~Metering()
-{
- if (tpTimer != nullptr)
- {
- // How to close threadpool timer when there are outstanding callbacks:
- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms682040(v=vs.85).aspx
- SetThreadpoolTimer(tpTimer, nullptr, 0, 0);
- WaitForThreadpoolTimerCallbacks(tpTimer, true);
- CloseThreadpoolTimer(tpTimer);
- tpTimer = nullptr;
- }
- CloseHandle(event);
-}
-
-//
-// Set the lowest sample period
-//
-void Metering::SetSamplePeriod(_In_ __int64 period)
-{
- if (period < 1)
- {
- // Don't allow 0 (too fast) or negative numbers.
- period = 1;
- }
- if (period > 1000)
- {
- // Don't let the period be too long, or we will be
- // slow to shut down.
- period = 1000;
- }
- samplePeriod = period;
-}
-
-//
-// Get last known metering data
-//
-__int64 Metering::GetMeteringData() const
-{
- return _data;
-}
-
-//
-// Metering worker that updates metering data
-//
-void Metering::MeteringWorker()
-{
- // Get the value from the imaginary driver and update the data
- _data = GetTickCount();
- SetEvent(event);
-}
-
-//
-// Set the thread poot timer and wait for metering data.
-//
-void Metering::WaitForMeteringData() const
-{
- ULARGE_INTEGER ulDueTime;
- FILETIME FileDueTime;
- ulDueTime.QuadPart = static_cast<ULONGLONG>(-(1 * 10 * 1000 * samplePeriod));
- FileDueTime.dwHighDateTime = ulDueTime.HighPart;
- FileDueTime.dwLowDateTime = ulDueTime.LowPart;
-
- SetThreadpoolTimer(tpTimer,
- &FileDueTime,
- 0,
- 0);
-
- WaitForSingleObject(event, INFINITE);
-}
-
-void Metering::StartMetering(
- _In_ __int64 samplePeriod,
- _In_ __int64 context)
-{
- stopMeteringRequested = false;
- SetSamplePeriod(samplePeriod);
-
- while (true)
- {
- WaitForMeteringData();
- if (stopMeteringRequested || ShutdownRequested)
- {
- break;
- }
- MeteringDataEvent(GetMeteringData(), context);
- }
-}
-
-void Metering::StopMetering()
-{
- stopMeteringRequested = true;
-}
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.h
deleted file mode 100644
index bfb48216..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/Metering.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "stdafx.h"
-#include <windows.h>
-
-#include <iostream> // std::cout
-#include <thread> // std::thread
-#include <mutex>
-
-namespace RpcServer
-{
- class Metering
- {
- public:
- Metering(__int64 period);
- void SetSamplePeriod(__int64 period);
- __int64 GetMeteringData() const;
- void MeteringWorker();
- void WaitForMeteringData() const;
- void StartMetering(__int64 samplePeriod, __int64 context);
- void StopMetering();
- ~Metering();
-
- private:
- volatile __int64 _data;
- volatile __int64 samplePeriod;
- PTP_TIMER tpTimer = nullptr;
- HANDLE event;
- volatile bool stopMeteringRequested = false;
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.Idl b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.Idl
deleted file mode 100644
index 1b4b74cc..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.Idl
+++ /dev/null
@@ -1,51 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-import "oaidl.idl";
-import "unknwn.idl";
-
-[uuid (906B0CE0-C70B-1067-B317-00DD010662DA),
-version(1.0),
-pointer_default(unique),
-]
-interface RpcInterface
-{
-
- // context_handle_noserialize in acf for RPC to call rundown when the client goes away
- typedef [context_handle] void* PCONTEXT_HANDLE_TYPE;
- typedef [ref] PCONTEXT_HANDLE_TYPE * PPCONTEXT_HANDLE_TYPE;
-
- //
- // RPC methods to retrieve/clean client context
- //
- void RemoteOpen([in] handle_t hBinding,
- [out] PPCONTEXT_HANDLE_TYPE pphContext);
-
- void RemoteClose([in, out] PPCONTEXT_HANDLE_TYPE pphContext);
-
- //
- // Metering Interface
- //
- void StartMetering(
- [in] PCONTEXT_HANDLE_TYPE phContext,
- [in] __int64 samplePeriod,
- [in, optional] __int64 context);
-
- void SetSamplePeriod(
- [in] PCONTEXT_HANDLE_TYPE phContext,
- [in] __int64 samplePeriod);
-
- void StopMetering([in] PCONTEXT_HANDLE_TYPE phContext);
-
- [callback] void MeteringDataEvent(
- [in] __int64 data,
- [in, optional] __int64 context);
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.acf b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.acf
deleted file mode 100644
index d00ed5af..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface.acf
+++ /dev/null
@@ -1,17 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the Microsoft Public License.
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-
-interface RpcInterface
-{
- // We need the RPC to call rundown when the client goes away
- typedef [context_handle_noserialize] PCONTEXT_HANDLE_TYPE;
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_c.c b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_c.c
deleted file mode 100644
index fbe0a799..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_c.c
+++ /dev/null
@@ -1,476 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the RPC client stubs */
-
-
- /* File created by MIDL compiler version 8.01.0622 */
-/* at Mon Jan 18 19:14:07 2038
- */
-/* Compiler settings for RpcInterface.Idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-
-#include <string.h>
-
-#include "RpcInterface_h.h"
-
-#define TYPE_FORMAT_STRING_SIZE 23
-#define PROC_FORMAT_STRING_SIZE 245
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _RpcInterface_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString;
-extern const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString;
-extern const RpcInterface_MIDL_EXPR_FORMAT_STRING RpcInterface__MIDL_ExprFormatString;
-
-#define GENERIC_BINDING_TABLE_SIZE 0
-
-
-/* Standard interface: RpcInterface, ver. 1.0,
- GUID={0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}} */
-
-
-extern const MIDL_SERVER_INFO RpcInterface_ServerInfo;
-
-
-extern const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable;
-
-static const RPC_CLIENT_INTERFACE RpcInterface___RpcClientInterface =
- {
- sizeof(RPC_CLIENT_INTERFACE),
- {{0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}},{1,0}},
- {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}},
- (RPC_DISPATCH_TABLE*)&RpcInterface_v1_0_DispatchTable,
- 0,
- 0,
- 0,
- &RpcInterface_ServerInfo,
- 0x04000000
- };
-RPC_IF_HANDLE RpcInterface_v1_0_c_ifspec = (RPC_IF_HANDLE)& RpcInterface___RpcClientInterface;
-
-extern const MIDL_STUB_DESC RpcInterface_StubDesc;
-
-static RPC_BINDING_HANDLE RpcInterface__MIDL_AutoBindHandle;
-
-
-void RemoteOpen(
- /* [in] */ handle_t hBinding,
- /* [out] */ PPCONTEXT_HANDLE_TYPE pphContext)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[0],
- hBinding,
- pphContext);
-
-}
-
-
-void RemoteClose(
- /* [out][in] */ PPCONTEXT_HANDLE_TYPE pphContext)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[36],
- pphContext);
-
-}
-
-
-void StartMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod,
- /* [optional][in] */ __int64 context)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[74],
- phContext,
- samplePeriod,
- context);
-
-}
-
-
-void SetSamplePeriod(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[124],
- phContext,
- samplePeriod);
-
-}
-
-
-void StopMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[168],
- phContext);
-
-}
-
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure RemoteOpen */
-
- 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x0 ), /* 0 */
-/* 8 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 10 */ 0x32, /* FC_BIND_PRIMITIVE */
- 0x0, /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ NdrFcShort( 0x38 ), /* 56 */
-/* 18 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 20 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-/* 26 */ NdrFcShort( 0x0 ), /* 0 */
-/* 28 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 30 */ NdrFcShort( 0x110 ), /* Flags: out, simple ref, */
-/* 32 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 34 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Procedure RemoteClose */
-
-/* 36 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x1 ), /* 1 */
-/* 44 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 46 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe4, /* Ctxt flags: via ptr, in, out, no serialize, */
-/* 48 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 50 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 52 */ NdrFcShort( 0x38 ), /* 56 */
-/* 54 */ NdrFcShort( 0x38 ), /* 56 */
-/* 56 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 58 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 68 */ NdrFcShort( 0x118 ), /* Flags: in, out, simple ref, */
-/* 70 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 72 */ NdrFcShort( 0xe ), /* Type Offset=14 */
-
- /* Procedure StartMetering */
-
-/* 74 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 76 */ NdrFcLong( 0x0 ), /* 0 */
-/* 80 */ NdrFcShort( 0x2 ), /* 2 */
-/* 82 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 84 */ 0x30, /* FC_BIND_CONTEXT */
- 0x44, /* Ctxt flags: in, no serialize, */
-/* 86 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 88 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 90 */ NdrFcShort( 0x44 ), /* 68 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ 0x40, /* Oi2 Flags: has ext, */
- 0x3, /* 3 */
-/* 96 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 106 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 108 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 110 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 114 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 116 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 120 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 122 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure SetSamplePeriod */
-
-/* 124 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 126 */ NdrFcLong( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x3 ), /* 3 */
-/* 132 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 134 */ 0x30, /* FC_BIND_CONTEXT */
- 0x44, /* Ctxt flags: in, no serialize, */
-/* 136 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 138 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 140 */ NdrFcShort( 0x34 ), /* 52 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 146 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 156 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 158 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 160 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 164 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 166 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure StopMetering */
-
-/* 168 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 170 */ NdrFcLong( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x4 ), /* 4 */
-/* 176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 178 */ 0x30, /* FC_BIND_CONTEXT */
- 0x44, /* Ctxt flags: in, no serialize, */
-/* 180 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 182 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 184 */ NdrFcShort( 0x24 ), /* 36 */
-/* 186 */ NdrFcShort( 0x0 ), /* 0 */
-/* 188 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 190 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 200 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 202 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 204 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Procedure MeteringDataEvent */
-
-/* 206 */ 0x34, /* FC_CALLBACK_HANDLE */
- 0x48, /* Old Flags: */
-/* 208 */ NdrFcLong( 0x0 ), /* 0 */
-/* 212 */ NdrFcShort( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 216 */ NdrFcShort( 0x20 ), /* 32 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 222 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 224 */ NdrFcShort( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter data */
-
-/* 232 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 234 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 236 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 238 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 240 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 242 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */ 0x30, /* FC_BIND_CONTEXT */
- 0xa4, /* Ctxt flags: via ptr, out, no serialize, */
-/* 8 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 10 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 12 */ NdrFcShort( 0x2 ), /* Offset= 2 (14) */
-/* 14 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe5, /* Ctxt flags: via ptr, in, out, no serialize, can't be null */
-/* 16 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 18 */ 0x30, /* FC_BIND_CONTEXT */
- 0x45, /* Ctxt flags: in, no serialize, can't be null */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const unsigned short RpcInterface_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 74,
- 124,
- 168,
- };
-
-
-static const unsigned short _callbackRpcInterface_FormatStringOffsetTable[] =
- {
- 206
- };
-
-
-static const MIDL_STUB_DESC RpcInterface_StubDesc =
- {
- (void *)& RpcInterface___RpcClientInterface,
- MIDL_user_allocate,
- MIDL_user_free,
- &RpcInterface__MIDL_AutoBindHandle,
- 0,
- 0,
- 0,
- 0,
- RpcInterface__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x801026e, /* MIDL Version 8.1.622 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-static const RPC_DISPATCH_FUNCTION RpcInterface_table[] =
- {
- NdrServerCall2,
- 0
- };
-static const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable =
- {
- 1,
- (RPC_DISPATCH_FUNCTION*)RpcInterface_table
- };
-
-static const SERVER_ROUTINE RpcInterface_ServerRoutineTable[] =
- {
- (SERVER_ROUTINE)MeteringDataEvent
- };
-
-static const MIDL_SERVER_INFO RpcInterface_ServerInfo =
- {
- &RpcInterface_StubDesc,
- RpcInterface_ServerRoutineTable,
- RpcInterface__MIDL_ProcFormatString.Format,
- _callbackRpcInterface_FormatStringOffsetTable,
- 0,
- 0,
- 0,
- 0};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_h.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_h.h
deleted file mode 100644
index 98544da7..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_h.h
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 8.01.0622 */
-/* at Mon Jan 18 19:14:07 2038
- */
-/* Compiler settings for RpcInterface.Idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif /* __RPCNDR_H_VERSION__ */
-
-
-#ifndef __RpcInterface_h_h__
-#define __RpcInterface_h_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-/* header files for imported files */
-#include "oaidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __RpcInterface_INTERFACE_DEFINED__
-#define __RpcInterface_INTERFACE_DEFINED__
-
-/* interface RpcInterface */
-/* [unique][version][uuid] */
-
-typedef /* [context_handle_noserialize][context_handle] */ void *PCONTEXT_HANDLE_TYPE;
-
-typedef /* [ref] */ PCONTEXT_HANDLE_TYPE *PPCONTEXT_HANDLE_TYPE;
-
-void RemoteOpen(
- /* [in] */ handle_t hBinding,
- /* [out] */ PPCONTEXT_HANDLE_TYPE pphContext);
-
-void RemoteClose(
- /* [out][in] */ PPCONTEXT_HANDLE_TYPE pphContext);
-
-void StartMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod,
- /* [optional][in] */ __int64 context);
-
-void SetSamplePeriod(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod);
-
-void StopMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext);
-
-/* [callback] */ void MeteringDataEvent(
- /* [in] */ __int64 data,
- /* [optional][in] */ __int64 context);
-
-
-
-extern RPC_IF_HANDLE RpcInterface_v1_0_c_ifspec;
-extern RPC_IF_HANDLE RpcInterface_v1_0_s_ifspec;
-#endif /* __RpcInterface_INTERFACE_DEFINED__ */
-
-/* Additional Prototypes for ALL interfaces */
-
-void __RPC_USER PCONTEXT_HANDLE_TYPE_rundown( PCONTEXT_HANDLE_TYPE );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_s.c b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_s.c
deleted file mode 100644
index 89aa59bf..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcInterface_s.c
+++ /dev/null
@@ -1,430 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the RPC server stubs */
-
-
- /* File created by MIDL compiler version 8.01.0622 */
-/* at Mon Jan 18 19:14:07 2038
- */
-/* Compiler settings for RpcInterface.Idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-
-#include <string.h>
-#include "RpcInterface_h.h"
-
-#define TYPE_FORMAT_STRING_SIZE 23
-#define PROC_FORMAT_STRING_SIZE 245
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _RpcInterface_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-extern const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString;
-extern const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString;
-extern const RpcInterface_MIDL_EXPR_FORMAT_STRING RpcInterface__MIDL_ExprFormatString;
-
-/* Standard interface: RpcInterface, ver. 1.0,
- GUID={0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}} */
-
-
-extern const MIDL_SERVER_INFO RpcInterface_ServerInfo;
-
-extern const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable;
-
-static const RPC_SERVER_INTERFACE RpcInterface___RpcServerInterface =
- {
- sizeof(RPC_SERVER_INTERFACE),
- {{0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}},{1,0}},
- {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}},
- (RPC_DISPATCH_TABLE*)&RpcInterface_v1_0_DispatchTable,
- 0,
- 0,
- 0,
- &RpcInterface_ServerInfo,
- 0x04000000
- };
-RPC_IF_HANDLE RpcInterface_v1_0_s_ifspec = (RPC_IF_HANDLE)& RpcInterface___RpcServerInterface;
-
-extern const MIDL_STUB_DESC RpcInterface_StubDesc;
-
- extern const MIDL_STUBLESS_PROXY_INFO RpcInterface_ProxyInfo;
-
-/* [callback] */ void MeteringDataEvent(
- /* [in] */ __int64 data,
- /* [optional][in] */ __int64 context)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[206],
- data,
- context);
-
-}
-
-extern const NDR_RUNDOWN RundownRoutines[];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure RemoteOpen */
-
- 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x0 ), /* 0 */
-/* 8 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 10 */ 0x32, /* FC_BIND_PRIMITIVE */
- 0x0, /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ NdrFcShort( 0x38 ), /* 56 */
-/* 18 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 20 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-/* 26 */ NdrFcShort( 0x0 ), /* 0 */
-/* 28 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 30 */ NdrFcShort( 0x110 ), /* Flags: out, simple ref, */
-/* 32 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 34 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Procedure RemoteClose */
-
-/* 36 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x1 ), /* 1 */
-/* 44 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 46 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe4, /* Ctxt flags: via ptr, in, out, no serialize, */
-/* 48 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 50 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 52 */ NdrFcShort( 0x38 ), /* 56 */
-/* 54 */ NdrFcShort( 0x38 ), /* 56 */
-/* 56 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 58 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 68 */ NdrFcShort( 0x118 ), /* Flags: in, out, simple ref, */
-/* 70 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 72 */ NdrFcShort( 0xe ), /* Type Offset=14 */
-
- /* Procedure StartMetering */
-
-/* 74 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 76 */ NdrFcLong( 0x0 ), /* 0 */
-/* 80 */ NdrFcShort( 0x2 ), /* 2 */
-/* 82 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 84 */ 0x30, /* FC_BIND_CONTEXT */
- 0x44, /* Ctxt flags: in, no serialize, */
-/* 86 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 88 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 90 */ NdrFcShort( 0x44 ), /* 68 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ 0x40, /* Oi2 Flags: has ext, */
- 0x3, /* 3 */
-/* 96 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 106 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 108 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 110 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 114 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 116 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 120 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 122 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure SetSamplePeriod */
-
-/* 124 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 126 */ NdrFcLong( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x3 ), /* 3 */
-/* 132 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 134 */ 0x30, /* FC_BIND_CONTEXT */
- 0x44, /* Ctxt flags: in, no serialize, */
-/* 136 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 138 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 140 */ NdrFcShort( 0x34 ), /* 52 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 146 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 156 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 158 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 160 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 164 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 166 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure StopMetering */
-
-/* 168 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 170 */ NdrFcLong( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x4 ), /* 4 */
-/* 176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 178 */ 0x30, /* FC_BIND_CONTEXT */
- 0x44, /* Ctxt flags: in, no serialize, */
-/* 180 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 182 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 184 */ NdrFcShort( 0x24 ), /* 36 */
-/* 186 */ NdrFcShort( 0x0 ), /* 0 */
-/* 188 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 190 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 200 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 202 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 204 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Procedure MeteringDataEvent */
-
-/* 206 */ 0x34, /* FC_CALLBACK_HANDLE */
- 0x48, /* Old Flags: */
-/* 208 */ NdrFcLong( 0x0 ), /* 0 */
-/* 212 */ NdrFcShort( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 216 */ NdrFcShort( 0x20 ), /* 32 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 222 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 224 */ NdrFcShort( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter data */
-
-/* 232 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 234 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 236 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 238 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 240 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 242 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */ 0x30, /* FC_BIND_CONTEXT */
- 0xa4, /* Ctxt flags: via ptr, out, no serialize, */
-/* 8 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 10 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 12 */ NdrFcShort( 0x2 ), /* Offset= 2 (14) */
-/* 14 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe5, /* Ctxt flags: via ptr, in, out, no serialize, can't be null */
-/* 16 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 18 */ 0x30, /* FC_BIND_CONTEXT */
- 0x45, /* Ctxt flags: in, no serialize, can't be null */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const NDR_RUNDOWN RundownRoutines[] =
- {
- PCONTEXT_HANDLE_TYPE_rundown
- };
-
-
-static const unsigned short RpcInterface_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 74,
- 124,
- 168,
- };
-
-
-static const unsigned short _callbackRpcInterface_FormatStringOffsetTable[] =
- {
- 206
- };
-
-
-static const MIDL_STUB_DESC RpcInterface_StubDesc =
- {
- (void *)& RpcInterface___RpcServerInterface,
- MIDL_user_allocate,
- MIDL_user_free,
- 0,
- RundownRoutines,
- 0,
- 0,
- 0,
- RpcInterface__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x801026e, /* MIDL Version 8.1.622 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-static const RPC_DISPATCH_FUNCTION RpcInterface_table[] =
- {
- NdrServerCall2,
- NdrServerCall2,
- NdrServerCall2,
- NdrServerCall2,
- NdrServerCall2,
- 0
- };
-static const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable =
- {
- 5,
- (RPC_DISPATCH_FUNCTION*)RpcInterface_table
- };
-
-static const SERVER_ROUTINE RpcInterface_ServerRoutineTable[] =
- {
- (SERVER_ROUTINE)RemoteOpen,
- (SERVER_ROUTINE)RemoteClose,
- (SERVER_ROUTINE)StartMetering,
- (SERVER_ROUTINE)SetSamplePeriod,
- (SERVER_ROUTINE)StopMetering,
- };
-
-static const MIDL_SERVER_INFO RpcInterface_ServerInfo =
- {
- &RpcInterface_StubDesc,
- RpcInterface_ServerRoutineTable,
- RpcInterface__MIDL_ProcFormatString.Format,
- RpcInterface_FormatStringOffsetTable,
- 0,
- 0,
- 0,
- 0};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.cpp
deleted file mode 100644
index 0cad3578..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "stdafx.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <iostream>
-#include "RpcInterface_h.h"
-#include <windows.h>
-
-#include <sddl.h>
-#include <securitybaseapi.h>
-#include <AclAPI.h>
-#include "RpcServer.h"
-
-using namespace RpcServer;
-
-#define DEFAULT_METERING_PERIOD 100
-
-bool ShutdownRequested;
-static RPC_BINDING_VECTOR* BindingVector = nullptr;
-
-void FreeSidArray(__inout_ecount(cSIDs) PSID* pSIDs, ULONG cSIDs)
-{
- if (pSIDs != nullptr)
- {
- for (ULONG i = 0; i < cSIDs; i++)
- {
- LocalFree(pSIDs[i]);
-
- pSIDs[i] = nullptr;
- }
-
- LocalFree(pSIDs);
-
- pSIDs = nullptr;
- cSIDs = 0;
- }
-}
-
-//
-// Routine to create RPC server and listen to incoming RPC calls
-//
-DWORD RpcServerStart()
-{
- DWORD hResult = S_OK;
- WCHAR* protocolSequence = L"ncalrpc";
- unsigned int minCalls = 1;
- unsigned int dontWait = false;
- ShutdownRequested = false;
-
- SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY;
- PSID everyoneSid = nullptr;
- PSID* capabilitySids = nullptr;
- DWORD capabilitySidCount = 0;
- PSID* capabilityGroupSids = nullptr;
- DWORD capabilityGroupSidCount = 0;
- EXPLICIT_ACCESS ea[2] = {};
- PACL acl = nullptr;
- SECURITY_DESCRIPTOR rpcSecurityDescriptor = {};
-
- // When creating the RPC endpoint we want it to allow connections from any UWA that contains
- // the custom capability SID in its process token. When a UWA declares the custom capability
- // in its app manifest, it will later contain the SID form of that custom capability in its
- // process token at runtime. By default, RPC endpoints don't allow UWAs (AppContainer processes)
- // to connect to them, so we need to set the security on the endpoint to allow access to UWAs with the
- // custom capability.
- //
- // To do this we'll perform the following steps:
- // 1) Convert the custom capability name to a SID
- // 2) Create a security descriptor using that SID, as well as other needed SIDs. This sample shows how to allow
- // all 'non UWAs' access as well as UWAs containing the custom capability SID.
- // 3) Create the RPC endpoint using that security descriptor
- //
- // To create the security descriptor we're roughly following this MSDN sample:
- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa446595(v=vs.85).aspx
-
- // Get the SID form of the custom capability. In this case we only expect one SID and
- // we don't care about the capability group.
- //INSERT DERIVE CAPABILTY SIDS FROM NAME HERE
-
- // Get the SID that represents 'everyone' (this doesn't include AppContainers)
- if (!AllocateAndInitializeSid(
- &SIDAuthWorld, 1,
- SECURITY_WORLD_RID,
- 0, 0, 0, 0, 0, 0, 0,
- &everyoneSid))
- {
- hResult = GetLastError();
- goto end;
- }
-
- // Now create the Access Control List (ACL) for the Security descriptor
-
- // Everyone GENERIC_ALL access
- ea[0].grfAccessMode = SET_ACCESS;
- ea[0].grfAccessPermissions = GENERIC_ALL;
- ea[0].grfInheritance = NO_INHERITANCE;
- ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID;
- ea[0].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
- ea[0].Trustee.ptstrName = static_cast<LPWSTR>(everyoneSid);
-
- // Custom capability GENERIC_ALL access
- ea[1].grfAccessMode = SET_ACCESS;
- ea[1].grfAccessPermissions = GENERIC_ALL;
- ea[1].grfInheritance = NO_INHERITANCE;
- ea[1].Trustee.TrusteeForm = TRUSTEE_IS_SID;
- ea[1].Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
- ea[1].Trustee.ptstrName = static_cast<LPWSTR>(everyoneSid);
-
- hResult = SetEntriesInAcl(ARRAYSIZE(ea), ea, nullptr, &acl);
-
- if (hResult != ERROR_SUCCESS)
- {
- goto end;
- }
-
- // Initialize an empty security descriptor
- if (!InitializeSecurityDescriptor(&rpcSecurityDescriptor, SECURITY_DESCRIPTOR_REVISION))
- {
- hResult = GetLastError();
- goto end;
- }
-
- // Assign the ACL to the security descriptor
- if (!SetSecurityDescriptorDacl(&rpcSecurityDescriptor, TRUE, acl, FALSE))
- {
- hResult = GetLastError();
- goto end;
- }
-
- //
- // Bind to LRPC using dynamic endpoints
- //
- hResult = RpcServerUseProtseqEp(
- reinterpret_cast<RPC_WSTR>(protocolSequence),
- RPC_C_PROTSEQ_MAX_REQS_DEFAULT,
- reinterpret_cast<RPC_WSTR>(RPC_STATIC_ENDPOINT),
- &rpcSecurityDescriptor);
-
- if (hResult != S_OK)
- {
- goto end;
- }
-
- hResult = RpcServerRegisterIf3(
- RpcInterface_v1_0_s_ifspec,
- nullptr,
- nullptr,
- RPC_IF_AUTOLISTEN | RPC_IF_ALLOW_LOCAL_ONLY,
- RPC_C_LISTEN_MAX_CALLS_DEFAULT,
- 0,
- nullptr,
- &rpcSecurityDescriptor);
-
- if (hResult != S_OK)
- {
- goto end;
- }
-
- hResult = RpcServerInqBindings(&BindingVector);
-
- if (hResult != S_OK)
- {
- goto end;
- }
-
- hResult = RpcEpRegister(
- RpcInterface_v1_0_s_ifspec,
- BindingVector,
- nullptr,
- nullptr);
-
- if (hResult != S_OK)
- {
- goto end;
- }
-
- hResult = RpcServerListen(
- minCalls,
- RPC_C_LISTEN_MAX_CALLS_DEFAULT,
- dontWait);
-
- if (hResult == RPC_S_ALREADY_LISTENING)
- {
- hResult = RPC_S_OK;
- }
-
-end:
-
- // Cleanup sids
- FreeSidArray(capabilityGroupSids, capabilityGroupSidCount);
- FreeSidArray(capabilitySids, capabilitySidCount);
-
- if (everyoneSid != nullptr)
- {
- FreeSid(everyoneSid);
- }
-
- // cleanup acl
- if (acl != nullptr)
- {
- LocalFree(acl);
- }
-
- return hResult;
-}
-
-//
-// Notify rpc server to stop listening to incoming rpc calls
-//
-void RpcServerDisconnect()
-{
- DWORD hResult = S_OK;
- ShutdownRequested = true;
- hResult = RpcServerUnregisterIf(RpcInterface_v1_0_s_ifspec, nullptr, 0);
-
- RpcEpUnregister(RpcInterface_v1_0_s_ifspec, BindingVector, nullptr);
-
- if (BindingVector != nullptr)
- {
- RpcBindingVectorFree(&BindingVector);
- BindingVector = nullptr;
- }
-}
-
-//
-// Rpc method to retrieve client context handle
-//
-void RemoteOpen(
- _In_ handle_t hBinding,
- _Out_ PPCONTEXT_HANDLE_TYPE pphContext)
-{
- *pphContext = static_cast<PCONTEXT_HANDLE_TYPE *>(midl_user_allocate(sizeof(METERING_CONTEXT)));
- METERING_CONTEXT* meteringContext = static_cast<METERING_CONTEXT *>(*pphContext);
- meteringContext->metering = new Metering(DEFAULT_METERING_PERIOD);
-}
-
-//
-// Rpc method to close the client context handle
-//
-void RemoteClose(_Inout_ PPCONTEXT_HANDLE_TYPE pphContext)
-{
- if (*pphContext == nullptr)
- {
- //Log error, client tried to close a NULL handle.
- return;
- }
-
- METERING_CONTEXT* meteringContext = static_cast<METERING_CONTEXT *>(*pphContext);
- delete meteringContext->metering;
- MIDL_user_free(meteringContext);
-
- // This tells the run-time, when it is marshalling the out
- // parameters, that the context handle has been closed normally.
- *pphContext = nullptr;
-}
-
-//
-// Routine to cleanup client context when client has died with active
-// connection with server
-//
-void __RPC_USER PCONTEXT_HANDLE_TYPE_rundown(
- _In_ PCONTEXT_HANDLE_TYPE phContext)
-{
- StopMetering(phContext);
- RemoteClose(&phContext);
-}
-
-#pragma region METERING_RPCROUTINES
-
-void StartMetering(
- _In_ PCONTEXT_HANDLE_TYPE phContext,
- _In_ __int64 period,
- _In_ __int64 context)
-{
- std::cout << "start metering" << std::endl;
- METERING_CONTEXT* meteringContext = static_cast<METERING_CONTEXT *>(phContext);
- meteringContext->metering->StartMetering(period, context);
- std::cout << "done metering" << std::endl;
-}
-
-void SetSamplePeriod(
- _In_ PCONTEXT_HANDLE_TYPE phContext,
- _In_ __int64 period)
-{
- METERING_CONTEXT* meteringContext = static_cast<METERING_CONTEXT *>(phContext);
- meteringContext->metering->SetSamplePeriod(period);
-}
-
-
-void StopMetering(_In_ PCONTEXT_HANDLE_TYPE phContext)
-{
- METERING_CONTEXT* meteringContext = static_cast<METERING_CONTEXT *>(phContext);
- meteringContext->metering->StopMetering();
-}
-
-#pragma endregion METERING_RPCROUTINES
-
-/******************************************************/
-/* MIDL allocate and free */
-/******************************************************/
-
-void __RPC_FAR * __RPC_USER midl_user_allocate(_In_ size_t len)
-{
- return(malloc(len));
-}
-
-void __RPC_USER midl_user_free(_In_ void __RPC_FAR* ptr)
-{
- free(ptr);
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.h
deleted file mode 100644
index bc7294db..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "metering.h"
-
-#define RPC_STATIC_ENDPOINT L"HsaSampleRpcEndpoint"
-
-// Client context used for making rpc calls using context handle
-// https://msdn.microsoft.com/en-us/library/windows/desktop/aa378674(v=vs.85).aspx
-typedef struct
-{
- RpcServer::Metering* metering;
-} METERING_CONTEXT;
-
-// Create a rpc server endpoint and listen to incoming rpc calls
-DWORD RpcServerStart();
-
-// Signal the rpc server to stop listening to incoming rpc calls
-void RpcServerDisconnect();
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj
deleted file mode 100644
index b5c043dc..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj
+++ /dev/null
@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|ARM">
- <Configuration>Debug</Configuration>
- <Platform>ARM</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|ARM">
- <Configuration>Release</Configuration>
- <Platform>ARM</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{ADFC4322-5F0E-5BFD-83DA-19B35EFD513B}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>RpcServer</RootNamespace>
- <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="Shared">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(OutDir)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);kernel32.lib;user32.lib;shell32.lib;gdi32.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(OutDir)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);kernel32.lib;user32.lib;shell32.lib;gdi32.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(OutDir)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);kernel32.lib;user32.lib;shell32.lib;gdi32.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(OutDir)</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies);ucrt.lib;rpcrt4.lib;libcmt.lib;libvcruntime.lib</AdditionalDependencies>
- <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);kernel32.lib;user32.lib;shell32.lib;gdi32.lib</IgnoreSpecificDefaultLibraries>
- <AdditionalOptions>/VERBOSE %(AdditionalOptions)</AdditionalOptions>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(OutDir)</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies);ucrt.lib;rpcrt4.lib;libcmt.lib;libvcruntime.lib</AdditionalDependencies>
- <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);kernel32.lib;user32.lib;shell32.lib;gdi32.lib</IgnoreSpecificDefaultLibraries>
- <AdditionalOptions>/VERBOSE %(AdditionalOptions)</AdditionalOptions>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(OutDir)</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies);ucrt.lib;rpcrt4.lib;libcmt.lib;libvcruntime.lib</AdditionalDependencies>
- <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);kernel32.lib;user32.lib;shell32.lib;gdi32.lib</IgnoreSpecificDefaultLibraries>
- <AdditionalOptions>/VERBOSE %(AdditionalOptions)</AdditionalOptions>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="Metering.h" />
- <ClInclude Include="RpcServer.h" />
- <ClInclude Include="SampleService.h" />
- <ClInclude Include="ServiceBase.h" />
- <ClInclude Include="ServiceInstaller.h" />
- <ClInclude Include="stdafx.h" />
- <ClInclude Include="targetver.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="RpcInterface_s.c">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="HsaService.cpp" />
- <ClCompile Include="Metering.cpp" />
- <ClCompile Include="RpcServer.cpp" />
- <ClCompile Include="SampleService.cpp" />
- <ClCompile Include="ServiceBase.cpp" />
- <ClCompile Include="ServiceInstaller.cpp" />
- <ClCompile Include="stdafx.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="RpcInterface.acf" />
- </ItemGroup>
- <ItemGroup>
- <Midl Include="RpcInterface.Idl" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj.filters b/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj.filters
deleted file mode 100644
index 9644ad4e..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/RpcServer.vcxproj.filters
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="stdafx.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="targetver.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="Metering.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="RpcServer.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="SampleService.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="ServiceBase.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="ServiceInstaller.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="stdafx.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="HsaService.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="Metering.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="RpcServer.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="SampleService.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="ServiceBase.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="ServiceInstaller.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="RpcInterface_s.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="RpcInterface.acf">
- <Filter>Source Files</Filter>
- </None>
- </ItemGroup>
- <ItemGroup>
- <Midl Include="RpcInterface.Idl">
- <Filter>Source Files</Filter>
- </Midl>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.cpp
deleted file mode 100644
index 793a7009..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "stdafx.h"
-
-#pragma region Includes
-#include "SampleService.h"
-#include "RpcServer.h"
-#include <Evntrace.h>
-#pragma endregion
-
-CSampleService::CSampleService(
- PWSTR pszServiceName,
- BOOL fCanStop,
- BOOL fCanShutdown,
- BOOL fCanPauseContinue)
- : CServiceBase(pszServiceName, fCanStop, fCanShutdown, fCanPauseContinue)
-{
-}
-
-void CSampleService::WriteEventLogEntry(PWSTR pszMessage, BYTE bLevel)
-{
- if (IsConsoleRun())
- {
- wprintf(L"%d: %ls\n", bLevel, pszMessage);
- }
- __super::WriteEventLogEntry(pszMessage, bLevel);
-}
-
-CSampleService::~CSampleService(void)
-{
-}
-
-//
-// This is the thread pool work callback function.
-//
-VOID CALLBACK ServiceWorkerThread(
- _In_ PTP_CALLBACK_INSTANCE /*Instance*/,
- _In_ PVOID Parameter,
- _In_ PTP_WORK /*Work*/)
-{
- //
- // Do something when the work callback is invoked.
- //
- {
- _int64 status = RpcServerStart();
- if (status)
- {
- CSampleService* sampleService = static_cast<CSampleService *>(Parameter);
- sampleService->Stop();
- }
- }
-
- return;
-}
-
-//
-// FUNCTION: CSampleService::OnStart(DWORD, LPWSTR *)
-//
-// PURPOSE: The function is executed when a Start command is sent to the
-// service by the SCM or when the operating system starts (for a service
-// that starts automatically). It specifies actions to take when the
-// service starts. In this code sample, OnStart logs a service-start
-// message to the Application log, and queues the main service function for
-// execution in a thread pool worker thread.
-//
-// PARAMETERS:
-// * dwArgc - number of command line arguments
-// * lpszArgv - array of command line arguments
-//
-// NOTE: A service application is designed to be long running. Therefore,
-// it usually polls or monitors something in the system. The monitoring is
-// set up in the OnStart method. However, OnStart does not actually do the
-// monitoring. The OnStart method must return to the operating system after
-// the service's operation has begun. It must not loop forever or block. To
-// set up a simple monitoring mechanism, one general solution is to create
-// a timer in OnStart. The timer would then raise events in your code
-// periodically, at which time your service could do its monitoring. The
-// other solution is to spawn a new thread to perform the main service
-// functions, which is demonstrated in this code sample.
-//
-void CSampleService::OnStart(
- _In_ DWORD dwArgc,
- _In_ LPWSTR *lpszArgv)
-{
- // Log a service start message to the Application log.
- WriteEventLogEntry(L"CppWindowsService in OnStart", TRACE_LEVEL_INFORMATION);
-
- // Queue the main service function for execution in a worker thread.
- PTP_WORK_CALLBACK workcallback = ServiceWorkerThread;
- m_work = CreateThreadpoolWork(workcallback, this, nullptr);
-
- if (NULL == m_work)
- {
- // TODO: Capture get last error
- WriteEventLogEntry(L"CreateThreadpoolWork failed", TRACE_LEVEL_ERROR);
- }
-
- //
- // Submit the work to the pool. Because this was a pre-allocated
- // work item (using CreateThreadpoolWork), it is guaranteed to execute.
- //
- SubmitThreadpoolWork(m_work);
-}
-
-//
-// FUNCTION: CSampleService::ConsoleRun()
-//
-// PURPOSE: The function is executed to simulate OnStart in
-// console mode.
-//
-void CSampleService::ConsoleRun()
-{
- m_runningInConsole = true;
-
- WriteEventLogEntry(L"Starting Rpc Server..", TRACE_LEVEL_INFORMATION);
- long status = RpcServerStart();
-
- if (status)
- {
- printf_s("RpcServerConnect returned: 0x%x\n", status);
- WriteEventLogEntry(L"Starting Rpc Server..", TRACE_LEVEL_INFORMATION);
- exit(static_cast<int>(status));
- }
-}
-
-//
-// FUNCTION: CSampleService::OnStop()
-//
-// PURPOSE: The function is executed when a Stop command is sent to the
-// service by SCM. It specifies actions to take when a service stops
-// running. In this code sample, OnStop logs a service-stop message to the
-// Application log, and waits for the finish of the main service function.
-//
-// COMMENTS:
-// Be sure to periodically call ReportServiceStatus() with
-// SERVICE_STOP_PENDING if the procedure is going to take long time.
-//
-void CSampleService::OnStop()
-{
- // Log a service stop message to the Application log.
- WriteEventLogEntry(L"CppWindowsService in OnStop", TRACE_LEVEL_INFORMATION);
-
- // Instruct server to stop listening to remote procedure calls and
- // unregister rpc interface
- RpcServerDisconnect();
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.h
deleted file mode 100644
index 04621b3e..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/SampleService.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-// Provides a sample service class that derives from the service base class -
-// CServiceBase. The sample service logs the service start and stop
-// information to the Application event log, and shows how to run the main
-// function of the service in a thread pool worker thread.
-
-#pragma once
-
-#include "ServiceBase.h"
-
-class CSampleService : public CServiceBase
-{
-public:
-
- CSampleService(PWSTR pszServiceName,
- BOOL fCanStop = TRUE,
- BOOL fCanShutdown = TRUE,
- BOOL fCanPauseContinue = FALSE);
- void ConsoleRun();
- bool IsConsoleRun()
- {
- return m_runningInConsole;
- }
- void WriteEventLogEntry(PWSTR pszMessage, BYTE bLevel) override;
- virtual ~CSampleService(void);
-
-protected:
-
- virtual void OnStart(DWORD dwArgc, PWSTR *pszArgv) override;
- virtual void OnStop() override;
-
-
-private:
- PTP_WORK m_work = nullptr;
- bool m_runningInConsole = false;
-}; \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.cpp
deleted file mode 100644
index 117d740c..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.cpp
+++ /dev/null
@@ -1,566 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "stdafx.h"
-#pragma region Includes
-
-#include "ServiceBase.h"
-#include <assert.h>
-#include <strsafe.h>
-#include <evntprov.h>
-#include <Evntrace.h>
-#pragma endregion
-
-//
-// HSA Service trace event provider
-// {BE2E880E-F79F-4C30-9C95-09F003A0A7EA}
-//
-EXTERN_C __declspec(selectany) const GUID HSA_SERVICE_PROVIDER_GUID = { 0xbe2e880e, 0xf79f, 0x4c30,{ 0x9c, 0x95, 0x9, 0xf0, 0x3, 0xa0, 0xa7, 0xea } };
-
-#pragma region Static Members
-
-// Initialize the singleton service instance.
-CServiceBase *CServiceBase::s_service = nullptr;
-
-
-//
-// FUNCTION: CServiceBase::Run(CServiceBase &)
-//
-// PURPOSE: Register the executable for a service with the Service Control
-// Manager (SCM). After you call Run(ServiceBase), the SCM issues a Start
-// command, which results in a call to the OnStart method in the service.
-// This method blocks until the service has stopped.
-//
-// PARAMETERS:
-// * service - the reference to a CServiceBase object. It will become the
-// singleton service instance of this service application.
-//
-// RETURN VALUE: If the function succeeds, the return value is TRUE. If the
-// function fails, the return value is FALSE. To get extended error
-// information, call GetLastError.
-//
-BOOL CServiceBase::Run(CServiceBase &service)
-{
- s_service = &service;
-
- SERVICE_TABLE_ENTRY serviceTable[] =
- {
- { service.m_name, ServiceMain },
- { nullptr, nullptr }
- };
-
- // Connects the main thread of a service process to the service control
- // manager, which causes the thread to be the service control dispatcher
- // thread for the calling process. This call returns when the service has
- // stopped. The process should simply terminate when the call returns.
- return StartServiceCtrlDispatcher(serviceTable);
-}
-
-
-//
-// FUNCTION: CServiceBase::ServiceMain(DWORD, PWSTR *)
-//
-// PURPOSE: Entry point for the service. It registers the handler function
-// for the service and starts the service.
-//
-// PARAMETERS:
-// * dwArgc - number of command line arguments
-// * lpszArgv - array of command line arguments
-//
-void WINAPI CServiceBase::ServiceMain(DWORD dwArgc, PWSTR *pszArgv)
-{
- assert(s_service != NULL);
-
- // Register the handler function for the service
- s_service->m_statusHandle = RegisterServiceCtrlHandler(
- s_service->m_name, ServiceCtrlHandler);
-
- if (s_service->m_statusHandle == NULL)
- {
- throw GetLastError();
- }
-
- // Start the service.
- s_service->Start(dwArgc, pszArgv);
-}
-
-
-//
-// FUNCTION: CServiceBase::ServiceCtrlHandler(DWORD)
-//
-// PURPOSE: The function is called by the SCM whenever a control code is
-// sent to the service.
-//
-// PARAMETERS:
-// * dwCtrlCode - the control code. This parameter can be one of the
-// following values:
-//
-// SERVICE_CONTROL_CONTINUE
-// SERVICE_CONTROL_INTERROGATE
-// SERVICE_CONTROL_NETBINDADD
-// SERVICE_CONTROL_NETBINDDISABLE
-// SERVICE_CONTROL_NETBINDREMOVE
-// SERVICE_CONTROL_PARAMCHANGE
-// SERVICE_CONTROL_PAUSE
-// SERVICE_CONTROL_SHUTDOWN
-// SERVICE_CONTROL_STOP
-//
-// This parameter can also be a user-defined control code ranges from 128
-// to 255.
-//
-void WINAPI CServiceBase::ServiceCtrlHandler(DWORD dwCtrl)
-{
- switch (dwCtrl)
- {
- case SERVICE_CONTROL_STOP: s_service->Stop(); break;
- case SERVICE_CONTROL_PAUSE: s_service->Pause(); break;
- case SERVICE_CONTROL_CONTINUE: s_service->Continue(); break;
- case SERVICE_CONTROL_SHUTDOWN: s_service->Shutdown(); break;
- case SERVICE_CONTROL_INTERROGATE: break;
- default: break;
- }
-}
-
-#pragma endregion
-
-
-#pragma region Service Constructor and Destructor
-
-//
-// FUNCTION: CServiceBase::CServiceBase(PWSTR, BOOL, BOOL, BOOL)
-//
-// PURPOSE: The constructor of CServiceBase. It initializes a new instance
-// of the CServiceBase class. The optional parameters (fCanStop,
-/// fCanShutdown and fCanPauseContinue) allow you to specify whether the
-// service can be stopped, paused and continued, or be notified when system
-// shutdown occurs.
-//
-// PARAMETERS:
-// * pszServiceName - the name of the service
-// * fCanStop - the service can be stopped
-// * fCanShutdown - the service is notified when system shutdown occurs
-// * fCanPauseContinue - the service can be paused and continued
-//
-CServiceBase::CServiceBase(
- PWSTR pszServiceName,
- BOOL fCanStop,
- BOOL fCanShutdown,
- BOOL fCanPauseContinue)
-{
- // Service name must be a valid string and cannot be NULL.
- m_name = (pszServiceName == nullptr) ? L"" : pszServiceName;
-
- m_statusHandle = nullptr;
-
- // The service runs in its own process.
- m_status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
-
- // The service is starting.
- m_status.dwCurrentState = SERVICE_START_PENDING;
-
- // The accepted commands of the service.
- DWORD dwControlsAccepted = 0;
- if (fCanStop)
- dwControlsAccepted |= SERVICE_ACCEPT_STOP;
- if (fCanShutdown)
- dwControlsAccepted |= SERVICE_ACCEPT_SHUTDOWN;
- if (fCanPauseContinue)
- dwControlsAccepted |= SERVICE_ACCEPT_PAUSE_CONTINUE;
- m_status.dwControlsAccepted = dwControlsAccepted;
-
- m_status.dwWin32ExitCode = NO_ERROR;
- m_status.dwServiceSpecificExitCode = 0;
- m_status.dwCheckPoint = 0;
- m_status.dwWaitHint = 0;
-
- NTSTATUS status = EventRegister(&HSA_SERVICE_PROVIDER_GUID,
- nullptr,
- nullptr,
- &m_etwRegHandle);
- if (ERROR_SUCCESS != status)
- {
- wprintf(L"Provider not registered. EventRegister failed with %d\n", status);
- }
-}
-
-
-//
-// FUNCTION: CServiceBase::~CServiceBase()
-//
-// PURPOSE: The virtual destructor of CServiceBase.
-//
-CServiceBase::~CServiceBase(void)
-{
- if (m_etwRegHandle != NULL)
- {
- EventUnregister(m_etwRegHandle);
- }
-}
-
-#pragma endregion
-
-
-#pragma region Service Start, Stop, Pause, Continue, and Shutdown
-
-//
-// FUNCTION: CServiceBase::Start(DWORD, PWSTR *)
-//
-// PURPOSE: The function starts the service. It calls the OnStart virtual
-// function in which you can specify the actions to take when the service
-// starts. If an error occurs during the startup, the error will be logged
-// in the Application event log, and the service will be stopped.
-//
-// PARAMETERS:
-// * dwArgc - number of command line arguments
-// * lpszArgv - array of command line arguments
-//
-void CServiceBase::Start(DWORD dwArgc, PWSTR *pszArgv)
-{
- WriteEventLogEntry(L"Service trying to start.", TRACE_LEVEL_ERROR);
- try
- {
- // Tell SCM that the service is starting.
- SetServiceStatus(SERVICE_START_PENDING);
-
- // Perform service-specific initialization.
- OnStart(dwArgc, pszArgv);
-
- // Tell SCM that the service is started.
- SetServiceStatus(SERVICE_RUNNING);
- }
- catch (DWORD dwError)
- {
- // Log the error.
- WriteErrorLogEntry(L"Service Start", dwError);
-
- // Set the service status to be stopped.
- SetServiceStatus(SERVICE_STOPPED, dwError);
- }
- catch (...)
- {
- // Log the error.
- WriteEventLogEntry(L"Service failed to start.", TRACE_LEVEL_ERROR);
-
- // Set the service status to be stopped.
- SetServiceStatus(SERVICE_STOPPED);
- }
-}
-
-
-//
-// FUNCTION: CServiceBase::OnStart(DWORD, PWSTR *)
-//
-// PURPOSE: When implemented in a derived class, executes when a Start
-// command is sent to the service by the SCM or when the operating system
-// starts (for a service that starts automatically). Specifies actions to
-// take when the service starts. Be sure to periodically call
-// CServiceBase::SetServiceStatus() with SERVICE_START_PENDING if the
-// procedure is going to take long time. You may also consider spawning a
-// new thread in OnStart to perform time-consuming initialization tasks.
-//
-// PARAMETERS:
-// * dwArgc - number of command line arguments
-// * lpszArgv - array of command line arguments
-//
-void CServiceBase::OnStart(DWORD dwArgc, PWSTR *pszArgv)
-{
-}
-
-
-//
-// FUNCTION: CServiceBase::Stop()
-//
-// PURPOSE: The function stops the service. It calls the OnStop virtual
-// function in which you can specify the actions to take when the service
-// stops. If an error occurs, the error will be logged in the Application
-// event log, and the service will be restored to the original state.
-//
-void CServiceBase::Stop()
-{
- DWORD dwOriginalState = m_status.dwCurrentState;
- try
- {
- // Tell SCM that the service is stopping.
- SetServiceStatus(SERVICE_STOP_PENDING);
-
- // Perform service-specific stop operations.
- OnStop();
-
- // Tell SCM that the service is stopped.
- SetServiceStatus(SERVICE_STOPPED);
- }
- catch (DWORD dwError)
- {
- // Log the error.
- WriteErrorLogEntry(L"Service Stop", dwError);
-
- // Set the orginal service status.
- SetServiceStatus(dwOriginalState);
- }
- catch (...)
- {
- // Log the error.
- WriteEventLogEntry(L"Service failed to stop.", TRACE_LEVEL_ERROR);
-
- // Set the orginal service status.
- SetServiceStatus(dwOriginalState);
- }
-}
-
-
-//
-// FUNCTION: CServiceBase::OnStop()
-//
-// PURPOSE: When implemented in a derived class, executes when a Stop
-// command is sent to the service by the SCM. Specifies actions to take
-// when a service stops running. Be sure to periodically call
-// CServiceBase::SetServiceStatus() with SERVICE_STOP_PENDING if the
-// procedure is going to take long time.
-//
-void CServiceBase::OnStop()
-{
-}
-
-
-//
-// FUNCTION: CServiceBase::Pause()
-//
-// PURPOSE: The function pauses the service if the service supports pause
-// and continue. It calls the OnPause virtual function in which you can
-// specify the actions to take when the service pauses. If an error occurs,
-// the error will be logged in the Application event log, and the service
-// will become running.
-//
-void CServiceBase::Pause()
-{
- try
- {
- // Tell SCM that the service is pausing.
- SetServiceStatus(SERVICE_PAUSE_PENDING);
-
- // Perform service-specific pause operations.
- OnPause();
-
- // Tell SCM that the service is paused.
- SetServiceStatus(SERVICE_PAUSED);
- }
- catch (DWORD dwError)
- {
- // Log the error.
- WriteErrorLogEntry(L"Service Pause", dwError);
-
- // Tell SCM that the service is still running.
- SetServiceStatus(SERVICE_RUNNING);
- }
- catch (...)
- {
- // Log the error.
- WriteEventLogEntry(L"Service failed to pause.", TRACE_LEVEL_ERROR);
-
- // Tell SCM that the service is still running.
- SetServiceStatus(SERVICE_RUNNING);
- }
-}
-
-
-//
-// FUNCTION: CServiceBase::OnPause()
-//
-// PURPOSE: When implemented in a derived class, executes when a Pause
-// command is sent to the service by the SCM. Specifies actions to take
-// when a service pauses.
-//
-void CServiceBase::OnPause()
-{
-}
-
-
-//
-// FUNCTION: CServiceBase::Continue()
-//
-// PURPOSE: The function resumes normal functioning after being paused if
-// the service supports pause and continue. It calls the OnContinue virtual
-// function in which you can specify the actions to take when the service
-// continues. If an error occurs, the error will be logged in the
-// Application event log, and the service will still be paused.
-//
-void CServiceBase::Continue()
-{
- try
- {
- // Tell SCM that the service is resuming.
- SetServiceStatus(SERVICE_CONTINUE_PENDING);
-
- // Perform service-specific continue operations.
- OnContinue();
-
- // Tell SCM that the service is running.
- SetServiceStatus(SERVICE_RUNNING);
- }
- catch (DWORD dwError)
- {
- // Log the error.
- WriteErrorLogEntry(L"Service Continue", dwError);
-
- // Tell SCM that the service is still paused.
- SetServiceStatus(SERVICE_PAUSED);
- }
- catch (...)
- {
- // Log the error.
- WriteEventLogEntry(L"Service failed to resume.", TRACE_LEVEL_ERROR);
-
- // Tell SCM that the service is still paused.
- SetServiceStatus(SERVICE_PAUSED);
- }
-}
-
-
-//
-// FUNCTION: CServiceBase::OnContinue()
-//
-// PURPOSE: When implemented in a derived class, OnContinue runs when a
-// Continue command is sent to the service by the SCM. Specifies actions to
-// take when a service resumes normal functioning after being paused.
-//
-void CServiceBase::OnContinue()
-{
-}
-
-
-//
-// FUNCTION: CServiceBase::Shutdown()
-//
-// PURPOSE: The function executes when the system is shutting down. It
-// calls the OnShutdown virtual function in which you can specify what
-// should occur immediately prior to the system shutting down. If an error
-// occurs, the error will be logged in the Application event log.
-//
-void CServiceBase::Shutdown()
-{
- try
- {
- // Perform service-specific shutdown operations.
- OnShutdown();
-
- // Tell SCM that the service is stopped.
- SetServiceStatus(SERVICE_STOPPED);
- }
- catch (DWORD dwError)
- {
- // Log the error.
- WriteErrorLogEntry(L"Service Shutdown", dwError);
- }
- catch (...)
- {
- // Log the error.
- WriteEventLogEntry(L"Service failed to shut down.", TRACE_LEVEL_ERROR);
- }
-}
-
-
-//
-// FUNCTION: CServiceBase::OnShutdown()
-//
-// PURPOSE: When implemented in a derived class, executes when the system
-// is shutting down. Specifies what should occur immediately prior to the
-// system shutting down.
-//
-void CServiceBase::OnShutdown()
-{
-}
-
-#pragma endregion
-
-
-#pragma region Helper Functions
-
-//
-// FUNCTION: CServiceBase::SetServiceStatus(DWORD, DWORD, DWORD)
-//
-// PURPOSE: The function sets the service status and reports the status to
-// the SCM.
-//
-// PARAMETERS:
-// * dwCurrentState - the state of the service
-// * dwWin32ExitCode - error code to report
-// * dwWaitHint - estimated time for pending operation, in milliseconds
-//
-void CServiceBase::SetServiceStatus(
- _In_ DWORD dwCurrentState,
- _In_ DWORD dwWin32ExitCode,
- _In_ DWORD dwWaitHint)
-{
- static DWORD dwCheckPoint = 1;
-
- // Fill in the SERVICE_STATUS structure of the service.
-
- m_status.dwCurrentState = dwCurrentState;
- m_status.dwWin32ExitCode = dwWin32ExitCode;
- m_status.dwWaitHint = dwWaitHint;
-
- m_status.dwCheckPoint =
- ((dwCurrentState == SERVICE_RUNNING) ||
- (dwCurrentState == SERVICE_STOPPED)) ?
- 0 : dwCheckPoint++;
-
- // Report the status of the service to the SCM.
- ::SetServiceStatus(m_statusHandle, &m_status);
-}
-
-
-//
-// FUNCTION: CServiceBase::WriteEventLogEntry(PWSTR, WORD)
-//
-// PURPOSE: Log an event.
-//
-// PARAMETERS:
-// * pszMessage - string message to be logged.
-// * wType - the type of event to be logged. The parameter can be one of
-// the following values.
-//
-// EVENTLOG_SUCCESS
-// EVENTLOG_AUDIT_FAILURE
-// EVENTLOG_AUDIT_SUCCESS
-// EVENTLOG_ERROR_TYPE
-// EVENTLOG_INFORMATION_TYPE
-// EVENTLOG_WARNING_TYPE
-//
-void CServiceBase::WriteEventLogEntry(
- _In_ PWSTR pszMessage,
- _In_ BYTE bLevel)
-{
- if (m_etwRegHandle != NULL)
- {
- EventWriteString(m_etwRegHandle, bLevel, 0, pszMessage);
- }
-}
-
-//
-// FUNCTION: CServiceBase::WriteErrorLogEntry(PWSTR, DWORD)
-//
-// PURPOSE: Log an event.
-//
-// PARAMETERS:
-// * pszFunction - the function that gives the error
-// * dwError - the error code
-//
-void CServiceBase::WriteErrorLogEntry(
- _In_ PWSTR pszFunction,
- _In_ DWORD dwError)
-{
- wchar_t szMessage[260];
- StringCchPrintf(szMessage, ARRAYSIZE(szMessage),
- L"%s failed w/err 0x%08lx", pszFunction, dwError);
- WriteEventLogEntry(szMessage, TRACE_LEVEL_ERROR);
-}
-
-#pragma endregion \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.h
deleted file mode 100644
index ebae808e..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceBase.h
+++ /dev/null
@@ -1,121 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-// Provides a base class for a service that will exist as part of a service
-// application. CServiceBase must be derived from when creating a new service
-// class.
-
-#pragma once
-
-#include <windows.h>
-#include <evntprov.h>
-
-class CServiceBase
-{
-public:
-
- // Register the executable for a service with the Service Control Manager
- // (SCM). After you call Run(ServiceBase), the SCM issues a Start command,
- // which results in a call to the OnStart method in the service. This
- // method blocks until the service has stopped.
- static BOOL Run(CServiceBase& service);
-
- // Service object constructor. The optional parameters (fCanStop,
- // fCanShutdown and fCanPauseContinue) allow you to specify whether the
- // service can be stopped, paused and continued, or be notified when
- // system shutdown occurs.
- CServiceBase(PWSTR pszServiceName,
- BOOL fCanStop = TRUE,
- BOOL fCanShutdown = TRUE,
- BOOL fCanPauseContinue = FALSE);
-
- // Service object destructor.
- virtual ~CServiceBase(void);
-
- // Stop the service.
- void Stop();
-
-protected:
-
- // When implemented in a derived class, executes when a Start command is
- // sent to the service by the SCM or when the operating system starts
- // (for a service that starts automatically). Specifies actions to take
- // when the service starts.
- virtual void OnStart(DWORD dwArgc, PWSTR *pszArgv);
-
- // When implemented in a derived class, executes when a Stop command is
- // sent to the service by the SCM. Specifies actions to take when a
- // service stops running.
- virtual void OnStop();
-
- // When implemented in a derived class, executes when a Pause command is
- // sent to the service by the SCM. Specifies actions to take when a
- // service pauses.
- virtual void OnPause();
-
- // When implemented in a derived class, OnContinue runs when a Continue
- // command is sent to the service by the SCM. Specifies actions to take
- // when a service resumes normal functioning after being paused.
- virtual void OnContinue();
-
- // When implemented in a derived class, executes when the system is
- // shutting down. Specifies what should occur immediately prior to the
- // system shutting down.
- virtual void OnShutdown();
-
- // Set the service status and report the status to the SCM.
- void SetServiceStatus(DWORD dwCurrentState,
- DWORD dwWin32ExitCode = NO_ERROR,
- DWORD dwWaitHint = 0);
-
- // Log an event.
- virtual void WriteEventLogEntry(PWSTR pszMessage, BYTE bLevel);
-
- // Log an event.
- void WriteErrorLogEntry(PWSTR pszFunction,
- DWORD dwError = GetLastError());
-
-private:
-
- // Entry point for the service. It registers the handler function for the
- // service and starts the service.
- static void WINAPI ServiceMain(DWORD dwArgc, LPWSTR *lpszArgv);
-
- // The function is called by the SCM whenever a control code is sent to
- // the service.
- static void WINAPI ServiceCtrlHandler(DWORD dwCtrl);
-
- // Start the service.
- void Start(DWORD dwArgc, PWSTR *pszArgv);
-
- // Pause the service.
- void Pause();
-
- // Resume the service after being paused.
- void Continue();
-
- // Execute when the system is shutting down.
- void Shutdown();
-
- // The singleton service instance.
- static CServiceBase *s_service;
-
- // The name of the service
- PWSTR m_name;
-
- // The status of the service
- SERVICE_STATUS m_status;
-
- // The service status handle
- SERVICE_STATUS_HANDLE m_statusHandle;
-
- REGHANDLE m_etwRegHandle;
-}; \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.cpp
deleted file mode 100644
index 27b107a9..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "stdafx.h"
-#pragma region "Includes"
-
-#include <stdio.h>
-#include <windows.h>
-#include "ServiceInstaller.h"
-#pragma endregion
-
-
-//
-// FUNCTION: InstallService
-//
-// PURPOSE: Install the current application as a service to the local
-// service control manager database.
-//
-// PARAMETERS:
-// * pszServiceName - the name of the service to be installed
-// * pszDisplayName - the display name of the service
-// * dwStartType - the service start option. This parameter can be one of
-// the following values: SERVICE_AUTO_START, SERVICE_BOOT_START,
-// SERVICE_DEMAND_START, SERVICE_DISABLED, SERVICE_SYSTEM_START.
-// * pszDependencies - a pointer to a double null-terminated array of null-
-// separated names of services or load ordering groups that the system
-// must start before this service.
-// * pszAccount - the name of the account under which the service runs.
-// * pszPassword - the password to the account name.
-//
-// NOTE: If the function fails to install the service, it prints the error
-// in the standard output stream for users to diagnose the problem.
-//
-void InstallService(
- _In_ PWSTR pszServiceName,
- _In_ PWSTR pszDisplayName,
- _In_ DWORD dwStartType,
- _In_ PWSTR pszDependencies,
- _In_ PWSTR pszAccount,
- _In_ PWSTR pszPassword)
-{
- wchar_t szPath[MAX_PATH];
- SC_HANDLE schSCManager = nullptr;
- SC_HANDLE schService = nullptr;
-
- if (GetModuleFileName(nullptr, szPath, ARRAYSIZE(szPath)) == 0)
- {
- wprintf(L"GetModuleFileName failed w/err 0x%08lx\n", GetLastError());
- goto Cleanup;
- }
-
- // Open the local default service control manager database
- schSCManager = OpenSCManager(nullptr, nullptr, SC_MANAGER_CONNECT |
- SC_MANAGER_CREATE_SERVICE);
- if (schSCManager == nullptr)
- {
- wprintf(L"OpenSCManager failed w/err 0x%08lx\n", GetLastError());
- goto Cleanup;
- }
-
- // Install the service into SCM by calling CreateService
- schService = CreateService(
- schSCManager, // SCManager database
- pszServiceName, // Name of service
- pszDisplayName, // Name to display
- SERVICE_QUERY_STATUS, // Desired access
- SERVICE_WIN32_OWN_PROCESS, // Service type
- dwStartType, // Service start type
- SERVICE_ERROR_NORMAL, // Error control type
- szPath, // Service's binary
- nullptr, // No load ordering group
- nullptr, // No tag identifier
- pszDependencies, // Dependencies
- pszAccount, // Service running account
- pszPassword // Password of the account
- );
-
- if (schService == nullptr)
- {
- wprintf(L"CreateService failed w/err 0x%08lx\n", GetLastError());
- goto Cleanup;
- }
-
- wprintf(L"%s is installed.\n", pszServiceName);
-
-Cleanup:
- // Centralized cleanup for all allocated resources.
- if (schSCManager)
- {
- CloseServiceHandle(schSCManager);
- schSCManager = nullptr;
- }
- if (schService)
- {
- CloseServiceHandle(schService);
- schService = nullptr;
- }
-}
-
-
-//
-// FUNCTION: UninstallService
-//
-// PURPOSE: Stop and remove the service from the local service control
-// manager database.
-//
-// PARAMETERS:
-// * pszServiceName - the name of the service to be removed.
-//
-// NOTE: If the function fails to uninstall the service, it prints the
-// error in the standard output stream for users to diagnose the problem.
-//
-void UninstallService(_In_ PWSTR pszServiceName)
-{
- SC_HANDLE schSCManager = nullptr;
- SC_HANDLE schService = nullptr;
- SERVICE_STATUS ssSvcStatus = {};
-
- // Open the local default service control manager database
- schSCManager = OpenSCManager(nullptr, nullptr, SC_MANAGER_CONNECT);
- if (schSCManager == nullptr)
- {
- wprintf(L"OpenSCManager failed w/err 0x%08lx\n", GetLastError());
- goto Cleanup;
- }
-
- // Open the service with delete, stop, and query status permissions
- schService = OpenService(schSCManager, pszServiceName, SERVICE_STOP |
- SERVICE_QUERY_STATUS | DELETE);
- if (schService == nullptr)
- {
- wprintf(L"OpenService failed w/err 0x%08lx\n", GetLastError());
- goto Cleanup;
- }
-
- // Try to stop the service
- if (ControlService(schService, SERVICE_CONTROL_STOP, &ssSvcStatus))
- {
- wprintf(L"Stopping %s.", pszServiceName);
- Sleep(1000);
-
- while (QueryServiceStatus(schService, &ssSvcStatus))
- {
- if (ssSvcStatus.dwCurrentState == SERVICE_STOP_PENDING)
- {
- wprintf(L".");
- Sleep(1000);
- }
- else break;
- }
-
- if (ssSvcStatus.dwCurrentState == SERVICE_STOPPED)
- {
- wprintf(L"\n%s is stopped.\n", pszServiceName);
- }
- else
- {
- wprintf(L"\n%s failed to stop.\n", pszServiceName);
- }
- }
-
- // Now remove the service by calling DeleteService.
- if (!DeleteService(schService))
- {
- wprintf(L"DeleteService failed w/err 0x%08lx\n", GetLastError());
- goto Cleanup;
- }
-
- wprintf(L"%s is removed.\n", pszServiceName);
-
-Cleanup:
- // Centralized cleanup for all allocated resources.
- if (schSCManager)
- {
- CloseServiceHandle(schSCManager);
- schSCManager = nullptr;
- }
- if (schService)
- {
- CloseServiceHandle(schService);
- schService = nullptr;
- }
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.h
deleted file mode 100644
index af6507e6..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/ServiceInstaller.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-// The file declares functions that install and uninstall the service.
-
-#pragma once
-
-//
-// FUNCTION: InstallService
-//
-// PURPOSE: Install the current application as a service to the local
-// service control manager database.
-//
-// PARAMETERS:
-// * pszServiceName - the name of the service to be installed
-// * pszDisplayName - the display name of the service
-// * dwStartType - the service start option. This parameter can be one of
-// the following values: SERVICE_AUTO_START, SERVICE_BOOT_START,
-// SERVICE_DEMAND_START, SERVICE_DISABLED, SERVICE_SYSTEM_START.
-// * pszDependencies - a pointer to a double null-terminated array of null-
-// separated names of services or load ordering groups that the system
-// must start before this service.
-// * pszAccount - the name of the account under which the service runs.
-// * pszPassword - the password to the account name.
-//
-// NOTE: If the function fails to install the service, it prints the error
-// in the standard output stream for users to diagnose the problem.
-//
-void InstallService(PWSTR pszServiceName,
- PWSTR pszDisplayName,
- DWORD dwStartType,
- PWSTR pszDependencies,
- PWSTR pszAccount,
- PWSTR pszPassword);
-
-
-//
-// FUNCTION: UninstallService
-//
-// PURPOSE: Stop and remove the service from the local service control
-// manager database.
-//
-// PARAMETERS:
-// * pszServiceName - the name of the service to be removed.
-//
-// NOTE: If the function fails to uninstall the service, it prints the
-// error in the standard output stream for users to diagnose the problem.
-//
-void UninstallService(PWSTR pszServiceName);
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.cpp b/general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.cpp
deleted file mode 100644
index ce19a949..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// stdafx.cpp : source file that includes just the standard includes
-// RpcServer.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.h
deleted file mode 100644
index 306c4330..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/stdafx.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#pragma once
-
-#include "targetver.h"
-
-#include <stdio.h>
-#include <tchar.h>
-
-#define NOMINMAX // disable min and max macros in windows.h
-
-extern bool ShutdownRequested;
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/Service/targetver.h b/general/WinHEC 2017 Lab/Toaster Driver/Service/targetver.h
deleted file mode 100644
index 87c0086d..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/Service/targetver.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-// Including SDKDDKVer.h defines the highest available Windows platform.
-
-// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
-// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
-
-#include <SDKDDKVer.h>
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster.sln b/general/WinHEC 2017 Lab/Toaster Driver/toaster.sln
deleted file mode 100644
index 35e5dcbc..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster.sln
+++ /dev/null
@@ -1,40 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.12
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toaster", "toaster\toaster.vcxproj", "{2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|ARM = Debug|ARM
- Debug|ARM64 = Debug|ARM64
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|ARM = Release|ARM
- Release|ARM64 = Release|ARM64
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|ARM.ActiveCfg = Debug|ARM
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|ARM.Build.0 = Debug|ARM
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|ARM64.Build.0 = Debug|ARM64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|x64.ActiveCfg = Debug|x64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|x64.Build.0 = Debug|x64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|x86.ActiveCfg = Debug|Win32
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Debug|x86.Build.0 = Debug|Win32
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|ARM.ActiveCfg = Release|ARM
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|ARM.Build.0 = Release|ARM
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|ARM64.ActiveCfg = Release|ARM64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|ARM64.Build.0 = Release|ARM64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|x64.ActiveCfg = Release|x64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|x64.Build.0 = Release|x64
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|x86.ActiveCfg = Release|Win32
- {2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/driver.h b/general/WinHEC 2017 Lab/Toaster Driver/toaster/driver.h
deleted file mode 100644
index 8e7ade01..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/driver.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*++
-Copyright (c) 1990-2000 Microsoft Corporation All Rights Reserved
-
-Module Name:
-
- driver.h
-
-Abstract:
-
- This module contains the common declarations for the
- bus, function and filter drivers.
-
-Environment:
-
- kernel mode only
-
---*/
-
-//#include "public.h"
-
-//
-// Define an Interface Guid to access the proprietary toaster interface.
-// This guid is used to identify a specific interface in IRP_MN_QUERY_INTERFACE
-// handler.
-//
-
-DEFINE_GUID(GUID_TOASTER_INTERFACE_STANDARD,
- 0xe0b27630, 0x5434, 0x11d3, 0xb8, 0x90, 0x0, 0xc0, 0x4f, 0xad, 0x51, 0x71);
-// {E0B27630-5434-11d3-B890-00C04FAD5171}
-
-
-//
-// GUID definition are required to be outside of header inclusion pragma to avoid
-// error during precompiled headers.
-//
-
-#ifndef __DRIVER_H
-#define __DRIVER_H
-
-//
-// Define Interface reference/dereference routines for
-// Interfaces exported by IRP_MN_QUERY_INTERFACE
-//
-
-typedef VOID (*PINTERFACE_REFERENCE)(PVOID Context);
-typedef VOID (*PINTERFACE_DEREFERENCE)(PVOID Context);
-
-typedef
-BOOLEAN
-(*PTOASTER_GET_CRISPINESS_LEVEL)(
- IN PVOID Context,
- OUT PUCHAR Level
- );
-
-typedef
-BOOLEAN
-(*PTOASTER_SET_CRISPINESS_LEVEL)(
- IN PVOID Context,
- OUT UCHAR Level
- );
-
-typedef
-BOOLEAN
-(*PTOASTER_IS_CHILD_PROTECTED)(
- IN PVOID Context
- );
-
-//
-// Interface for getting and setting power level etc.,
-//
-typedef struct _TOASTER_INTERFACE_STANDARD {
- INTERFACE InterfaceHeader;
- PTOASTER_GET_CRISPINESS_LEVEL GetCrispinessLevel;
- PTOASTER_SET_CRISPINESS_LEVEL SetCrispinessLevel;
- PTOASTER_IS_CHILD_PROTECTED IsSafetyLockEnabled; //):
-} TOASTER_INTERFACE_STANDARD, *PTOASTER_INTERFACE_STANDARD;
-
-
-#endif
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/public.h b/general/WinHEC 2017 Lab/Toaster Driver/toaster/public.h
deleted file mode 100644
index 0628f95f..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/public.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*++
-Copyright (c) 1990-2000 Microsoft Corporation All Rights Reserved
-
-Module Name:
-
- public.h
-
-Abstract:
-
- This module contains the common declarations shared by driver
- and user applications.
-
-Environment:
-
- user and kernel
-
---*/
-
-//
-// Define an Interface Guid for bus enumerator class.
-// This GUID is used to register (IoRegisterDeviceInterface)
-// an instance of an interface so that enumerator application
-// can send an ioctl to the bus driver.
-//
-
-DEFINE_GUID (GUID_DEVINTERFACE_BUSENUM_TOASTER,
- 0xD35F7840, 0x6A0C, 0x11d2, 0xB8, 0x41, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
-// {D35F7840-6A0C-11d2-B841-00C04FAD5171}
-
-//
-// Define an Interface Guid for toaster device class.
-// This GUID is used to register (IoRegisterDeviceInterface)
-// an instance of an interface so that user application
-// can control the toaster device.
-//
-
-DEFINE_GUID (GUID_DEVINTERFACE_TOASTER,
- 0x781EF630, 0x72B2, 0x11d2, 0xB8, 0x52, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
-//{781EF630-72B2-11d2-B852-00C04FAD5171}
-
-//
-// Define a Setup Class GUID for Toaster Class. This is same
-// as the TOASTSER CLASS guid in the INF files.
-//
-
-DEFINE_GUID (GUID_DEVCLASS_TOASTER,
- 0xB85B7C50, 0x6A01, 0x11d2, 0xB8, 0x41, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
-//{B85B7C50-6A01-11d2-B841-00C04FAD5171}
-
-//
-// Define a WMI GUID to get busenum info.
-//
-
-DEFINE_GUID (TOASTER_BUS_WMI_STD_DATA_GUID,
- 0x0006A660, 0x8F12, 0x11d2, 0xB8, 0x54, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
-//{0006A660-8F12-11d2-B854-00C04FAD5171}
-
-//
-// Define a WMI GUID to get toaster device info.
-//
-
-DEFINE_GUID (TOASTER_WMI_STD_DATA_GUID,
- 0xBBA21300L, 0x6DD3, 0x11d2, 0xB8, 0x44, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
-
-//
-// Define a WMI GUID to represent device arrival notification WMIEvent class.
-//
-
-DEFINE_GUID (TOASTER_NOTIFY_DEVICE_ARRIVAL_EVENT,
- 0x1cdaff1, 0xc901, 0x45b4, 0xb3, 0x59, 0xb5, 0x54, 0x27, 0x25, 0xe2, 0x9c);
-// {01CDAFF1-C901-45b4-B359-B5542725E29C}
-
-
-//
-// GUID definition are required to be outside of header inclusion pragma to avoid
-// error during precompiled headers.
-//
-
-#ifndef __PUBLIC_H
-#define __PUBLIC_H
-
-#define BUS_HARDWARE_IDS L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsToaster\0"
-#define BUS_HARDWARE_IDS_LENGTH sizeof (BUS_HARDWARE_IDS)
-
-#define BUSENUM_COMPATIBLE_IDS L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsCompatibleToaster\0"
-#define BUSENUM_COMPATIBLE_IDS_LENGTH sizeof(BUSENUM_COMPATIBLE_IDS)
-
-
-#define FILE_DEVICE_BUSENUM FILE_DEVICE_BUS_EXTENDER
-
-#define BUSENUM_IOCTL(_index_) \
- CTL_CODE (FILE_DEVICE_BUSENUM, _index_, METHOD_BUFFERED, FILE_READ_DATA)
-
-#define IOCTL_BUSENUM_PLUGIN_HARDWARE BUSENUM_IOCTL (0x0)
-#define IOCTL_BUSENUM_UNPLUG_HARDWARE BUSENUM_IOCTL (0x1)
-#define IOCTL_BUSENUM_EJECT_HARDWARE BUSENUM_IOCTL (0x2)
-#define IOCTL_TOASTER_DONT_DISPLAY_IN_UI_DEVICE BUSENUM_IOCTL (0x3)
-
-//
-// Data structure used in PlugIn and UnPlug ioctls
-//
-
-typedef struct _BUSENUM_PLUGIN_HARDWARE
-{
- //
- // sizeof (struct _BUSENUM_HARDWARE)
- //
- IN ULONG Size;
-
- //
- // Unique serial number of the device to be enumerated.
- // Enumeration will be failed if another device on the
- // bus has the same serail number.
- //
-
- IN ULONG SerialNo;
-
- //
- // An array of (zero terminated wide character strings). The array itself
- // also null terminated (ie, MULTI_SZ)
- //
- #pragma warning(disable:4200) // nonstandard extension used
-
- IN WCHAR HardwareIDs[];
-
- #pragma warning(default:4200)
-
-} BUSENUM_PLUGIN_HARDWARE, *PBUSENUM_PLUGIN_HARDWARE;
-
-typedef struct _BUSENUM_UNPLUG_HARDWARE
-{
- //
- // sizeof (struct _REMOVE_HARDWARE)
- //
-
- IN ULONG Size;
-
- //
- // Serial number of the device to be plugged out
- //
-
- ULONG SerialNo;
-
- ULONG Reserved[2];
-
-} BUSENUM_UNPLUG_HARDWARE, *PBUSENUM_UNPLUG_HARDWARE;
-
-typedef struct _BUSENUM_EJECT_HARDWARE
-{
- //
- // sizeof (struct _EJECT_HARDWARE)
- //
-
- IN ULONG Size;
-
- //
- // Serial number of the device to be ejected
- //
-
- ULONG SerialNo;
-
- ULONG Reserved[2];
-
-} BUSENUM_EJECT_HARDWARE, *PBUSENUM_EJECT_HARDWARE;
-
-#endif
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.c b/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.c
deleted file mode 100644
index 7b117240..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.c
+++ /dev/null
@@ -1,418 +0,0 @@
-/*++
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-
- THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
- PURPOSE.
-
-Module Name:
-
- Toaster.c
-
-Abstract:
-
- This is a simple form of function driver for toaster device. The driver
- doesn't handle any PnP and Power events because the framework provides
- default behavior for those events. This driver has enough support to
- allow an user application (toast/notify.exe) to open the device
- interface registered by the driver and send read, write or ioctl requests.
-
-Environment:
-
- Kernel mode
-
---*/
-
-#include "toaster.h"
-
-#ifdef ALLOC_PRAGMA
-#pragma alloc_text (INIT, DriverEntry)
-#pragma alloc_text (PAGE, ToasterEvtDeviceAdd)
-#pragma alloc_text (PAGE, ToasterEvtIoRead)
-#pragma alloc_text (PAGE, ToasterEvtIoWrite)
-#pragma alloc_text (PAGE, ToasterEvtIoDeviceControl)
-#endif
-
-
-NTSTATUS
-DriverEntry(
- IN PDRIVER_OBJECT DriverObject,
- IN PUNICODE_STRING RegistryPath
- )
-/*++
-
-Routine Description:
- DriverEntry initializes the driver and is the first routine called by the
- system after the driver is loaded. DriverEntry configures and creates a WDF driver
- object.
- .
-Parameters Description:
-
- DriverObject - represents the instance of the function driver that is loaded
- into memory. DriverObject is allocated by the system before the
- driver is loaded, and it is released by the system after the system unloads
- the function driver from memory.
-
- RegistryPath - represents the driver specific path in the Registry.
- The function driver can use the path to store driver related data between
- reboots. The path does not store hardware instance specific data.
-
-Return Value:
-
- STATUS_SUCCESS if successful,
- STATUS_UNSUCCESSFUL otherwise.
-
---*/
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDF_DRIVER_CONFIG config;
-
- KdPrint(("Toaster Function Driver Sample - Driver Framework Edition.\n"));
-
- //
- // Initialize driver config to control the attributes that
- // are global to the driver. Note that framework by default
- // provides a driver unload routine. If DriverEntry creates any resources
- // that require clean-up in driver unload,
- // you can manually override the default by supplying a pointer to the EvtDriverUnload
- // callback in the config structure. In general xxx_CONFIG_INIT macros are provided to
- // initialize most commonly used members.
- //
-
- WDF_DRIVER_CONFIG_INIT(
- &config,
- ToasterEvtDeviceAdd
- );
-
-
- //
- // Create a framework driver object to represent our driver.
- //
- status = WdfDriverCreate(
- DriverObject,
- RegistryPath,
- WDF_NO_OBJECT_ATTRIBUTES, // Driver Attributes
- &config, // Driver Config Info
- WDF_NO_HANDLE
- );
-
- if (!NT_SUCCESS(status)) {
- KdPrint( ("WdfDriverCreate failed with status 0x%x\n", status));
- }
-
- return status;
-}
-
-
-NTSTATUS
-ToasterEvtDeviceAdd(
- IN WDFDRIVER Driver,
- IN PWDFDEVICE_INIT DeviceInit
- )
-/*++
-Routine Description:
-
- ToasterEvtDeviceAdd is called by the framework in response to AddDevice
- call from the PnP manager. We create and initialize a WDF device object to
- represent a new instance of toaster device.
-
-Arguments:
-
- Driver - Handle to a framework driver object created in DriverEntry
-
- DeviceInit - Pointer to a framework-allocated WDFDEVICE_INIT structure.
-
-Return Value:
-
- NTSTATUS
-
---*/
-{
- NTSTATUS status = STATUS_SUCCESS;
- PFDO_DATA fdoData;
- WDF_IO_QUEUE_CONFIG queueConfig;
- WDF_OBJECT_ATTRIBUTES fdoAttributes;
- WDFDEVICE hDevice;
- WDFQUEUE queue;
-
- UNREFERENCED_PARAMETER(Driver);
-
- PAGED_CODE();
-
- KdPrint(("ToasterEvtDeviceAdd called\n"));
-
- //
- // Initialize attributes and a context area for the device object.
- //
- //
- WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&fdoAttributes, FDO_DATA);
-
- //
- // Create a framework device object.This call will in turn create
- // a WDM device object, attach to the lower stack, and set the
- // appropriate flags and attributes.
- //
- status = WdfDeviceCreate(&DeviceInit, &fdoAttributes, &hDevice);
- if (!NT_SUCCESS(status)) {
- KdPrint( ("WdfDeviceCreate failed with status code 0x%x\n", status));
- return status;
- }
-
- //
- // Get the device context by using the accessor function specified in
- // the WDF_DECLARE_CONTEXT_TYPE_WITH_NAME macro for FDO_DATA.
- //
- fdoData = ToasterFdoGetData(hDevice);
-
- //
- // Tell the Framework that this device will need an interface
- //
- status = WdfDeviceCreateDeviceInterface(
- hDevice,
- (LPGUID) &GUID_DEVINTERFACE_TOASTER,
- NULL // ReferenceString
- );
-
- if (!NT_SUCCESS (status)) {
- KdPrint( ("WdfDeviceCreateDeviceInterface failed 0x%x\n", status));
- return status;
- }
-
- //
- // Register I/O callbacks to tell the framework that you are interested
- // in handling IRP_MJ_READ, IRP_MJ_WRITE, and IRP_MJ_DEVICE_CONTROL requests.
- // If a specific callback function is not specified for one ofthese,
- // the request will be dispatched to the EvtIoDefault handler, if any.
- // If there is no EvtIoDefault handler, the request will be failed with
- // STATUS_INVALID_DEVICE_REQUEST.
- // WdfIoQueueDispatchParallel means that we are capable of handling
- // all the I/O requests simultaneously and we are responsible for protecting
- // data that could be accessed by these callbacks simultaneously.
- // A default queue gets all the requests that are not
- // configured for forwarding using WdfDeviceConfigureRequestDispatching.
- //
- WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&queueConfig, WdfIoQueueDispatchParallel);
-
- queueConfig.EvtIoRead = ToasterEvtIoRead;
- queueConfig.EvtIoWrite = ToasterEvtIoWrite;
- queueConfig.EvtIoDeviceControl = ToasterEvtIoDeviceControl;
-
- //
- // By default, Static Driver Verifier (SDV) displays a warning if it
- // doesn't find the EvtIoStop callback on a power-managed queue.
- // The 'assume' below causes SDV to suppress this warning. If the driver
- // has not explicitly set PowerManaged to WdfFalse, the framework creates
- // power-managed queues when the device is not a filter driver. Normally
- // the EvtIoStop is required for power-managed queues, but for this driver
- // it is not needed b/c the driver doesn't hold on to the requests or
- // forward them to other drivers. This driver completes the requests
- // directly in the queue's handlers. If the EvtIoStop callback is not
- // implemented, the framework waits for all driver-owned requests to be
- // done before moving in the Dx/sleep states or before removing the
- // device, which is the correct behavior for this type of driver.
- // If the requests were taking an indeterminate amount of time to complete,
- // or if the driver forwarded the requests to a lower driver/another stack,
- // the queue should have an EvtIoStop/EvtIoResume.
- //
- __analysis_assume(queueConfig.EvtIoStop != 0);
- status = WdfIoQueueCreate(
- hDevice,
- &queueConfig,
- WDF_NO_OBJECT_ATTRIBUTES,
- &queue
- );
- __analysis_assume(queueConfig.EvtIoStop == 0);
-
- if (!NT_SUCCESS (status)) {
-
- KdPrint( ("WdfIoQueueCreate failed 0x%x\n", status));
- return status;
- }
-
- return status;
-}
-
-VOID
-ToasterEvtIoRead (
- WDFQUEUE Queue,
- WDFREQUEST Request,
- size_t Length
- )
-/*++
-
-Routine Description:
-
- Performs read from the toaster device. This event is called when the
- framework receives IRP_MJ_READ requests.
-
-Arguments:
-
- Queue - Handle to the framework queue object that is associated with the
- I/O request.
- Request - Handle to a framework request object.
-
- Lenght - Length of the data buffer associated with the request.
- By default, the queue does not dispatch
- zero length read & write requests to the driver and instead to
- complete such requests with status success. So we will never get
- a zero length request.
-
-Return Value:
-
- None.
-
---*/
-{
- NTSTATUS status;
- ULONG_PTR bytesCopied =0;
- WDFMEMORY memory;
-
- UNREFERENCED_PARAMETER(Queue);
- UNREFERENCED_PARAMETER(Length);
-
- PAGED_CODE();
-
- KdPrint(( "ToasterEvtIoRead: Request: 0x%p, Queue: 0x%p\n",
- Request, Queue));
-
- //
- // Get the request memory and perform read operation here
- //
- status = WdfRequestRetrieveOutputMemory(Request, &memory);
- if(NT_SUCCESS(status) ) {
- //
- // Copy data into the memory buffer using WdfMemoryCopyFromBuffer
- //
- }
-
- WdfRequestCompleteWithInformation(Request, status, bytesCopied);
-}
-
-VOID
-ToasterEvtIoWrite (
- WDFQUEUE Queue,
- WDFREQUEST Request,
- size_t Length
- )
-/*++
-
-Routine Description:
-
- Performs write to the toaster device. This event is called when the
- framework receives IRP_MJ_WRITE requests.
-
-Arguments:
-
- Queue - Handle to the framework queue object that is associated with the
- I/O request.
- Request - Handle to a framework request object.
-
- Lenght - Length of the data buffer associated with the request.
- The default property of the queue is to not dispatch
- zero lenght read & write requests to the driver and
- complete is with status success. So we will never get
- a zero length request.
-
-Return Value:
-
- None
---*/
-
-{
- NTSTATUS status;
- ULONG_PTR bytesWritten =0;
- WDFMEMORY memory;
-
- UNREFERENCED_PARAMETER(Queue);
- UNREFERENCED_PARAMETER(Length);
-
- KdPrint(("ToasterEvtIoWrite. Request: 0x%p, Queue: 0x%p\n",
- Request, Queue));
-
- PAGED_CODE();
-
- //
- // Get the request buffer and perform write operation here
- //
- status = WdfRequestRetrieveInputMemory(Request, &memory);
- if(NT_SUCCESS(status) ) {
- //
- // 1) Use WdfMemoryCopyToBuffer to copy data from the request
- // to driver buffer.
- // 2) Or get the buffer pointer from the request by calling
- // WdfRequestRetrieveInputBuffer
- // 3) Or you can get the buffer pointer from the memory handle
- // by calling WdfMemoryGetBuffer.
- //
- bytesWritten = Length;
- }
-
- WdfRequestCompleteWithInformation(Request, status, bytesWritten);
-
-}
-
-
-VOID
-ToasterEvtIoDeviceControl(
- IN WDFQUEUE Queue,
- IN WDFREQUEST Request,
- IN size_t OutputBufferLength,
- IN size_t InputBufferLength,
- IN ULONG IoControlCode
- )
-/*++
-Routine Description:
-
- This event is called when the framework receives IRP_MJ_DEVICE_CONTROL
- requests from the system.
-
-Arguments:
-
- Queue - Handle to the framework queue object that is associated
- with the I/O request.
- Request - Handle to a framework request object.
-
- OutputBufferLength - length of the request's output buffer,
- if an output buffer is available.
- InputBufferLength - length of the request's input buffer,
- if an input buffer is available.
-
- IoControlCode - the driver-defined or system-defined I/O control code
- (IOCTL) that is associated with the request.
-
-Return Value:
-
- VOID
-
---*/
-{
- NTSTATUS status= STATUS_SUCCESS;
-
- UNREFERENCED_PARAMETER(Queue);
- UNREFERENCED_PARAMETER(OutputBufferLength);
- UNREFERENCED_PARAMETER(InputBufferLength);
-
- KdPrint(("ToasterEvtIoDeviceControl called\n"));
-
- PAGED_CODE();
-
- //
- // Use WdfRequestRetrieveInputBuffer and WdfRequestRetrieveOutputBuffer
- // to get the request buffers.
- //
-
- switch (IoControlCode) {
-
- default:
- status = STATUS_INVALID_DEVICE_REQUEST;
- }
-
- //
- // Complete the Request.
- //
- WdfRequestCompleteWithInformation(Request, status, (ULONG_PTR) 0);
-}
-
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.h b/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.h
deleted file mode 100644
index fc847d2d..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*++
-
-Copyright (c) 1990-2000 Microsoft Corporation All Rights Reserved
-
-Module Name:
-
- Toaster.h
-
-Abstract:
-
- Header file for the toaster driver modules.
-
-Environment:
-
- Kernel mode
-
---*/
-
-
-#if !defined(_TOASTER_H_)
-#define _TOASTER_H_
-
-#include <ntddk.h>
-#include <wdf.h>
-
-#define NTSTRSAFE_LIB
-#include <ntstrsafe.h>
-
-#include "wmilib.h"
-#include <initguid.h>
-#include "driver.h"
-#include "public.h"
-
-// For Featured driver only
-#ifdef TOASTER_FUNC_FEATURED
-#include <wpprecorder.h>
-#endif // TOASTER_FUNC_FEATURED
-
-#define TOASTER_POOL_TAG (ULONG) 'saoT'
-
-#define MOFRESOURCENAME L"ToasterWMI"
-
-#define TOASTER_FUNC_DEVICE_LOG_ID "ToasterDevice"
-//
-// The device extension for the device object
-//
-typedef struct _FDO_DATA
-{
-
- WDFWMIINSTANCE WmiDeviceArrivalEvent;
-
- BOOLEAN WmiPowerDeviceEnableRegistered;
-
- TOASTER_INTERFACE_STANDARD BusInterface;
-
-// For Featured driver only
-#ifdef TOASTER_FUNC_FEATURED
- RECORDER_LOG WppRecorderLog;
-#endif // TOASTER_FUNC_FEATURED
-
-} FDO_DATA, *PFDO_DATA;
-
-WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(FDO_DATA, ToasterFdoGetData)
-
-
-//
-// Connector Types
-//
-
-#define TOASTER_WMI_STD_I8042 0
-#define TOASTER_WMI_STD_SERIAL 1
-#define TOASTER_WMI_STD_PARALEL 2
-#define TOASTER_WMI_STD_USB 3
-
-DRIVER_INITIALIZE DriverEntry;
-EVT_WDF_DRIVER_UNLOAD ToasterEvtDriverUnload;
-
-EVT_WDF_DRIVER_DEVICE_ADD ToasterEvtDeviceAdd;
-
-EVT_WDF_DEVICE_CONTEXT_CLEANUP ToasterEvtDeviceContextCleanup;
-EVT_WDF_DEVICE_D0_ENTRY ToasterEvtDeviceD0Entry;
-EVT_WDF_DEVICE_D0_EXIT ToasterEvtDeviceD0Exit;
-EVT_WDF_DEVICE_PREPARE_HARDWARE ToasterEvtDevicePrepareHardware;
-EVT_WDF_DEVICE_RELEASE_HARDWARE ToasterEvtDeviceReleaseHardware;
-
-EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT ToasterEvtDeviceSelfManagedIoInit;
-
-//
-// Io events callbacks.
-//
-EVT_WDF_IO_QUEUE_IO_READ ToasterEvtIoRead;
-EVT_WDF_IO_QUEUE_IO_WRITE ToasterEvtIoWrite;
-EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL ToasterEvtIoDeviceControl;
-EVT_WDF_DEVICE_FILE_CREATE ToasterEvtDeviceFileCreate;
-EVT_WDF_FILE_CLOSE ToasterEvtFileClose;
-
-NTSTATUS
-ToasterWmiRegistration(
- _In_ WDFDEVICE Device
- );
-
-//
-// Power events callbacks
-//
-EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 ToasterEvtDeviceArmWakeFromS0;
-EVT_WDF_DEVICE_ARM_WAKE_FROM_SX ToasterEvtDeviceArmWakeFromSx;
-EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0 ToasterEvtDeviceDisarmWakeFromS0;
-EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX ToasterEvtDeviceDisarmWakeFromSx;
-EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED ToasterEvtDeviceWakeFromS0Triggered;
-EVT_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED ToasterEvtDeviceWakeFromSxTriggered;
-
-PCHAR
-DbgDevicePowerString(
- IN WDF_POWER_DEVICE_STATE Type
- );
-
-//
-// WMI event callbacks
-//
-EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE EvtWmiInstanceStdDeviceDataQueryInstance;
-EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE EvtWmiInstanceToasterControlQueryInstance;
-EVT_WDF_WMI_INSTANCE_SET_INSTANCE EvtWmiInstanceStdDeviceDataSetInstance;
-EVT_WDF_WMI_INSTANCE_SET_INSTANCE EvtWmiInstanceToasterControlSetInstance;
-EVT_WDF_WMI_INSTANCE_SET_ITEM EvtWmiInstanceToasterControlSetItem;
-EVT_WDF_WMI_INSTANCE_SET_ITEM EvtWmiInstanceStdDeviceDataSetItem;
-EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD EvtWmiInstanceToasterControlExecuteMethod;
-
-NTSTATUS
-ToasterFireArrivalEvent(
- _In_ WDFDEVICE Device
- );
-
-#endif // _TOASTER_H_
-
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.inx b/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.inx
deleted file mode 100644
index 2fff1924..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.inx
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj b/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj
deleted file mode 100644
index cfdfd574..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|ARM">
- <Configuration>Debug</Configuration>
- <Platform>ARM</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|ARM">
- <Configuration>Release</Configuration>
- <Platform>ARM</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|ARM64">
- <Configuration>Debug</Configuration>
- <Platform>ARM64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|ARM64">
- <Configuration>Release</Configuration>
- <Platform>ARM64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{2D4FC000-01E2-4FDD-B01A-4FD3C59D245D}</ProjectGuid>
- <TemplateGuid>{497e31cb-056b-4f31-abb8-447fd55ee5a5}</TemplateGuid>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
- <Configuration>Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <RootNamespace>toaster</RootNamespace>
- <WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <SupportsPackaging>true</SupportsPackaging>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- <DriverType>KMDF</DriverType>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- <ApiValidator_Enable>true</ApiValidator_Enable>
- <OutDir>$(SolutionDir)$(Platform)\$(ConfigurationName)\</OutDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <WppRecorderEnabled>true</WppRecorderEnabled>
- <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
- <WppKernelMode>true</WppKernelMode>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemGroup>
- <FilesToPackage Include="$(TargetPath)" />
- </ItemGroup>
- <ItemGroup>
- <Inf Include="toaster.inx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="driver.h" />
- <ClInclude Include="public.h" />
- <ClInclude Include="toaster.h" />
- <ClInclude Include="trace.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="toaster.c" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj.filters b/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj.filters
deleted file mode 100644
index 2edeb4fc..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/toaster.vcxproj.filters
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- <Filter Include="Driver Files">
- <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
- <Extensions>inf;inv;inx;mof;mc;</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <Inf Include="toaster.inx">
- <Filter>Driver Files</Filter>
- </Inf>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="driver.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="public.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="toaster.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="trace.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="toaster.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Driver/toaster/trace.h b/general/WinHEC 2017 Lab/Toaster Driver/toaster/trace.h
deleted file mode 100644
index 820df2ea..00000000
--- a/general/WinHEC 2017 Lab/Toaster Driver/toaster/trace.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*++
-
-Module Name:
-
- Trace.h
-
-Abstract:
-
- Header file for the debug tracing related function defintions and macros.
-
-Environment:
-
- Kernel mode
-
---*/
-
-//
-// Define the tracing flags.
-//
-// Tracing GUID - f1f5e659-1217-48bd-9c69-6d9cb3a147d5
-//
-
-#define WPP_CONTROL_GUIDS \
- WPP_DEFINE_CONTROL_GUID( \
- KMDFDriver1TraceGuid, (f1f5e659,1217,48bd,9c69,6d9cb3a147d5), \
- \
- WPP_DEFINE_BIT(MYDRIVER_ALL_INFO) \
- WPP_DEFINE_BIT(TRACE_DRIVER) \
- WPP_DEFINE_BIT(TRACE_DEVICE) \
- WPP_DEFINE_BIT(TRACE_QUEUE) \
- )
-
-#define WPP_FLAG_LEVEL_LOGGER(flag, level) \
- WPP_LEVEL_LOGGER(flag)
-
-#define WPP_FLAG_LEVEL_ENABLED(flag, level) \
- (WPP_LEVEL_ENABLED(flag) && \
- WPP_CONTROL(WPP_BIT_ ## flag).Level >= level)
-
-#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) \
- WPP_LEVEL_LOGGER(flags)
-
-#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \
- (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)
-
-//
-// WPP orders static parameters before dynamic parameters. To support the Trace function
-// defined below which sets FLAGS=MYDRIVER_ALL_INFO, a custom macro must be defined to
-// reorder the arguments to what the .tpl configuration file expects.
-//
-#define WPP_RECORDER_FLAGS_LEVEL_ARGS(flags, lvl) WPP_RECORDER_LEVEL_FLAGS_ARGS(lvl, flags)
-#define WPP_RECORDER_FLAGS_LEVEL_FILTER(flags, lvl) WPP_RECORDER_LEVEL_FLAGS_FILTER(lvl, flags)
-
-//
-// This comment block is scanned by the trace preprocessor to define our
-// Trace function.
-//
-// begin_wpp config
-// FUNC Trace{FLAGS=MYDRIVER_ALL_INFO}(LEVEL, MSG, ...);
-// FUNC TraceEvents(LEVEL, FLAGS, MSG, ...);
-// end_wpp
-//
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App.sln b/general/WinHEC 2017 Lab/Toaster Support App/App.sln
deleted file mode 100644
index 8d28827e..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App.sln
+++ /dev/null
@@ -1,40 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.12
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CustomCapability", "App\CustomCapability\cpp\CustomCapability.vcxproj", "{0213712B-62E6-5546-8D25-79B90244FFA9}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|ARM = Debug|ARM
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|ARM = Release|ARM
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|ARM.ActiveCfg = Debug|ARM
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|ARM.Build.0 = Debug|ARM
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|ARM.Deploy.0 = Debug|ARM
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|x64.ActiveCfg = Debug|x64
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|x64.Build.0 = Debug|x64
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|x64.Deploy.0 = Debug|x64
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|x86.ActiveCfg = Debug|Win32
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|x86.Build.0 = Debug|Win32
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Debug|x86.Deploy.0 = Debug|Win32
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|ARM.ActiveCfg = Release|ARM
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|ARM.Build.0 = Release|ARM
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|ARM.Deploy.0 = Release|ARM
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|x64.ActiveCfg = Release|x64
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|x64.Build.0 = Release|x64
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|x64.Deploy.0 = Release|x64
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|x86.ActiveCfg = Release|Win32
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|x86.Build.0 = Release|Win32
- {0213712B-62E6-5546-8D25-79B90244FFA9}.Release|x86.Deploy.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.SCCD b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.SCCD
deleted file mode 100644
index cad58db2..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.SCCD
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<CustomCapabilityDescriptor xmlns="http://schemas.microsoft.com/appx/2016/sccd" xmlns:s="http://schemas.microsoft.com/appx/2016/sccd">
- <CustomCapabilities>
- <CustomCapability Name="microsoft.hsaTestCustomCapability_q536wpkpf5cy2"></CustomCapability>
- </CustomCapabilities>
- <AuthorizedEntities>
- <AuthorizedEntity AppPackageFamilyName="Microsoft.SDKSamples.CustomCapability.CPP_8wekyb3d8bbwe" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity>
- <AuthorizedEntity AppPackageFamilyName="Microsoft.SDKSamples.CustomCapability.CPP_8wekyb3d8bbwe" CertificateSignatureHash="279cd652c4e252bfbe5217ac722205d7729ba409148cfa9e6d9e5b1cb94eaff1"></AuthorizedEntity>
- </AuthorizedEntities>
- <Catalog>xxxx</Catalog>
-</CustomCapabilityDescriptor>
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj
deleted file mode 100644
index 8efaa78d..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj
+++ /dev/null
@@ -1,287 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup Label="Globals">
- <ProjectGuid>{0213712b-62e6-5546-8d25-79b90244ffa9}</ProjectGuid>
- <RootNamespace>SDKTemplate</RootNamespace>
- <DefaultLanguage>en-US</DefaultLanguage>
- <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
- <AppContainerApplication>true</AppContainerApplication>
- <ApplicationType>Windows Store</ApplicationType>
- <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
- <WindowsTargetPlatformMinVersion>10.0.15063.0</WindowsTargetPlatformMinVersion>
- <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
- <ProjectName>CustomCapability</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|ARM">
- <Configuration>Debug</Configuration>
- <Platform>ARM</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|ARM">
- <Configuration>Release</Configuration>
- <Platform>ARM</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v141</PlatformToolset>
- <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v141</PlatformToolset>
- <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v141</PlatformToolset>
- <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props')" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props')" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`WindowsDesktop, Version=10.0.15063.0`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\WindowsDesktop.props')" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <IncludePath>$(IncludePath);..\..\..\SharedContent\cpp</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
- <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
- <AdditionalIncludeDirectories>$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories);$(OutDir)..</AdditionalIncludeDirectories>
- <ShowIncludes>false</ShowIncludes>
- </ClCompile>
- <Link>
- <AdditionalDependencies>vccorlib.lib;WindowsApp.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <OptimizeReferences>false</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
- <ClCompile>
- <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
- <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
- <AdditionalIncludeDirectories>$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories);$(OutDir)..</AdditionalIncludeDirectories>
- <ShowIncludes>false</ShowIncludes>
- </ClCompile>
- <Link>
- <AdditionalDependencies>vccorlib.lib;WindowsApp.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <OptimizeReferences>false</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
- <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
- <AdditionalIncludeDirectories>$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories);$(OutDir)..</AdditionalIncludeDirectories>
- <ShowIncludes>false</ShowIncludes>
- </ClCompile>
- <Link>
- <AdditionalDependencies>vccorlib.lib;WindowsApp.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
- <ClCompile>
- <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
- <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
- <AdditionalIncludeDirectories>$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories);$(OutDir)..</AdditionalIncludeDirectories>
- <ShowIncludes>false</ShowIncludes>
- </ClCompile>
- <Link>
- <AdditionalDependencies>vccorlib.lib;WindowsApp.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
- <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
- <AdditionalIncludeDirectories>$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories);$(OutDir)..</AdditionalIncludeDirectories>
- <ShowIncludes>false</ShowIncludes>
- </ClCompile>
- <Link>
- <AdditionalDependencies>vccorlib.lib;WindowsApp.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <OptimizeReferences>false</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
- <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
- <AdditionalIncludeDirectories>$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories);$(OutDir)..</AdditionalIncludeDirectories>
- <ShowIncludes>false</ShowIncludes>
- </ClCompile>
- <Link>
- <AdditionalDependencies>vccorlib.lib;WindowsApp.lib;%(AdditionalDependencies);rpcrt4.lib</AdditionalDependencies>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="ServiceViewModel.h" />
- <ClInclude Include="pch.h" />
- <ClInclude Include="..\..\..\SharedContent\cpp\App.xaml.h">
- <DependentUpon>..\..\..\SharedContent\xaml\App.xaml</DependentUpon>
- </ClInclude>
- <ClInclude Include="..\..\..\SharedContent\cpp\MainPage.xaml.h">
- <DependentUpon>..\..\..\SharedContent\cpp\MainPage.xaml</DependentUpon>
- </ClInclude>
- <ClInclude Include="Scenario1_MeteringData.xaml.h">
- <DependentUpon>Scenario1_MeteringData.xaml</DependentUpon>
- </ClInclude>
- <ClInclude Include="RpcClient.h" />
- <ClInclude Include="SampleConfiguration.h" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="..\..\..\SharedContent\xaml\App.xaml">
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Page Include="..\..\..\SharedContent\xaml\Styles.xaml">
- <Link>Styles\Styles.xaml</Link>
- </Page>
- <Page Include="..\..\..\SharedContent\cpp\MainPage.xaml">
- <SubType>Designer</SubType>
- </Page>
- <Page Include="Scenario1_MeteringData.xaml">
- <SubType>Designer</SubType>
- </Page>
- </ItemGroup>
- <ItemGroup>
- <AppxManifest Include="Package.appxmanifest">
- <SubType>Designer</SubType>
- </AppxManifest>
- </ItemGroup>
- <ItemGroup>
- <Image Include="..\..\..\SharedContent\media\microsoft-sdk.png">
- <Link>Assets\microsoft-sdk.png</Link>
- </Image>
- <Image Include="..\..\..\SharedContent\media\smalltile-sdk.png">
- <Link>Assets\smalltile-sdk.png</Link>
- </Image>
- <Image Include="..\..\..\SharedContent\media\splash-sdk.png">
- <Link>Assets\splash-sdk.png</Link>
- </Image>
- <Image Include="..\..\..\SharedContent\media\squaretile-sdk.png">
- <Link>Assets\squaretile-sdk.png</Link>
- </Image>
- <Image Include="..\..\..\SharedContent\media\storelogo-sdk.png">
- <Link>Assets\storelogo-sdk.png</Link>
- </Image>
- <Image Include="..\..\..\SharedContent\media\tile-sdk.png">
- <Link>Assets\tile-sdk.png</Link>
- </Image>
- <Image Include="..\..\..\SharedContent\media\windows-sdk.png">
- <Link>Assets\windows-sdk.png</Link>
- </Image>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="RpcInterface.c">
- <CompileAsWinRT>false</CompileAsWinRT>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="..\..\..\SharedContent\cpp\App.xaml.cpp">
- <DependentUpon>..\..\..\SharedContent\xaml\App.xaml</DependentUpon>
- </ClCompile>
- <ClCompile Include="..\..\..\SharedContent\cpp\MainPage.xaml.cpp">
- <DependentUpon>..\..\..\SharedContent\cpp\MainPage.xaml</DependentUpon>
- </ClCompile>
- <ClCompile Include="ServiceViewModel.cpp" />
- <ClCompile Include="Scenario1_MeteringData.xaml.cpp">
- <DependentUpon>Scenario1_MeteringData.xaml</DependentUpon>
- </ClCompile>
- <ClCompile Include="SampleConfiguration.cpp" />
- <ClCompile Include="pch.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="RpcClient.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <SDKReference Include="WindowsDesktop, Version=10.0.15063.0" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\..\..\Toaster Driver\Service\RpcInterface.acf" />
- </ItemGroup>
- <ItemGroup>
- <Midl Include="..\..\..\..\Toaster Driver\Service\RpcInterface.Idl" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj.filters b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj.filters
deleted file mode 100644
index af84bc38..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/CustomCapability.vcxproj.filters
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Common">
- <UniqueIdentifier>81d95eea-286c-4a5e-98f1-eef612020bf0</UniqueIdentifier>
- </Filter>
- <Filter Include="Assets">
- <UniqueIdentifier>85b464d3-9e56-4242-b58b-1f226dd034b4</UniqueIdentifier>
- <Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions>
- </Filter>
- <Filter Include="ViewModel">
- <UniqueIdentifier>{1c0f2943-52c2-4a54-93a2-971c14e7c8ec}</UniqueIdentifier>
- </Filter>
- <Filter Include="Model">
- <UniqueIdentifier>{33085be2-4c37-4eab-8f6e-6add0cffe2d4}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="..\..\..\SharedContent\xaml\App.xaml" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="pch.cpp" />
- <ClCompile Include="RpcClient.cpp">
- <Filter>Model</Filter>
- </ClCompile>
- <ClCompile Include="SampleConfiguration.cpp">
- <Filter>Common</Filter>
- </ClCompile>
- <ClCompile Include="Scenario1_MeteringData.xaml.cpp" />
- <ClCompile Include="..\..\..\SharedContent\cpp\App.xaml.cpp" />
- <ClCompile Include="..\..\..\SharedContent\cpp\MainPage.xaml.cpp" />
- <ClCompile Include="ServiceViewModel.cpp">
- <Filter>ViewModel</Filter>
- </ClCompile>
- <ClCompile Include="RpcInterface.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="pch.h" />
- <ClInclude Include="RpcClient.h">
- <Filter>Model</Filter>
- </ClInclude>
- <ClInclude Include="SampleConfiguration.h">
- <Filter>Common</Filter>
- </ClInclude>
- <ClInclude Include="Scenario1_MeteringData.xaml.h" />
- <ClInclude Include="..\..\..\SharedContent\cpp\App.xaml.h" />
- <ClInclude Include="..\..\..\SharedContent\cpp\MainPage.xaml.h" />
- <ClInclude Include="ServiceViewModel.h">
- <Filter>ViewModel</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <Image Include="..\..\..\SharedContent\media\microsoft-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- <Image Include="..\..\..\SharedContent\media\smalltile-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- <Image Include="..\..\..\SharedContent\media\splash-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- <Image Include="..\..\..\SharedContent\media\squaretile-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- <Image Include="..\..\..\SharedContent\media\storelogo-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- <Image Include="..\..\..\SharedContent\media\tile-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- <Image Include="..\..\..\SharedContent\media\windows-sdk.png">
- <Filter>Assets</Filter>
- </Image>
- </ItemGroup>
- <ItemGroup>
- <AppxManifest Include="Package.appxmanifest" />
- </ItemGroup>
- <ItemGroup>
- <Page Include="Scenario1_MeteringData.xaml" />
- <Page Include="..\..\..\SharedContent\xaml\Styles.xaml" />
- <Page Include="..\..\..\SharedContent\cpp\MainPage.xaml" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\..\..\Toaster Driver\Service\RpcInterface.acf" />
- </ItemGroup>
- <ItemGroup>
- <Midl Include="..\..\..\..\Toaster Driver\Service\RpcInterface.Idl" />
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/DeviceList.cpp b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/DeviceList.cpp
deleted file mode 100644
index cb3a7a8e..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/DeviceList.cpp
+++ /dev/null
@@ -1,244 +0,0 @@
-#include "pch.h"
-#include "DeviceList.h"
-#include "MainPage.xaml.h"
-#include "App.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace Platform;
-using namespace Platform::Collections;
-using namespace Windows::ApplicationModel;
-using namespace Windows::Devices::Enumeration;
-using namespace Windows::Devices::Custom;
-using namespace Windows::Foundation;
-using namespace Windows::UI::Core;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Documents;
-
-DeviceList^ DeviceList::_Current = nullptr;
-
-DeviceList^ DeviceList::Current::get()
-{
- if (DeviceList::_Current == nullptr)
- {
- DeviceList::_Current = ref new DeviceList();
- }
- return DeviceList::_Current;
-}
-
-DeviceList::DeviceList() : m_WatcherStarted(false), m_WatcherSuspended(false)
-{
- m_Fx2Watcher = nullptr;
- m_List = ref new Vector<DeviceListEntry^>();
- InitDeviceWatcher();
-
- // Register for app suspend/resume handlers
- App::Current->Suspending += ref new SuspendingEventHandler(this, &DeviceList::SuspendDeviceWatcher);
- App::Current->Resuming += ref new EventHandler<Object^>(this, &DeviceList::ResumeDeviceWatcher);
-}
-
-void DeviceList::InitDeviceWatcher()
-{
- // Define the selector to enumerate all of the fx2 device interface class instances.
- // Use the DeviceInterfaceGuid provided by the driver (Fx2Driver, in this case).
- auto selector = CustomDevice::GetDeviceSelector(Fx2Driver::DeviceInterfaceGuid);
-
- // Set of properties to retrieve
- auto properties = ref new Vector<String^>({ "System.Devices.DeviceInstanceId" });
-
- // Create a device watcher to look for instances of the fx2 device interface.
- m_Fx2Watcher = DeviceInformation::CreateWatcher(selector, properties);
-
- m_Fx2Watcher->Added += ref new TypedEventHandler<DeviceWatcher^, DeviceInformation^>(this, &DeviceList::OnFx2Added);
- m_Fx2Watcher->Removed += ref new TypedEventHandler<DeviceWatcher^, DeviceInformationUpdate^>(this, &DeviceList::OnFx2Removed);
- m_Fx2Watcher->EnumerationCompleted += ref new TypedEventHandler<DeviceWatcher^, Object^>(this, &DeviceList::OnFx2EnumerationComplete);
-}
-
-void DeviceList::StartFx2Watcher()
-{
- MainPage::Current->NotifyUser("starting device watcher", NotifyType::StatusMessage);
-
- std::for_each(
- begin(m_List),
- end(m_List),
- [](DeviceListEntry^ Entry) {
- Entry->Matched = false;
- });
-
- WatcherStarted = true;
- m_Fx2Watcher->Start();
-}
-
-void DeviceList::StopFx2Watcher()
-{
- MainPage::Current->NotifyUser("stopping fx2 watcher", NotifyType::StatusMessage);
- m_Fx2Watcher->Stop();
- WatcherStarted = false;
-}
-
-void DeviceList::CreateBooleanTable(
- InlineCollection^ Table,
- const Platform::Array<bool>^ NewValues,
- const Platform::Array<bool>^ OldValues,
- String^ /* IndexTitle */,
- String^ /* ValueTitle */,
- String^ TrueValue,
- String^ FalseValue)
-{
- Table->Clear();
-
- for (int i = 0; i < (int)NewValues->Length; i += 1)
- {
- auto line = ref new Span();
- auto block = ref new Run();
- block->Text = (i + 1).ToString();
- line->Inlines->Append(block);
-
- block = ref new Run();
- block->Text = " ";
- line->Inlines->Append(block);
-
- block = ref new Run();
- block->Text = NewValues[i] ? TrueValue : FalseValue;
-
- if ((OldValues != nullptr) && (OldValues[i] != NewValues[i]))
- {
- auto bold = ref new Bold();
- bold->Inlines->Append(block);
- line->Inlines->Append(bold);
- }
- else
- {
- line->Inlines->Append(block);
- }
-
- line->Inlines->Append(ref new LineBreak());
-
- Table->Append(line);
- }
-}
-
-DeviceListEntry^ DeviceList::FindDevice(String^ Id)
-{
- auto i = std::find_if(
- begin(m_List),
- end(m_List),
- [Id](DeviceListEntry^ e) {return e->Id == Id; });
-
- if (i == end(m_List))
- {
- return nullptr;
- }
- else
- {
- return *i;
- }
-}
-
-void DeviceList::OnFx2Added(DeviceWatcher ^ /* Sender */, DeviceInformation^ DevInterface)
-{
- MainPage::Current->Dispatcher->RunAsync(
- CoreDispatcherPriority::Normal,
- ref new DispatchedHandler(
- [this, DevInterface]()->void
- {
- MainPage::Current->NotifyUser("OnFx2Added: " + DevInterface->Id, NotifyType::StatusMessage);
-
- // search the device list for a device with a matching interface ID
- auto match = FindDevice(DevInterface->Id);
-
- // If we found a match then mark it as verified and return
- if (match != nullptr)
- {
- match->Matched = true;
- return;
- }
-
- // Create a new elemetn for this device interface, and queue up the query of its
- // device information
- match = ref new DeviceListEntry(DevInterface);
-
- // Add the new element to the end of the list of devices
- m_List->Append(match);
- }));
-}
-
-void DeviceList::OnFx2Removed(DeviceWatcher ^ /* Sender */, DeviceInformationUpdate^ DevInterface)
-{
- auto deviceId = DevInterface->Id;
-
- MainPage::Current->Dispatcher->RunAsync(
- CoreDispatcherPriority::Normal,
- ref new DispatchedHandler(
- [this, deviceId]()
- {
- MainPage::Current->NotifyUser("OnFx2Removed: " + deviceId, NotifyType::StatusMessage);
-
- // Search the list of devices for one with a matching ID. Move the matched
- // item to the end of the list.
- auto i = std::remove_if(
- begin(m_List),
- end(m_List),
- [deviceId](DeviceListEntry^ e) {return e->Id == deviceId; });
-
- // if there's no match return.
- if (i == end(m_List))
- {
- return;
- }
-
- // Remove the last item from the list.
- MainPage::Current->NotifyUser("OnFx2Removed: " + deviceId + " removed", NotifyType::StatusMessage);
- m_List->RemoveAtEnd();
- }));
-}
-
-void DeviceList::OnFx2EnumerationComplete(DeviceWatcher ^ /* Sender */, Object ^ /* o */)
-{
- MainPage::Current->Dispatcher->RunAsync(
- CoreDispatcherPriority::Normal,
- ref new DispatchedHandler(
- [this]()
- {
- MainPage::Current->NotifyUser("OnFx2EnumerationComplete", NotifyType::StatusMessage);
-
- DeviceList^ me = this;
-
- // Move all the unmatched elements to the end of the list
- auto i = std::remove_if(
- begin(m_List),
- end(m_List),
- [](DeviceListEntry^ e) { return e->Matched == false; });
-
- // Determine the number of unmatched entries
- auto unmatchedCount = end(m_List) - i;
-
- while (unmatchedCount > 0)
- {
- m_List->RemoveAtEnd();
- unmatchedCount -= 1;
- }
- }));
-}
-
-void DeviceList::SuspendDeviceWatcher(Object^, SuspendingEventArgs^)
-{
- if (WatcherStarted)
- {
- m_WatcherSuspended = true;
- StopFx2Watcher();
- }
- else
- {
- m_WatcherSuspended = false;
- }
-}
-
-void DeviceList::ResumeDeviceWatcher(Object^, Object^)
-{
- if (m_WatcherSuspended)
- {
- m_WatcherSuspended = false;
- StartFx2Watcher();
- }
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Package.appxmanifest b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Package.appxmanifest
deleted file mode 100644
index 0ec45a07..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Package.appxmanifest
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<Package
- xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
- xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
- xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
- xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
- IgnorableNamespaces="uap mp uap4"
- >
- <Identity Name="Microsoft.SDKSamples.CustomCapability.CPP" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" />
- <mp:PhoneIdentity PhoneProductId="26388851-6c33-4124-b1e5-96e859da28bf" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
- <Properties>
- <DisplayName>Custom Capability C++ Sample</DisplayName>
- <PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
- <Logo>Assets\StoreLogo-sdk.png</Logo>
- </Properties>
- <Dependencies>
- <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.15063.0" MaxVersionTested="10.0.15063.0"/>
- </Dependencies>
- <Resources>
- <Resource Language="x-generate"/>
- </Resources>
- <Applications>
- <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="CustomCapability.App">
- <uap:VisualElements
- DisplayName="Custom Capability C++ sample"
- Square150x150Logo="Assets\squareTile-sdk.png"
- Square44x44Logo="Assets\smallTile-sdk.png"
- Description="Hsa C++ sample"
- BackgroundColor="#00B2F0"
- >
- <uap:SplashScreen Image="Assets\splash-sdk.png"/>
- <uap:DefaultTile>
- <uap:ShowNameOnTiles>
- <uap:ShowOn Tile="square150x150Logo"/>
- </uap:ShowNameOnTiles>
- </uap:DefaultTile>
- </uap:VisualElements>
- </Application>
- </Applications>
-
-</Package>
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.cpp b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.cpp
deleted file mode 100644
index 870d6306..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-// There is an error in the system header files that incorrectly
-// places RpcStringBindingCompose in the app partition.
-// Work around it by changing the WINAPI_FAMILY to desktop temporarily.
-#pragma push_macro("WINAPI_FAMILY")
-#undef WINAPI_FAMILY
-#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
-#include "RpcClient.h"
-#pragma pop_macro("WINAPI_FAMILY")
-
-using namespace SDKTemplate;
-
-__int64 RpcClient::Initialize()
-{
- RPC_STATUS status;
- RPC_WSTR pszStringBinding = nullptr;
-
- status = RpcStringBindingCompose(
- NULL,
- reinterpret_cast<RPC_WSTR>(L"ncalrpc"),
- NULL,
- reinterpret_cast<RPC_WSTR>(RPC_STATIC_ENDPOINT),
- NULL,
- &pszStringBinding);
-
- if (status)
- {
- goto error_status;
- }
-
- status = RpcBindingFromStringBinding(
- pszStringBinding,
- &hRpcBinding);
-
- if (status)
- {
- goto error_status;
- }
-
- status = RpcStringFree(&pszStringBinding);
-
- if (status)
- {
- goto error_status;
- }
-
- RpcTryExcept
- {
- ::RemoteOpen(hRpcBinding, &phContext);
- }
- RpcExcept(1)
- {
- status = RpcExceptionCode();
- }
- RpcEndExcept
-
-error_status:
-
- return status;
-}
-
-//
-// Make RPC call to start metering. This is a blocking call and
-// will return only after StopMetering is called.
-//
-__int64 RpcClient::StartMeteringAndWaitForStop(__int64 samplePeriod)
-{
- __int64 ulCode = 0;
- CallbackCount = 0;
- MeteringData = 0;
-
- RpcTryExcept
- {
- ::StartMetering(phContext, samplePeriod, (__int64)this);
- }
- RpcExcept(1)
- {
- ulCode = RpcExceptionCode();
- }
- RpcEndExcept
-
- return ulCode;
-}
-
-
-//
-// Make rpc call SetSampleRate
-//
-__int64 RpcClient::SetSampleRate(int rate)
-{
- __int64 ulCode = 0;
- RpcTryExcept
- {
- ::SetSamplePeriod(phContext, rate);
- }
- RpcExcept(1)
- {
- ulCode = RpcExceptionCode();
- }
- RpcEndExcept
- return ulCode;
-}
-
-//
-// Make rpc call StopMetering
-//
-__int64 RpcClient::StopMetering()
-{
- __int64 ulCode = 0;
- RpcTryExcept
- {
- ::StopMetering(phContext);
- }
- RpcExcept(1)
- {
- ulCode = RpcExceptionCode();
- }
- RpcEndExcept
- return ulCode;
-}
-
-RpcClient::~RpcClient()
-{
- RPC_STATUS status;
-
- if (hRpcBinding != NULL)
- {
- RpcTryExcept
- {
- ::RemoteClose(&phContext);
- }
- RpcExcept(1)
- {
- // Ignoring the result of RemoteClose as nothing can be
- // done on the client side with this return code
- status = RpcExceptionCode();
- }
- RpcEndExcept
-
- status = RpcBindingFree(&hRpcBinding);
- hRpcBinding = NULL;
- }
-}
-
-//
-// Metering rpc callback
-//
-void MeteringDataEvent(__int64 data, __int64 context)
-{
- RpcClient* client = static_cast<RpcClient*>((PVOID)context);
- client->MeteringData = data;
- ++client->CallbackCount;
-}
-
-///******************************************************/
-///* MIDL allocate and free */
-///******************************************************/
-
-void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len)
-{
- return(malloc(len));
-}
-
-void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
-{
- free(ptr);
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.h b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.h
deleted file mode 100644
index 0ee5ff78..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcClient.h
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// RpcClient.h
-//
-
-#pragma once
-
-#define RPC_STATIC_ENDPOINT L"HsaSampleRpcEndpoint"
-
-#include "RpcInterface_h.h"
-
-namespace SDKTemplate
-{
- /// <summary>
- /// Client side RPC implementation
- /// </summary>
- private class RpcClient sealed
- {
- public:
- ~RpcClient();
- __int64 Initialize();
- __int64 StartMeteringAndWaitForStop(__int64 samplePeriod);
- __int64 StopMetering();
- __int64 SetSampleRate(int rate);
- int CallbackCount;
- __int64 MeteringData;
- private:
- handle_t hRpcBinding;
- PCONTEXT_HANDLE_TYPE phContext;
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface.c b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface.c
deleted file mode 100644
index 0f988533..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RpcInterface_c.c expects _ARM_ to be set when building for ARM.
-#ifdef _M_ARM
-#define _ARM_ 1
-#endif
-
-#include "RpcInterface_c.c"
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_c.c b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_c.c
deleted file mode 100644
index 8b05c1ea..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_c.c
+++ /dev/null
@@ -1,476 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the RPC client stubs */
-
-
- /* File created by MIDL compiler version 8.01.0622 */
-/* at Mon Jan 18 19:14:07 2038
- */
-/* Compiler settings for C:\WinHEC 2017 Lab\Toaster Driver\Service\RpcInterface.Idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-
-#include <string.h>
-
-#include "RpcInterface_h.h"
-
-#define TYPE_FORMAT_STRING_SIZE 23
-#define PROC_FORMAT_STRING_SIZE 245
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _RpcInterface_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString;
-extern const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString;
-extern const RpcInterface_MIDL_EXPR_FORMAT_STRING RpcInterface__MIDL_ExprFormatString;
-
-#define GENERIC_BINDING_TABLE_SIZE 0
-
-
-/* Standard interface: RpcInterface, ver. 1.0,
- GUID={0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}} */
-
-
-extern const MIDL_SERVER_INFO RpcInterface_ServerInfo;
-
-
-extern const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable;
-
-static const RPC_CLIENT_INTERFACE RpcInterface___RpcClientInterface =
- {
- sizeof(RPC_CLIENT_INTERFACE),
- {{0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}},{1,0}},
- {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}},
- (RPC_DISPATCH_TABLE*)&RpcInterface_v1_0_DispatchTable,
- 0,
- 0,
- 0,
- &RpcInterface_ServerInfo,
- 0x04000000
- };
-RPC_IF_HANDLE RpcInterface_v1_0_c_ifspec = (RPC_IF_HANDLE)& RpcInterface___RpcClientInterface;
-
-extern const MIDL_STUB_DESC RpcInterface_StubDesc;
-
-static RPC_BINDING_HANDLE RpcInterface__MIDL_AutoBindHandle;
-
-
-void RemoteOpen(
- /* [in] */ handle_t hBinding,
- /* [out] */ PPCONTEXT_HANDLE_TYPE pphContext)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[0],
- hBinding,
- pphContext);
-
-}
-
-
-void RemoteClose(
- /* [out][in] */ PPCONTEXT_HANDLE_TYPE pphContext)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[36],
- pphContext);
-
-}
-
-
-void StartMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod,
- /* [optional][in] */ __int64 context)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[74],
- phContext,
- samplePeriod,
- context);
-
-}
-
-
-void SetSamplePeriod(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[124],
- phContext,
- samplePeriod);
-
-}
-
-
-void StopMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[168],
- phContext);
-
-}
-
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure RemoteOpen */
-
- 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x0 ), /* 0 */
-/* 8 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 10 */ 0x32, /* FC_BIND_PRIMITIVE */
- 0x0, /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ NdrFcShort( 0x38 ), /* 56 */
-/* 18 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 20 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-/* 26 */ NdrFcShort( 0x0 ), /* 0 */
-/* 28 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 30 */ NdrFcShort( 0x110 ), /* Flags: out, simple ref, */
-/* 32 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 34 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Procedure RemoteClose */
-
-/* 36 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x1 ), /* 1 */
-/* 44 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 46 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe0, /* Ctxt flags: via ptr, in, out, */
-/* 48 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 50 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 52 */ NdrFcShort( 0x38 ), /* 56 */
-/* 54 */ NdrFcShort( 0x38 ), /* 56 */
-/* 56 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 58 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 68 */ NdrFcShort( 0x118 ), /* Flags: in, out, simple ref, */
-/* 70 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 72 */ NdrFcShort( 0xe ), /* Type Offset=14 */
-
- /* Procedure StartMetering */
-
-/* 74 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 76 */ NdrFcLong( 0x0 ), /* 0 */
-/* 80 */ NdrFcShort( 0x2 ), /* 2 */
-/* 82 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 84 */ 0x30, /* FC_BIND_CONTEXT */
- 0x40, /* Ctxt flags: in, */
-/* 86 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 88 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 90 */ NdrFcShort( 0x44 ), /* 68 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ 0x40, /* Oi2 Flags: has ext, */
- 0x3, /* 3 */
-/* 96 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 106 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 108 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 110 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 114 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 116 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 120 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 122 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure SetSamplePeriod */
-
-/* 124 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 126 */ NdrFcLong( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x3 ), /* 3 */
-/* 132 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 134 */ 0x30, /* FC_BIND_CONTEXT */
- 0x40, /* Ctxt flags: in, */
-/* 136 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 138 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 140 */ NdrFcShort( 0x34 ), /* 52 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 146 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 156 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 158 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 160 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 164 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 166 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure StopMetering */
-
-/* 168 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 170 */ NdrFcLong( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x4 ), /* 4 */
-/* 176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 178 */ 0x30, /* FC_BIND_CONTEXT */
- 0x40, /* Ctxt flags: in, */
-/* 180 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 182 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 184 */ NdrFcShort( 0x24 ), /* 36 */
-/* 186 */ NdrFcShort( 0x0 ), /* 0 */
-/* 188 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 190 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 200 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 202 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 204 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Procedure MeteringDataEvent */
-
-/* 206 */ 0x34, /* FC_CALLBACK_HANDLE */
- 0x48, /* Old Flags: */
-/* 208 */ NdrFcLong( 0x0 ), /* 0 */
-/* 212 */ NdrFcShort( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 216 */ NdrFcShort( 0x20 ), /* 32 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 222 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 224 */ NdrFcShort( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter data */
-
-/* 232 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 234 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 236 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 238 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 240 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 242 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */ 0x30, /* FC_BIND_CONTEXT */
- 0xa0, /* Ctxt flags: via ptr, out, */
-/* 8 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 10 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 12 */ NdrFcShort( 0x2 ), /* Offset= 2 (14) */
-/* 14 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe1, /* Ctxt flags: via ptr, in, out, can't be null */
-/* 16 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 18 */ 0x30, /* FC_BIND_CONTEXT */
- 0x41, /* Ctxt flags: in, can't be null */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const unsigned short RpcInterface_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 74,
- 124,
- 168,
- };
-
-
-static const unsigned short _callbackRpcInterface_FormatStringOffsetTable[] =
- {
- 206
- };
-
-
-static const MIDL_STUB_DESC RpcInterface_StubDesc =
- {
- (void *)& RpcInterface___RpcClientInterface,
- MIDL_user_allocate,
- MIDL_user_free,
- &RpcInterface__MIDL_AutoBindHandle,
- 0,
- 0,
- 0,
- 0,
- RpcInterface__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x801026e, /* MIDL Version 8.1.622 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-static const RPC_DISPATCH_FUNCTION RpcInterface_table[] =
- {
- NdrServerCall2,
- 0
- };
-static const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable =
- {
- 1,
- (RPC_DISPATCH_FUNCTION*)RpcInterface_table
- };
-
-static const SERVER_ROUTINE RpcInterface_ServerRoutineTable[] =
- {
- (SERVER_ROUTINE)MeteringDataEvent
- };
-
-static const MIDL_SERVER_INFO RpcInterface_ServerInfo =
- {
- &RpcInterface_StubDesc,
- RpcInterface_ServerRoutineTable,
- RpcInterface__MIDL_ProcFormatString.Format,
- _callbackRpcInterface_FormatStringOffsetTable,
- 0,
- 0,
- 0,
- 0};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_h.h b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_h.h
deleted file mode 100644
index a0e2dcac..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_h.h
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 8.01.0622 */
-/* at Mon Jan 18 19:14:07 2038
- */
-/* Compiler settings for C:\WinHEC 2017 Lab\Toaster Driver\Service\RpcInterface.Idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif /* __RPCNDR_H_VERSION__ */
-
-
-#ifndef __RpcInterface_h_h__
-#define __RpcInterface_h_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-#if defined(__cplusplus)
-#if defined(__MIDL_USE_C_ENUM)
-#define MIDL_ENUM enum
-#else
-#define MIDL_ENUM enum class
-#endif
-#endif
-
-
-/* Forward Declarations */
-
-/* header files for imported files */
-#include "oaidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __RpcInterface_INTERFACE_DEFINED__
-#define __RpcInterface_INTERFACE_DEFINED__
-
-/* interface RpcInterface */
-/* [unique][version][uuid] */
-
-typedef /* [context_handle] */ void *PCONTEXT_HANDLE_TYPE;
-
-typedef /* [ref] */ PCONTEXT_HANDLE_TYPE *PPCONTEXT_HANDLE_TYPE;
-
-void RemoteOpen(
- /* [in] */ handle_t hBinding,
- /* [out] */ PPCONTEXT_HANDLE_TYPE pphContext);
-
-void RemoteClose(
- /* [out][in] */ PPCONTEXT_HANDLE_TYPE pphContext);
-
-void StartMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod,
- /* [optional][in] */ __int64 context);
-
-void SetSamplePeriod(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext,
- /* [in] */ __int64 samplePeriod);
-
-void StopMetering(
- /* [in] */ PCONTEXT_HANDLE_TYPE phContext);
-
-/* [callback] */ void MeteringDataEvent(
- /* [in] */ __int64 data,
- /* [optional][in] */ __int64 context);
-
-
-
-extern RPC_IF_HANDLE RpcInterface_v1_0_c_ifspec;
-extern RPC_IF_HANDLE RpcInterface_v1_0_s_ifspec;
-#endif /* __RpcInterface_INTERFACE_DEFINED__ */
-
-/* Additional Prototypes for ALL interfaces */
-
-void __RPC_USER PCONTEXT_HANDLE_TYPE_rundown( PCONTEXT_HANDLE_TYPE );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_s.c b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_s.c
deleted file mode 100644
index ec58170d..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/RpcInterface_s.c
+++ /dev/null
@@ -1,430 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the RPC server stubs */
-
-
- /* File created by MIDL compiler version 8.01.0622 */
-/* at Mon Jan 18 19:14:07 2038
- */
-/* Compiler settings for C:\WinHEC 2017 Lab\Toaster Driver\Service\RpcInterface.Idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-
-#include <string.h>
-#include "RpcInterface_h.h"
-
-#define TYPE_FORMAT_STRING_SIZE 23
-#define PROC_FORMAT_STRING_SIZE 245
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _RpcInterface_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _RpcInterface_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } RpcInterface_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-extern const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString;
-extern const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString;
-extern const RpcInterface_MIDL_EXPR_FORMAT_STRING RpcInterface__MIDL_ExprFormatString;
-
-/* Standard interface: RpcInterface, ver. 1.0,
- GUID={0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}} */
-
-
-extern const MIDL_SERVER_INFO RpcInterface_ServerInfo;
-
-extern const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable;
-
-static const RPC_SERVER_INTERFACE RpcInterface___RpcServerInterface =
- {
- sizeof(RPC_SERVER_INTERFACE),
- {{0x906B0CE0,0xC70B,0x1067,{0xB3,0x17,0x00,0xDD,0x01,0x06,0x62,0xDA}},{1,0}},
- {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}},
- (RPC_DISPATCH_TABLE*)&RpcInterface_v1_0_DispatchTable,
- 0,
- 0,
- 0,
- &RpcInterface_ServerInfo,
- 0x04000000
- };
-RPC_IF_HANDLE RpcInterface_v1_0_s_ifspec = (RPC_IF_HANDLE)& RpcInterface___RpcServerInterface;
-
-extern const MIDL_STUB_DESC RpcInterface_StubDesc;
-
- extern const MIDL_STUBLESS_PROXY_INFO RpcInterface_ProxyInfo;
-
-/* [callback] */ void MeteringDataEvent(
- /* [in] */ __int64 data,
- /* [optional][in] */ __int64 context)
-{
-
- NdrClientCall2(
- ( PMIDL_STUB_DESC )&RpcInterface_StubDesc,
- (PFORMAT_STRING) &RpcInterface__MIDL_ProcFormatString.Format[206],
- data,
- context);
-
-}
-
-extern const NDR_RUNDOWN RundownRoutines[];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const RpcInterface_MIDL_PROC_FORMAT_STRING RpcInterface__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure RemoteOpen */
-
- 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x0 ), /* 0 */
-/* 8 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 10 */ 0x32, /* FC_BIND_PRIMITIVE */
- 0x0, /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ NdrFcShort( 0x38 ), /* 56 */
-/* 18 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 20 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-/* 26 */ NdrFcShort( 0x0 ), /* 0 */
-/* 28 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 30 */ NdrFcShort( 0x110 ), /* Flags: out, simple ref, */
-/* 32 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 34 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Procedure RemoteClose */
-
-/* 36 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x1 ), /* 1 */
-/* 44 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 46 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe0, /* Ctxt flags: via ptr, in, out, */
-/* 48 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 50 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 52 */ NdrFcShort( 0x38 ), /* 56 */
-/* 54 */ NdrFcShort( 0x38 ), /* 56 */
-/* 56 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 58 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter pphContext */
-
-/* 68 */ NdrFcShort( 0x118 ), /* Flags: in, out, simple ref, */
-/* 70 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 72 */ NdrFcShort( 0xe ), /* Type Offset=14 */
-
- /* Procedure StartMetering */
-
-/* 74 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 76 */ NdrFcLong( 0x0 ), /* 0 */
-/* 80 */ NdrFcShort( 0x2 ), /* 2 */
-/* 82 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 84 */ 0x30, /* FC_BIND_CONTEXT */
- 0x40, /* Ctxt flags: in, */
-/* 86 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 88 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 90 */ NdrFcShort( 0x44 ), /* 68 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ 0x40, /* Oi2 Flags: has ext, */
- 0x3, /* 3 */
-/* 96 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 106 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 108 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 110 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 114 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 116 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 120 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 122 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure SetSamplePeriod */
-
-/* 124 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 126 */ NdrFcLong( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x3 ), /* 3 */
-/* 132 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 134 */ 0x30, /* FC_BIND_CONTEXT */
- 0x40, /* Ctxt flags: in, */
-/* 136 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 138 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 140 */ NdrFcShort( 0x34 ), /* 52 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 146 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 156 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 158 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 160 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Parameter samplePeriod */
-
-/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 164 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 166 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Procedure StopMetering */
-
-/* 168 */ 0x0, /* 0 */
- 0x48, /* Old Flags: */
-/* 170 */ NdrFcLong( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x4 ), /* 4 */
-/* 176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 178 */ 0x30, /* FC_BIND_CONTEXT */
- 0x40, /* Ctxt flags: in, */
-/* 180 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 182 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 184 */ NdrFcShort( 0x24 ), /* 36 */
-/* 186 */ NdrFcShort( 0x0 ), /* 0 */
-/* 188 */ 0x40, /* Oi2 Flags: has ext, */
- 0x1, /* 1 */
-/* 190 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter phContext */
-
-/* 200 */ NdrFcShort( 0x8 ), /* Flags: in, */
-/* 202 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 204 */ NdrFcShort( 0x12 ), /* Type Offset=18 */
-
- /* Procedure MeteringDataEvent */
-
-/* 206 */ 0x34, /* FC_CALLBACK_HANDLE */
- 0x48, /* Old Flags: */
-/* 208 */ NdrFcLong( 0x0 ), /* 0 */
-/* 212 */ NdrFcShort( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 216 */ NdrFcShort( 0x20 ), /* 32 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ 0x40, /* Oi2 Flags: has ext, */
- 0x2, /* 2 */
-/* 222 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 224 */ NdrFcShort( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter data */
-
-/* 232 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 234 */ NdrFcShort( 0x0 ), /* X64 Stack size/offset = 0 */
-/* 236 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- /* Parameter context */
-
-/* 238 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 240 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 242 */ 0xb, /* FC_HYPER */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const RpcInterface_MIDL_TYPE_FORMAT_STRING RpcInterface__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */ 0x30, /* FC_BIND_CONTEXT */
- 0xa0, /* Ctxt flags: via ptr, out, */
-/* 8 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 10 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 12 */ NdrFcShort( 0x2 ), /* Offset= 2 (14) */
-/* 14 */ 0x30, /* FC_BIND_CONTEXT */
- 0xe1, /* Ctxt flags: via ptr, in, out, can't be null */
-/* 16 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 18 */ 0x30, /* FC_BIND_CONTEXT */
- 0x41, /* Ctxt flags: in, can't be null */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const NDR_RUNDOWN RundownRoutines[] =
- {
- PCONTEXT_HANDLE_TYPE_rundown
- };
-
-
-static const unsigned short RpcInterface_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 74,
- 124,
- 168,
- };
-
-
-static const unsigned short _callbackRpcInterface_FormatStringOffsetTable[] =
- {
- 206
- };
-
-
-static const MIDL_STUB_DESC RpcInterface_StubDesc =
- {
- (void *)& RpcInterface___RpcServerInterface,
- MIDL_user_allocate,
- MIDL_user_free,
- 0,
- RundownRoutines,
- 0,
- 0,
- 0,
- RpcInterface__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x801026e, /* MIDL Version 8.1.622 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-static const RPC_DISPATCH_FUNCTION RpcInterface_table[] =
- {
- NdrServerCall2,
- NdrServerCall2,
- NdrServerCall2,
- NdrServerCall2,
- NdrServerCall2,
- 0
- };
-static const RPC_DISPATCH_TABLE RpcInterface_v1_0_DispatchTable =
- {
- 5,
- (RPC_DISPATCH_FUNCTION*)RpcInterface_table
- };
-
-static const SERVER_ROUTINE RpcInterface_ServerRoutineTable[] =
- {
- (SERVER_ROUTINE)RemoteOpen,
- (SERVER_ROUTINE)RemoteClose,
- (SERVER_ROUTINE)StartMetering,
- (SERVER_ROUTINE)SetSamplePeriod,
- (SERVER_ROUTINE)StopMetering,
- };
-
-static const MIDL_SERVER_INFO RpcInterface_ServerInfo =
- {
- &RpcInterface_StubDesc,
- RpcInterface_ServerRoutineTable,
- RpcInterface__MIDL_ProcFormatString.Format,
- RpcInterface_FormatStringOffsetTable,
- 0,
- 0,
- 0,
- 0};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.cpp b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.cpp
deleted file mode 100644
index a808cf83..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-#include "SampleConfiguration.h"
-
-using namespace SDKTemplate;
-
-Platform::Array<Scenario>^ MainPage::scenariosInner = ref new Platform::Array<Scenario>
-{
- { "Connect to an NT Service", "SDKTemplate.MeteringData" },
-};
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.h b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.h
deleted file mode 100644
index 22581275..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/SampleConfiguration.h
+++ /dev/null
@@ -1,47 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-#include "pch.h"
-
-namespace SDKTemplate
-{
- value struct Scenario;
-
- partial ref class MainPage
- {
- internal:
- static property Platform::String^ FEATURE_NAME
- {
- Platform::String^ get()
- {
- return "Custom Capability C++ sample";
- }
- }
-
- static property Platform::Array<Scenario>^ scenarios
- {
- Platform::Array<Scenario>^ get()
- {
- return scenariosInner;
- }
- }
-
- private:
- static Platform::Array<Scenario>^ scenariosInner;
- };
-
- public value struct Scenario
- {
- Platform::String^ Title;
- Platform::String^ ClassName;
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml
deleted file mode 100644
index 0636f74d..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
--->
-<Page
- x:Class="SDKTemplate.MeteringData"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d">
-
- <ScrollViewer Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Padding="12,10,12,12">
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="*"/>
- </Grid.RowDefinitions>
- <StackPanel Margin="0,0,0,10">
- <TextBlock Text="Description:" Style="{StaticResource SampleHeaderTextStyle}"/>
- <TextBlock Style="{StaticResource ScenarioDescriptionTextStyle}" TextWrapping="Wrap">
- This scenario demonstrates RPC communication between an app and an NT service. For demonstration purposes, the service reads data from an imaginary device.
- </TextBlock>
- <StackPanel BorderThickness="2" BorderBrush="{ThemeResource ButtonBorderThemeBrush}" Margin="0,10,0,0" Padding="5">
- <TextBlock TextWrapping="Wrap">
- <Run FontWeight="Bold" Text="Step 1: Choose a period at which the samples will be pushed from the NT service"/>
- </TextBlock>
- <TextBlock TextWrapping="Wrap" Margin="0,10,5,0">
- Sample Period (ms): <Run Text="{x:Bind SamplePeriodSlider.Value, Mode=OneWay}"/>
- </TextBlock>
- <Slider x:Name="SamplePeriodSlider" HorizontalAlignment="Left" Width="300" IsEnabled="{x:Bind ViewModel.SliderEnabled, Mode=OneWay}" VerticalAlignment="Top" Minimum="1" Maximum="1000" ValueChanged="slider_ValueChanged" FontSize="20" Value="{x:Bind ViewModel.SliderValue, Mode=OneWay}"/>
- </StackPanel>
- <StackPanel BorderThickness="2" BorderBrush="{ThemeResource ButtonBorderThemeBrush}" Margin="0,10,0,0" Padding="5">
- <TextBlock TextWrapping="Wrap">
- <Run FontWeight="Bold" Text="Step 2: Click start to receive samples from the NT service"/>
- </TextBlock>
- <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
- <Button IsEnabled="{x:Bind ViewModel.StartButtonEnabled, Mode=OneWay}" Content="Start" Click="button_Click_StartMetering"/>
- <Button IsEnabled="{x:Bind ViewModel.StopButtonEnabled, Mode=OneWay}" Content="Stop" Click="button_Click_StopMetering" Margin="10,0,0,0"/>
- </StackPanel>
- </StackPanel>
- <StackPanel BorderThickness="2" BorderBrush="{ThemeResource ButtonBorderThemeBrush}" Margin="0,10,0,0" Padding="5">
- <TextBlock TextWrapping="Wrap">
- <Run FontWeight="Bold" Text="Step 3: Observe the expected and actual incoming sample rate"/>
- </TextBlock>
- <TextBlock Margin="0,10,0,0">
- Expected Sample Rate: <Run Text="{x:Bind ViewModel.ExpectedRpcCallbackRate, Mode=OneWay}"/>
- </TextBlock>
- <TextBlock Margin="0,10,0,0">
- Actual Sample Rate: <Run Text="{x:Bind ViewModel.ActualRpcCallbackRate, Mode=OneWay}"/>
- </TextBlock>
- </StackPanel>
- <TextBlock FontWeight="Bold" Margin="0,10,0,0" Text="Samples:"/>
- </StackPanel>
- <ScrollViewer Grid.Row="2" HorizontalAlignment="Stretch" Margin="0,10,0,0" VerticalAlignment="Stretch">
- <TextBox Height="400" IsReadOnly="true" HorizontalAlignment="Stretch" Text="{x:Bind ViewModel.SampleMessage, Mode=OneWay}" BorderThickness="0"/>
- </ScrollViewer>
- </Grid>
- </ScrollViewer>
-</Page>
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.cpp b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.cpp
deleted file mode 100644
index 3a9e1f48..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "Scenario1_MeteringData.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-
-MeteringData::MeteringData()
-{
- InitializeComponent();
- ViewModel = ref new ServiceViewModel();
-}
-
-void SDKTemplate::MeteringData::button_Click_StartMetering(Object^ sender, RoutedEventArgs^ e)
-{
- ViewModel->StartMetering((int)SamplePeriodSlider->Value);
-}
-
-void SDKTemplate::MeteringData::button_Click_StopMetering(Object^ sender, RoutedEventArgs^ e)
-{
- ViewModel->StopMetering();
-}
-
-void SDKTemplate::MeteringData::slider_ValueChanged(Object^ sender, RangeBaseValueChangedEventArgs^ e)
-{
- // Ignore slider value changes prior to ViewModel initialization.
- if (ViewModel != nullptr)
- {
- // Update the sample period in response to slider change.
- ViewModel->SetSamplePeriod((int)SamplePeriodSlider->Value);
- }
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.h b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.h
deleted file mode 100644
index 79faa4f3..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/Scenario1_MeteringData.xaml.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-
-#include "Scenario1_MeteringData.g.h"
-#include "ServiceViewModel.h"
-
-namespace SDKTemplate
-{
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class MeteringData sealed
- {
- public:
- MeteringData();
- property ServiceViewModel^ ViewModel;
-
- private:
- void button_Click_StartMetering(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void button_Click_StopMetering(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void slider_ValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e);
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.cpp b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.cpp
deleted file mode 100644
index 9f9674c4..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-#include "pch.h"
-#include "ServiceViewModel.h"
-#include "MainPage.xaml.h"
-
-using namespace Concurrency;
-using namespace Platform;
-using namespace SDKTemplate;
-using namespace Windows::System::Threading;
-using namespace Windows::UI::Xaml::Data;
-
-ServiceViewModel::ServiceViewModel()
-{
- // Set default rate
- samplePeriod = 100;
-
- // Initialize UI state
- startButtonEnabled = true;
- stopButtonEnabled = false;
- sliderEnabled = true;
- sliderValue = samplePeriod;
- actualRpcCallbackRate = "0";
- expectedRpcCallbackRate = "0";
-
- meteringOn = false;
-
- // Get the dispatcher for notifying property change
- dispatcher = Windows::UI::Core::CoreWindow::GetForCurrentThread()->Dispatcher;
-
- sampleArray = ref new Platform::Array<__int64>(1000);
-}
-
-//
-// if errCode represents an error, then display a message and return true.
-//
-inline bool ServiceViewModel::NotifyIfAnyError(__int64 errCode)
-{
- if (errCode != 0)
- {
- meteringOn = false;
- NotifyStatusMessage("Error occured while communicating with RPC server: " + errCode.ToString(), NotifyType::ErrorMessage);
-
- // Reset button state
- StartButtonEnabled = true;
- StopButtonEnabled = false;
- return true;
- }
- return false;
-}
-
-// Bindable properties
-#pragma region BindableProperties
-
-String^ ServiceViewModel::ExpectedRpcCallbackRate::get() { return expectedRpcCallbackRate; }
-void ServiceViewModel::ExpectedRpcCallbackRate::set(String^ value)
-{
- if (expectedRpcCallbackRate != value)
- {
- expectedRpcCallbackRate = value;
- NotifyPropertyChanged("ExpectedRpcCallbackRate");
- }
-}
-
-String^ ServiceViewModel::ActualRpcCallbackRate::get() { return actualRpcCallbackRate; }
-void ServiceViewModel::ActualRpcCallbackRate::set(String^ value)
-{
- if (actualRpcCallbackRate != value)
- {
- actualRpcCallbackRate = value;
- NotifyPropertyChanged("ActualRpcCallbackRate");
- }
-}
-
-String^ ServiceViewModel::SampleMessage::get() { return sampleMessage; }
-void ServiceViewModel::SampleMessage::set(String^ value)
-{
- if (sampleMessage != value)
- {
- sampleMessage = value;
- NotifyPropertyChanged("SampleMessage");
- }
-}
-
-bool ServiceViewModel::StartButtonEnabled::get() { return startButtonEnabled; }
-void ServiceViewModel::StartButtonEnabled::set(bool value)
-{
- if (startButtonEnabled != value)
- {
- startButtonEnabled = value;
- NotifyPropertyChanged("StartButtonEnabled");
- }
-}
-
-bool ServiceViewModel::StopButtonEnabled::get() { return stopButtonEnabled; }
-void ServiceViewModel::StopButtonEnabled::set(bool value)
-{
- if (stopButtonEnabled != value)
- {
- stopButtonEnabled = value;
- NotifyPropertyChanged("StopButtonEnabled");
- }
-}
-
-bool ServiceViewModel::SliderEnabled::get() { return sliderEnabled; }
-void ServiceViewModel::SliderEnabled::set(bool value)
-{
- if (sliderEnabled != value)
- {
- sliderEnabled = value;
- NotifyPropertyChanged("SliderEnabled");
- }
-}
-
-double ServiceViewModel::SliderValue::get() { return sliderValue; }
-void ServiceViewModel::SliderValue::set(double value)
-{
- if (sliderValue != value)
- {
- sliderValue = value;
- NotifyPropertyChanged("SliderValue");
- }
-}
-#pragma endregion BindableProperties
-
-void SDKTemplate::ServiceViewModel::NotifyPropertyChanged(Platform::String^ prop)
-{
- if (dispatcher != nullptr)
- {
- dispatcher->RunAsync(
- Windows::UI::Core::CoreDispatcherPriority::Normal,
- ref new Windows::UI::Core::DispatchedHandler([this, prop]()
- {
- PropertyChangedEventArgs^ args =
- ref new PropertyChangedEventArgs(prop);
- PropertyChanged(this, args);
- }));
- }
- // else log error
-}
-
-//
-// Initializes rpcclient and metering
-//
-void ServiceViewModel::StartMetering(int sampleRate)
-{
- create_task([this, sampleRate]
- {
- SampleMessage = "";
- StartButtonEnabled = false;
- StopButtonEnabled = true;
- stopMeteringRequested = false;
-
- rpcclient = std::make_unique<RpcClient>();
- if (NotifyIfAnyError(rpcclient->Initialize())) return;
-
- meteringOn = true;
- sampleRefreshCount = 0;
- sampleArray[0] = 0;
-
- // Set the sample rate on server
- this->samplePeriod = sampleRate;
- __int64 retCode = rpcclient->SetSampleRate(sampleRate);
-
- FILETIME initialSystemTime;
- GetSystemTimeAsFileTime(&initialSystemTime);
- lastUpdateTime.LowPart = initialSystemTime.dwLowDateTime;
- lastUpdateTime.HighPart = initialSystemTime.dwHighDateTime;
-
- if (!NotifyIfAnyError(retCode))
- {
- // Set up worker for UI update.
- Windows::Foundation::TimeSpan span{ 100 * 10000 }; // 100ms refresh rate
-
- auto timerHandler = ref new TimerElapsedHandler([this](ThreadPoolTimer^)
- {
- __int64 meteringData = rpcclient->MeteringData;
-
- // If there is no new data, return
- if (sampleArray[0] == meteringData)
- {
- return;
- }
-
- // Arithmetic subtraction of time
- // https://msdn.microsoft.com/en-us/library/ms724950%28VS.85%29.aspx?f=255&MSPPError=-2147217396
- FILETIME currentSystemTime;
- ULARGE_INTEGER currentTimeUi;
- GetSystemTimeAsFileTime(&currentSystemTime);
- currentTimeUi.LowPart = currentSystemTime.dwLowDateTime;
- currentTimeUi.HighPart = currentSystemTime.dwHighDateTime;
-
- // Calculate number of samples received since last callback
- __int64 now = rpcclient->CallbackCount;
- __int64 diff = now - rpcDataCountOld;
- rpcDataCountOld = now;
-
- // Calculate incoming sample rate
- double rate = (double)diff*1E7 / (currentTimeUi.QuadPart - lastUpdateTime.QuadPart);
- ExpectedRpcCallbackRate = (1E3 / this->samplePeriod).ToString() + " /sec";
- lastUpdateTime = currentTimeUi;
-
- ActualRpcCallbackRate = rate.ToString() + " /sec";
-
- // Construct the sample data string
- String^ sampleMessage = meteringData + "\n";
- unsigned int length = sampleArray->Length;
- if (sampleRefreshCount < length)
- {
- ++sampleRefreshCount;
- length = sampleRefreshCount;
- }
-
- // Insert the new data point at the top of the array.
- // Old data falls off the end of the array.
- for (unsigned int i = 1; i < length; ++i)
- {
- sampleArray[i] = sampleArray[i - 1];
- sampleMessage += sampleArray[i] + "\n";
- }
- sampleArray[0] = meteringData;
-
- SampleMessage = sampleMessage;
- });
-
- ThreadPoolTimer^ periodicTimer = ThreadPoolTimer::CreatePeriodicTimer(timerHandler, span);
- NotifyStatusMessage("Metering start command sent successfully", NotifyType::StatusMessage);
- retCode = this->rpcclient->StartMeteringAndWaitForStop(sampleRate);
- meteringOn = false;
- periodicTimer->Cancel();
- if (!NotifyIfAnyError(retCode) && !stopMeteringRequested)
- {
- NotifyStatusMessage("Rpc server connection closed without stop metering being requested",
- NotifyType::ErrorMessage);
- StartButtonEnabled = true;
- StopButtonEnabled = false;
- }
- }
- });
-}
-
-//
-// Stop metering
-//
-void ServiceViewModel::StopMetering()
-{
- create_task([this]
- {
- StopButtonEnabled = false;
- SliderEnabled = false;
- stopMeteringRequested = true;
-
- __int64 retCode = this->rpcclient->StopMetering();
- if (!NotifyIfAnyError(retCode))
- {
- NotifyStatusMessage("Metering stop command sent successfully",
- NotifyType::StatusMessage);
- }
-
- SliderEnabled = true;
- StartButtonEnabled = true;
- });
-}
-
-//
-// Set sample period
-//
-void ServiceViewModel::SetSamplePeriod(int samplePeriod)
-{
- create_task([this, samplePeriod]
- {
- this->samplePeriod = samplePeriod;
- if (meteringOn)
- {
- _int64 retCode = rpcclient->SetSampleRate(samplePeriod);
- if (!NotifyIfAnyError(retCode))
- {
- NotifyStatusMessage(
- "Sample period set to: " + samplePeriod,
- NotifyType::StatusMessage);
- }
- }
- });
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.h b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.h
deleted file mode 100644
index c2fcad0c..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/ServiceViewModel.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#pragma once
-
-#include "RpcClient.h"
-#include <memory>
-
-namespace SDKTemplate
-{
- [Windows::UI::Xaml::Data::Bindable]
- public ref class ServiceViewModel sealed : Windows::UI::Xaml::Data::INotifyPropertyChanged
- {
- public:
- ServiceViewModel();
- void StartMetering(int sampleRate);
- void SetSamplePeriod(int rate);
- void StopMetering();
- property Platform::String^ ExpectedRpcCallbackRate
- {
- Platform::String^ get();
- void set(Platform::String^ value);
- }
- property Platform::String^ ActualRpcCallbackRate
- {
- Platform::String^ get();
- void set(Platform::String^ value);
- }
- property Platform::String^ SampleMessage
- {
- Platform::String^ get();
- void set(Platform::String^ value);
- }
- property bool StartButtonEnabled
- {
- bool get();
- void set(bool value);
- }
- property bool StopButtonEnabled
- {
- bool get();
- void set(bool value);
- }
- property bool SliderEnabled
- {
- bool get();
- void set(bool value);
- }
- property double SliderValue
- {
- double get();
- void set(double value);
- }
- virtual event Windows::UI::Xaml::Data::PropertyChangedEventHandler^ PropertyChanged;
-
- private:
- volatile bool meteringOn;
- Windows::UI::Core::ICoreDispatcher^ dispatcher;
- int samplePeriod;
- ULARGE_INTEGER lastUpdateTime;
- __int64 rpcDataCountOld = 0;
- unsigned int sampleRefreshCount = 0;
- std::unique_ptr<RpcClient> rpcclient;
- bool stopMeteringRequested;
- bool NotifyIfAnyError(__int64 errCode);
-
- // Variables backing UI bindings
- Platform::String^ sampleMessage;
- Platform::String^ expectedRpcCallbackRate;
- Platform::String^ actualRpcCallbackRate;
- bool startButtonEnabled;
- bool stopButtonEnabled;
- bool sliderEnabled;
- double sliderValue;
-
- void NotifyPropertyChanged(Platform::String^ prop);
-
- Platform::Array<__int64>^ sampleArray;
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.cpp b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.cpp
deleted file mode 100644
index b300c4c0..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-//
-// pch.cpp
-// Include the standard header and generate the precompiled header.
-//
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-
-#include <robuffer.h>
-#include <wrl\client.h>
-
-using namespace Microsoft::WRL;
-using namespace Windows::Storage::Streams;
-
-byte* GetArrayFromBuffer(Windows::Storage::Streams::IBuffer^ buffer)
-{
- ComPtr<IInspectable> base = reinterpret_cast<IInspectable*>(buffer);
- ComPtr<IBufferByteAccess> access;
-
- auto hr = base.As(&access);
-
- if (FAILED(hr))
- {
- throw Platform::Exception::CreateException(hr);
- }
-
- byte* data;
-
- hr = access->Buffer(&data);
-
- if (FAILED(hr))
- {
- throw Platform::Exception::CreateException(hr);
- }
-
- // The returned buffer is valid as long as the IBuffer passed in
- // remains valid.
- return data;
-}
-
-void NotifyStatusMessage(Platform::String^ message, SDKTemplate::NotifyType messageType)
-{
- SDKTemplate::MainPage::Current->Dispatcher->RunAsync(
- Windows::UI::Core::CoreDispatcherPriority::Normal,
- ref new Windows::UI::Core::DispatchedHandler(
- [message, messageType]() {
- SDKTemplate::MainPage::Current->NotifyUser(message, messageType);
- }));
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.h b/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.h
deleted file mode 100644
index 3cec6ca5..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/App/CustomCapability/cpp/pch.h
+++ /dev/null
@@ -1,27 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-//
-// pch.h
-// Header for standard system include files.
-//
-
-#pragma once
-
-#include <collection.h>
-#include <ppltasks.h>
-
-#include "App.xaml.h"
-#include "MainPage.xaml.h"
-
-byte* GetArrayFromBuffer(Windows::Storage::Streams::IBuffer^ buffer);
-
-void NotifyStatusMessage(Platform::String^ message, SDKTemplate::NotifyType messageType);
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.cpp b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.cpp
deleted file mode 100644
index 1abebcb3..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace Platform;
-using namespace Windows::ApplicationModel;
-using namespace Windows::ApplicationModel::Activation;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Interop;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
-
-// These placeholder functions are used if the sample does not
-// implement the corresponding methods. This allows us to simulate
-// C# partial methods in C++.
-
-static void Partial_Construct() { }
-
-/// <summary>
-/// Initializes the singleton application object. This is the first line of authored code
-/// executed, and as such is the logical equivalent of main() or WinMain().
-/// </summary>
-App::App()
-{
- InitializeComponent();
- Partial_Construct();
- Suspending += ref new Windows::UI::Xaml::SuspendingEventHandler(this, &SDKTemplate::App::OnSuspending);
-}
-
-/// <summary>
-/// Invoked when the application is launched normally by the end user. Other entry points
-/// will be used such as when the application is launched to open a specific file.
-/// </summary>
-/// <param name="e">Details about the launch request and process.</param>
-void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e)
-{
-#if _DEBUG
- // Show graphics profiling information while debugging.
- if (IsDebuggerPresent())
- {
- // Display the current frame rate counters
- DebugSettings->EnableFrameRateCounter = false;
- }
-#endif
-
- auto rootFrame = dynamic_cast<Frame^>(Window::Current->Content);
-
- // Do not repeat app initialization when the Window already has content,
- // just ensure that the window is active
- if (rootFrame == nullptr)
- {
- // Create a Frame to act as the navigation context and associate it with
- // a SuspensionManager key
- rootFrame = ref new Frame();
-
- // Set the default language
- rootFrame->Language = Windows::Globalization::ApplicationLanguages::Languages->GetAt(0);
-
- rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed);
-
- if (e->PreviousExecutionState == ApplicationExecutionState::Terminated)
- {
- // TODO: Restore the saved session state only when appropriate, scheduling the
- // final launch steps after the restore is complete
- }
-
- if (rootFrame->Content == nullptr)
- {
- // When the navigation stack isn't restored navigate to the first page,
- // configuring the new page by passing required information as a navigation
- // parameter
- rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);
- }
- // Place the frame in the current Window
- Window::Current->Content = rootFrame;
- // Ensure the current window is active
- Window::Current->Activate();
- }
- else
- {
- if (rootFrame->Content == nullptr)
- {
- // When the navigation stack isn't restored navigate to the first page,
- // configuring the new page by passing required information as a navigation
- // parameter
- rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);
- }
- // Ensure the current window is active
- Window::Current->Activate();
- }
-}
-
-/// <summary>
-/// Invoked when application execution is being suspended. Application state is saved
-/// without knowing whether the application will be terminated or resumed with the contents
-/// of memory still intact.
-/// </summary>
-/// <param name="sender">The source of the suspend request.</param>
-/// <param name="e">Details about the suspend request.</param>
-void App::OnSuspending(Object^ /* sender */, SuspendingEventArgs^ /* e */)
-{
- //TODO: Save application state and stop any background activity
-}
-
-
-/// <summary>
-/// Invoked when Navigation to a certain page fails
-/// </summary>
-/// <param name="sender">The Frame which failed navigation</param>
-/// <param name="e">Details about the navigation failure</param>
-void App::OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e)
-{
- throw ref new FailureException("Failed to load Page " + e->SourcePageType.Name);
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.h b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.h
deleted file mode 100644
index e7bd715a..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/App.xaml.h
+++ /dev/null
@@ -1,33 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-
-#include "App.g.h"
-
-namespace SDKTemplate
-{
- /// <summary>
- /// Provides application-specific behavior to supplement the default Application class.
- /// </summary>
- ref class App sealed
- {
- protected:
- virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override;
-
- internal:
- App();
-
- private:
- void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e);
- void OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e);
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/DeviceHelpers.h b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/DeviceHelpers.h
deleted file mode 100644
index c2fa82b2..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/DeviceHelpers.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-
-namespace SDKTemplate
-{
- namespace DeviceHelpers
- {
- // We use a DeviceWatcher instead of DeviceInformation.FindAllAsync because
- // the DeviceWatcher will let us see the devices as they are discovered,
- // whereas FindAllAsync returns results only after discovery is complete.
- //
- // The convertAsync functional is passed a device ID (Platform::String^) and returns a
- // Concurrency::task<Something^>.
- template<typename Converter>
- auto GetFirstDeviceAsync(Platform::String^ selector, Converter convertAsync)
- -> decltype(convertAsync(nullptr))
- {
- using T = typename decltype(convertAsync(nullptr))::result_type;
- Concurrency::task_completion_event<T> completionEvent;
- auto pendingTasks = std::make_shared<std::vector<Concurrency::task<void>>>();
- Windows::Devices::Enumeration::DeviceWatcher^ watcher = Windows::Devices::Enumeration::DeviceInformation::CreateWatcher(selector);
-
- watcher->Added += ref new Windows::Foundation::TypedEventHandler<Windows::Devices::Enumeration::DeviceWatcher^, Windows::Devices::Enumeration::DeviceInformation^>(
- [completionEvent, pendingTasks, convertAsync](Windows::Devices::Enumeration::DeviceWatcher^ sender, Windows::Devices::Enumeration::DeviceInformation^ device)
- {
- auto task = convertAsync(device->Id).then([completionEvent](T t)
- {
- if (t != nullptr)
- {
- completionEvent.set(t);
- }
- });
- pendingTasks->push_back(task);
- });
-
- watcher->EnumerationCompleted += ref new Windows::Foundation::TypedEventHandler<Windows::Devices::Enumeration::DeviceWatcher^, Platform::Object^>(
- [completionEvent, pendingTasks](Windows::Devices::Enumeration::DeviceWatcher^ sender, Platform::Object^ args)
- {
- // Wait for completion of all the tasks we created in our "Added" event handler.
- Concurrency::when_all(pendingTasks->begin(), pendingTasks->end()).then([completionEvent]()
- {
- // This sets the result to "nullptr" if no task was able to produce a device.
- completionEvent.set(nullptr);
- });
- });
-
- watcher->Start();
-
- // Wait for enumeration to complete or for a device to be found, whichever comes first.
- return Concurrency::create_task(completionEvent).then([watcher](T result)
- {
- watcher->Stop();
- return result;
- });
- }
- }
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml
deleted file mode 100644
index 5179f520..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
--->
-
-<Page
- x:Class="SDKTemplate.MainPage"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:SDKTemplate"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d">
-
- <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="*"/>
- </Grid.RowDefinitions>
- <SplitView x:Name="Splitter" IsPaneOpen="True" Grid.Row="1" DisplayMode="Inline">
- <SplitView.Pane>
- <RelativePanel Margin="10,0,0,0">
- <TextBlock x:Name="SampleTitle" Text="Sample Title Here" Style="{StaticResource SampleHeaderTextStyle}" TextWrapping="Wrap" Margin="0,10,0,0"/>
- <ListBox x:Name="ScenarioControl" SelectionChanged="ScenarioControl_SelectionChanged"
- SelectionMode="Single" HorizontalAlignment="Left" Background="Transparent" BorderThickness="0"
- VerticalAlignment="Top" RelativePanel.Below="SampleTitle" Margin="0,10,0,0" RelativePanel.Above="FooterPanel">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <TextBlock Text="{Binding Converter={StaticResource ScenarioConverter}}"/>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- <StackPanel x:Name="FooterPanel" Orientation="Vertical" RelativePanel.AlignBottomWithPanel="True">
- <Image Source="Assets/microsoft-sdk.png" AutomationProperties.Name="Microsoft Logo" Stretch="None" HorizontalAlignment="Left" Margin="10,0,0,0"/>
- <TextBlock x:Name="Copyright" Text="&#xA9; Microsoft Corporation. All rights reserved." Style="{StaticResource CopyrightTextStyle}"
- RelativePanel.Above="LinksPanel" Margin="10,10,0,0"
- TextWrapping="Wrap"/>
- <StackPanel x:Name="LinksPanel" Orientation="Horizontal" Margin="10,10,0,10">
- <HyperlinkButton Content="Trademarks" Tag="http://go.microsoft.com/fwlink/?LinkID=623755"
- Click="Footer_Click" FontSize="12" Style="{StaticResource HyperlinkStyle}" />
- <TextBlock Text="|" Style="{StaticResource SeparatorStyle}" VerticalAlignment="Center" />
- <HyperlinkButton x:Name="PrivacyLink" Content="Privacy" Tag="http://privacy.microsoft.com" Click="Footer_Click" FontSize="12" Style="{StaticResource HyperlinkStyle}"/>
- </StackPanel>
- </StackPanel>
- </RelativePanel>
- </SplitView.Pane>
- <RelativePanel>
- <Frame x:Name="ScenarioFrame" Margin="0,5,0,0" RelativePanel.AlignTopWithPanel="True" RelativePanel.Above="StatusPanel" RelativePanel.AlignRightWithPanel="True" RelativePanel.AlignLeftWithPanel="True"/>
- <StackPanel x:Name="StatusPanel" Orientation="Vertical" RelativePanel.AlignBottomWithPanel="True" RelativePanel.AlignRightWithPanel="True" RelativePanel.AlignLeftWithPanel="True">
- <TextBlock x:Name="StatusLabel" Margin="0,0,0,10" TextWrapping="Wrap" Text="Status:" />
- <Border x:Name="StatusBorder" Margin="0,0,0,0" Visibility="Visible" >
- <ScrollViewer VerticalScrollMode="Auto" VerticalScrollBarVisibility="Auto" MaxHeight="200">
- <TextBlock x:Name="StatusBlock" FontWeight="Bold"
- MaxWidth="{Binding ElementName=Splitter, Path=ActualWidth}" Margin="10,10,10,20" TextWrapping="Wrap" />
- </ScrollViewer>
- </Border>
- </StackPanel>
- </RelativePanel>
- </SplitView>
- <StackPanel x:Name="HeaderPanel" Orientation="Horizontal">
- <Border Background="{ThemeResource SystemControlBackgroundChromeMediumBrush}" Grid.Row="0">
- <ToggleButton Style="{StaticResource SymbolButton}" Click="Button_Click" VerticalAlignment="Top" Foreground="{ThemeResource ApplicationForegroundThemeBrush}">
- <ToggleButton.Content>
- <FontIcon x:Name="Hamburger" FontFamily="Segoe MDL2 Assets" Glyph="&#xE700;" Margin="0,10,0,0"/>
- </ToggleButton.Content>
- </ToggleButton>
- </Border>
- <Image x:Name="WindowsLogo" Stretch="None" Source="Assets/windows-sdk.png" Margin="0,15,0,0" />
- <TextBlock x:Name="Header" Text="Universal Windows Platform sample" Style="{StaticResource TagLineTextStyle}" Margin="0,15,0,0" />
- </StackPanel>
- </Grid>
-</Page>
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.cpp b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.cpp
deleted file mode 100644
index 24c12f68..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-
-using namespace SDKTemplate;
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::UI::Core;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-using namespace Windows::UI::Xaml::Interop;
-
-// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
-
-MainPage^ MainPage::Current = nullptr;
-
-MainPage::MainPage()
-{
- InitializeComponent();
- SampleTitle->Text = FEATURE_NAME;
-
- // This is a static public property that allows downstream pages to get a handle to the MainPage instance
- // in order to call methods that are in this class.
- MainPage::Current = this;
-}
-
-void MainPage::OnNavigatedTo(NavigationEventArgs^ e)
-{
- // Populate the ListBox with the scenarios as defined in SampleConfiguration.cpp.
- auto itemCollection = ref new Platform::Collections::Vector<Object^>();
- int i = 1;
- for (auto const& s : MainPage::Current->scenarios)
- {
- // Create a textBlock to hold the content and apply the ListItemTextStyle from Styles.xaml
- TextBlock^ textBlock = ref new TextBlock();
- ListBoxItem^ item = ref new ListBoxItem();
- auto style = App::Current->Resources->Lookup("ListItemTextStyle");
-
- textBlock->Text = (i++).ToString() + ") " + s.Title;
- textBlock->Style = safe_cast<Windows::UI::Xaml::Style ^>(style);
-
- item->Name = s.ClassName;
- item->Content = textBlock;
- itemCollection->Append(item);
- }
-
- // Set the newly created itemCollection as the ListBox ItemSource.
- ScenarioControl->ItemsSource = itemCollection;
- int startingScenarioIndex;
-
- if (Window::Current->Bounds.Width < 640)
- {
- startingScenarioIndex = -1;
- }
- else
- {
- startingScenarioIndex = 0;
- }
-
- ScenarioControl->SelectedIndex = startingScenarioIndex;
- ScenarioControl->ScrollIntoView(ScenarioControl->SelectedItem);
-}
-
-
-void MainPage::ScenarioControl_SelectionChanged(Object^ sender, SelectionChangedEventArgs^ e)
-{
- ListBox^ scenarioListBox = safe_cast<ListBox^>(sender); //as ListBox;
- ListBoxItem^ item = dynamic_cast<ListBoxItem^>(scenarioListBox->SelectedItem);
- if (item != nullptr)
- {
- // Clear the status block when changing scenarios
- NotifyUser("", NotifyType::StatusMessage);
-
- // Navigate to the selected scenario.
- TypeName scenarioType = { item->Name, TypeKind::Custom };
- ScenarioFrame->Navigate(scenarioType, this);
-
- if (Window::Current->Bounds.Width < 640)
- {
- Splitter->IsPaneOpen = false;
- }
- }
-}
-
-void MainPage::NotifyUser(String^ strMessage, NotifyType type)
-{
- if (Dispatcher->HasThreadAccess)
- {
- UpdateStatus(strMessage, type);
- }
- else
- {
- Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler([strMessage, type, this]()
- {
- UpdateStatus(strMessage, type);
- }));
- }
-}
-
-void MainPage::UpdateStatus(String^ strMessage, NotifyType type)
-{
- switch (type)
- {
- case NotifyType::StatusMessage:
- StatusBorder->Background = ref new SolidColorBrush(Windows::UI::Colors::Green);
- break;
- case NotifyType::ErrorMessage:
- StatusBorder->Background = ref new SolidColorBrush(Windows::UI::Colors::Red);
- break;
- default:
- break;
- }
-
- StatusBlock->Text = strMessage;
-
- // Collapse the StatusBlock if it has no text to conserve real estate.
- if (StatusBlock->Text != "")
- {
- StatusBorder->Visibility = Windows::UI::Xaml::Visibility::Visible;
- StatusPanel->Visibility = Windows::UI::Xaml::Visibility::Visible;
- }
- else
- {
- StatusBorder->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
- StatusPanel->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
- }
-}
-
-void MainPage::Footer_Click(Object^ sender, RoutedEventArgs^ e)
-{
- auto uri = ref new Uri((String^)((HyperlinkButton^)sender)->Tag);
- Windows::System::Launcher::LaunchUriAsync(uri);
-}
-
-void MainPage::Button_Click(Object^ sender, RoutedEventArgs^ e)
-{
- Splitter->IsPaneOpen = !Splitter->IsPaneOpen;
-} \ No newline at end of file
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.h b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.h
deleted file mode 100644
index e87e24f0..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/cpp/MainPage.xaml.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-
-#include "MainPage.g.h"
-#include "SampleConfiguration.h"
-
-namespace SDKTemplate
-{
- public enum class NotifyType
- {
- StatusMessage,
- ErrorMessage
- };
-
- /// <summary>
- /// An empty page that can be used on its own or navigated to within a Frame.
- /// </summary>
- public ref class MainPage sealed
- {
- public:
- MainPage();
-
- protected:
- virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
-
- private:
- void ScenarioControl_SelectionChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^ e);
- void Footer_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void UpdateStatus(Platform::String^ strMessage, NotifyType type);
-
- internal:
- static MainPage^ Current;
- void NotifyUser(Platform::String^ strMessage, NotifyType type);
- };
-}
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/Square310x310Logo.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/Square310x310Logo.png
deleted file mode 100644
index c96f294a..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/Square310x310Logo.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/microsoft-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/microsoft-sdk.png
deleted file mode 100644
index 380a0102..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/microsoft-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder-sdk.png
deleted file mode 100644
index 01b3138c..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder.png
deleted file mode 100644
index e2d83818..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/placeholder.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/smalltile-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/smalltile-sdk.png
deleted file mode 100644
index ba9a0cde..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/smalltile-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/splash-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/splash-sdk.png
deleted file mode 100644
index e00df02c..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/splash-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/squaretile-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/squaretile-sdk.png
deleted file mode 100644
index f97c34a9..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/squaretile-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/storelogo-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/storelogo-sdk.png
deleted file mode 100644
index 5c397dea..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/storelogo-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/tile-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/tile-sdk.png
deleted file mode 100644
index f72683f2..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/tile-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/windows-sdk.png b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/windows-sdk.png
deleted file mode 100644
index 67268021..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/media/windows-sdk.png
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/App.xaml b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/App.xaml
deleted file mode 100644
index 63e80b83..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/App.xaml
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
--->
-<Application
- x:Class="SDKTemplate.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:SDKTemplate"
- RequestedTheme="Dark">
-
- <Application.Resources>
- <!-- Application-specific resources -->
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
-
- <!--
- Styles that define common aspects of the platform look and feel
- Required by Visual Studio project and item templates
- -->
- <ResourceDictionary Source="/Styles/Styles.xaml"/>
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </Application.Resources>
-
-</Application>
diff --git a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/Styles.xaml b/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/Styles.xaml
deleted file mode 100644
index 50602ae5..00000000
--- a/general/WinHEC 2017 Lab/Toaster Support App/SharedContent/xaml/Styles.xaml
+++ /dev/null
@@ -1,536 +0,0 @@
-<!--
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
--->
-<ResourceDictionary
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:SDKTemplate">
-
- <Style x:Key="SymbolButton" TargetType="ToggleButton">
- <Setter Property="FontSize" Value="16" />
- <Setter Property="FontFamily" Value="{StaticResource SymbolThemeFontFamily}" />
- <Setter Property="MinHeight" Value="48" />
- <Setter Property="MinWidth" Value="48" />
- <Setter Property="Margin" Value="0,4,0,0" />
- <Setter Property="Padding" Value="0" />
- <Setter Property="HorizontalAlignment" Value="Left" />
- <Setter Property="VerticalAlignment" Value="Top" />
- <Setter Property="HorizontalContentAlignment" Value="Center" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" />
- <Setter Property="Content" Value="&#xE700;" />
- <Setter Property="AutomationProperties.Name" Value="Menu" />
- <Setter Property="UseSystemFocusVisuals" Value="True" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="ToggleButton">
- <Grid x:Name="LayoutRoot"
- Background="{TemplateBinding Background}">
- <VisualStateManager.VisualStateGroups>
- <VisualStateGroup x:Name="CommonStates">
- <VisualState x:Name="Normal" />
- <VisualState x:Name="PointerOver">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Pressed">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Disabled">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="(TextBlock.Foreground)">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseLowBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Checked"/>
- <VisualState x:Name="CheckedPointerOver">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="CheckedPressed">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="CheckedDisabled">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="(TextBlock.Foreground)">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseLowBrush}"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- </VisualStateManager.VisualStateGroups>
- <ContentPresenter x:Name="ContentPresenter"
- Content="{TemplateBinding Content}"
- Margin="{TemplateBinding Padding}"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- AutomationProperties.AccessibilityView="Raw" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
-
- <Style x:Key="BasicTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BodyTextBlockStyle}">
- <Setter Property="Margin" Value="0,0,0,12"/>
- </Style>
-
- <Style x:Key="TagLineTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BodyTextBlockStyle}">
- </Style>
-
- <Style x:Key="SampleHeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource TitleTextBlockStyle}">
- <Setter Property="FontSize" Value="28"/>
- </Style>
-
- <Style x:Key="ListItemTextStyle" TargetType="TextBlock" BasedOn="{StaticResource SubtitleTextBlockStyle}">
- <Setter Property="FontSize" Value="18"/>
- <Setter Property="Margin" Value="10,0,0,0"/>
- <Setter Property="Foreground" Value="{StaticResource SystemControlForegroundBaseHighBrush}"/>
- </Style>
-
- <Style x:Key="CopyrightTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaseTextBlockStyle}">
- <Setter Property="FontWeight" Value="Normal"/>
- </Style>
-
- <Style x:Key="ScenarioHeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource TitleTextBlockStyle}">
- </Style>
-
- <Style x:Key="ScenarioDescriptionTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BodyTextBlockStyle}">
- </Style>
-
- <Style x:Key="BaseMessageStyle" TargetType="TextBlock" BasedOn="{StaticResource BodyTextBlockStyle}">
- <Setter Property="Margin" Value="0,0,0,5"/>
- </Style>
-
- <Style x:Key="SeparatorStyle" TargetType="TextBlock" BasedOn="{StaticResource BaseTextBlockStyle}">
- <Setter Property="FontSize" Value="9"/>
- <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseMediumBrush}"/>
- </Style>
-
- <Style x:Key="HyperlinkStyle" TargetType="HyperlinkButton">
- <Setter Property="Padding" Value="1"/>
- <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseMediumBrush}"/>
- <Setter Property="FontSize" Value="12"/>
- </Style>
-
- <Style x:Key="NavMenuItemContainerStyle" TargetType="ListViewItem">
- <Setter Property="MinWidth" Value="{StaticResource SplitViewCompactPaneThemeLength}"/>
- <Setter Property="MinHeight" Value="48"/>
- <Setter Property="Padding" Value="0"/>
- <Setter Property="UseSystemFocusVisuals" Value="False" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="ListViewItem">
- <Grid x:Name="ContentBorder"
- HorizontalAlignment="Stretch"
- Control.IsTemplateFocusTarget="True"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- RenderTransformOrigin="0.5,0.5">
- <Grid.RenderTransform>
- <ScaleTransform x:Name="ContentBorderScale" />
- </Grid.RenderTransform>
- <VisualStateManager.VisualStateGroups>
- <VisualStateGroup x:Name="CommonStates">
- <VisualState x:Name="Normal">
- <Storyboard>
- <PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
- </Storyboard>
- </VisualState>
- <VisualState x:Name="PointerOver">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="BorderBackground"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderBackground" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Pressed">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="BorderBackground"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderBackground" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <PointerDownThemeAnimation TargetName="ContentPresenter" />
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Selected">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="BorderBackground"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <DoubleAnimation Storyboard.TargetName="SelectedPipe"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderBackground" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlForegroundAccentBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
- </Storyboard>
- </VisualState>
- <VisualState x:Name="PointerOverSelected">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="BorderBackground"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <DoubleAnimation Storyboard.TargetName="SelectedPipe"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderBackground" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlForegroundAccentBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
- </Storyboard>
- </VisualState>
- <VisualState x:Name="PressedSelected">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="BorderBackground"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <DoubleAnimation Storyboard.TargetName="SelectedPipe"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="1"/>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderBackground" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlForegroundAccentBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <PointerDownThemeAnimation TargetName="ContentPresenter" />
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="DisabledStates">
- <VisualState x:Name="Enabled"/>
- <VisualState x:Name="Disabled">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="ContentBorder"
- Storyboard.TargetProperty="Opacity"
- Duration="0"
- To="{ThemeResource ListViewItemDisabledThemeOpacity}"/>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="FocusStates">
- <VisualState x:Name="Unfocused"/>
- <VisualState x:Name="Focused">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- </VisualStateManager.VisualStateGroups>
- <Rectangle x:Name="BorderBackground"
- IsHitTestVisible="False"
- Fill="Transparent"
- Opacity="1"
- Control.IsTemplateFocusTarget="True" />
- <Rectangle x:Name="FocusBackground"
- IsHitTestVisible="False"
- Fill="Transparent"
- Opacity="1"
- Control.IsTemplateFocusTarget="True"/>
- <Rectangle x:Name="SelectedPipe"
- Opacity="0"
- Width="4"
- Height="24"
- Fill="{ThemeResource SystemControlForegroundAccentBrush}"
- VerticalAlignment="Center"
- HorizontalAlignment="Left"/>
- <ContentPresenter x:Name="ContentPresenter"
- ContentTransitions="{TemplateBinding ContentTransitions}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- Content="{TemplateBinding Content}"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Margin="16,0,0,0" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
-
- <!-- Default style for Windows.UI.Xaml.Controls.ListBoxItem -->
- <Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="TabNavigation" Value="Local" />
- <Setter Property="Padding" Value="8,10" />
- <Setter Property="HorizontalContentAlignment" Value="Left" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="ListBoxItem">
- <Border x:Name="LayoutRoot"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}">
- <VisualStateManager.VisualStateGroups>
- <VisualStateGroup x:Name="CommonStates">
- <VisualState x:Name="Normal" />
- <VisualState x:Name="PointerOver">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemPointerOverBackgroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemPointerOverForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Disabled">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemDisabledForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Pressed">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="PressedBackground"
- Storyboard.TargetProperty="Opacity"
- To="1"
- Duration="0" />
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemPressedForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="SelectionStates">
- <VisualState x:Name="Unselected" />
- <VisualState x:Name="Selected">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="InnerGrid"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedBackgroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="SelectedUnfocused">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="InnerGrid"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedBackgroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="SelectedDisabled">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="InnerGrid"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedDisabledBackgroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedDisabledForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="SelectedPointerOver">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="InnerGrid"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedPointerOverBackgroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="SelectedPressed">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="InnerGrid"
- Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedBackgroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
- Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListBoxItemSelectedForegroundThemeBrush}" />
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="FocusStates">
- <VisualState x:Name="Focused">
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="FocusVisualWhite"
- Storyboard.TargetProperty="Opacity"
- To="1"
- Duration="0" />
- <DoubleAnimation Storyboard.TargetName="FocusVisualBlack"
- Storyboard.TargetProperty="Opacity"
- To="1"
- Duration="0" />
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Unfocused" />
- <VisualState x:Name="PointerFocused" />
- </VisualStateGroup>
- </VisualStateManager.VisualStateGroups>
- <Grid x:Name="InnerGrid"
- Background="Transparent">
- <Rectangle x:Name="PressedBackground"
- Fill="{ThemeResource ListBoxItemPressedBackgroundThemeBrush}"
- Opacity="0" />
- <ContentPresenter x:Name="ContentPresenter"
- Content="{TemplateBinding Content}"
- ContentTransitions="{TemplateBinding ContentTransitions}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Margin="{TemplateBinding Padding}" />
- <Rectangle x:Name="FocusVisualWhite"
- Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}"
- StrokeEndLineCap="Square"
- StrokeDashArray="1,1"
- Opacity="0"
- StrokeDashOffset=".5" />
- <Rectangle x:Name="FocusVisualBlack"
- Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}"
- StrokeEndLineCap="Square"
- StrokeDashArray="1,1"
- Opacity="0"
- StrokeDashOffset="1.5" />
- </Grid>
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
-
- <Style x:Key="ScenarioListBoxStyle" TargetType="ListBox">
- <Setter Property="Foreground" Value="{ThemeResource ListBoxForegroundThemeBrush}"/>
- <Setter Property="Background" Value="Transparent"/>
- <Setter Property="BorderBrush" Value="Transparent"/>
- <Setter Property="BorderThickness" Value="{ThemeResource ListBoxBorderThemeThickness}"/>
- <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
- <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
- <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled"/>
- <Setter Property="ScrollViewer.IsHorizontalRailEnabled" Value="True"/>
- <Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled"/>
- <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="True"/>
- <Setter Property="ScrollViewer.ZoomMode" Value="Disabled"/>
- <Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="False"/>
- <Setter Property="ScrollViewer.BringIntoViewOnFocusChange" Value="True"/>
- <Setter Property="IsTabStop" Value="False"/>
- <Setter Property="TabNavigation" Value="Once"/>
- <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}"/>
- <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}"/>
- <Setter Property="ItemsPanel">
- <Setter.Value>
- <ItemsPanelTemplate>
- <VirtualizingStackPanel Background="Transparent"/>
- </ItemsPanelTemplate>
- </Setter.Value>
- </Setter>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="ListBox">
- <Border x:Name="LayoutRoot" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent">
- <VisualStateManager.VisualStateGroups>
- <VisualStateGroup x:Name="CommonStates">
- <VisualState x:Name="Normal"/>
- <VisualState x:Name="Disabled">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="LayoutRoot">
- <DiscreteObjectKeyFrame KeyTime="0" Value="Transparent"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="FocusStates">
- <VisualState x:Name="Focused">
- <Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="LayoutRoot">
- <DiscreteObjectKeyFrame KeyTime="0" Value="Transparent"/>
- </ObjectAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="Unfocused"/>
- </VisualStateGroup>
- </VisualStateManager.VisualStateGroups>
- <ScrollViewer x:Name="ScrollViewer" AutomationProperties.AccessibilityView="Raw" BringIntoViewOnFocusChange="{TemplateBinding ScrollViewer.BringIntoViewOnFocusChange}" HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}" IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}" Padding="{TemplateBinding Padding}" TabNavigation="{TemplateBinding TabNavigation}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}">
- <ItemsPresenter/>
- </ScrollViewer>
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
-
-</ResourceDictionary>
diff --git a/general/WinHEC 2017 Lab/WinHEC 2017 Lab.docx b/general/WinHEC 2017 Lab/WinHEC 2017 Lab.docx
deleted file mode 100644
index c91f2bb0..00000000
--- a/general/WinHEC 2017 Lab/WinHEC 2017 Lab.docx
+++ /dev/null
Binary files differ
diff --git a/general/WinHEC 2017 Lab/WinHEC 2017 Lab.zip b/general/WinHEC 2017 Lab/WinHEC 2017 Lab.zip
deleted file mode 100644
index 9e8727c9..00000000
--- a/general/WinHEC 2017 Lab/WinHEC 2017 Lab.zip
+++ /dev/null
Binary files differ