summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Mao <[email protected]>2019-02-28 13:38:53 -0800
committerWei Mao <[email protected]>2019-02-28 13:38:53 -0800
commit4afd27c7a8fb0721699f05a8544ff0a17547eee1 (patch)
tree3ee639804d34986810a593b561c8b59a92aecdaa
parent638243cd4283cbe4cc2c3cad460c361ceb01cad8 (diff)
Remove InstallWdf sample
-rw-r--r--general/installwdf/Install.cpp509
-rw-r--r--general/installwdf/InstallWdf.vcxproj214
-rw-r--r--general/installwdf/InstallWdf.vcxproj.Filters22
-rw-r--r--general/installwdf/README.md19
-rw-r--r--general/installwdf/general-installwdf.yml12
-rw-r--r--general/installwdf/installwdf.sln28
6 files changed, 0 insertions, 804 deletions
diff --git a/general/installwdf/Install.cpp b/general/installwdf/Install.cpp
deleted file mode 100644
index cd89e284..00000000
--- a/general/installwdf/Install.cpp
+++ /dev/null
@@ -1,509 +0,0 @@
-#include <Windows.h>
-#include <stdio.h>
-#include <strsafe.h>
-#include <wuerror.h>
-
-//
-// These defines control which packages need to be updated. In order to
-// to customize this for your drivers needs, edit needed packages to 1 and
-// unneeded packages to 0.
-//
-// If your UMDF driver uses USB functionality, you also need KMDF and WinUSB
-//
-#define INSTALL_KMDF (TRUE)
-#define INSTALL_WINUSB (TRUE)
-#define INSTALL_UMDF (TRUE)
-
-//
-// Reference strings that are used to build our MSU package name. These will
-// change between releases of the framework and will need to be updated
-//
-#define WINUSB_UPDATE_NAME L"WinUSB_1.9.msu"
-
-//
-// MSU names are of the format:
-// <kmdf|umdf>-<wdf major version>.<wdf minor version>-
-// Win-<windows major version>.<windows minor version>.msu
-//
-#define MSU_FORMAT_STRING L"%s-%d.%d-Win-%d.%d.msu"
-
-#define WUSA_EXE L"%windir%\\system32\\wusa.exe"
-
-#define WUSA_EXE_ARGUMENTS L"/quiet /norestart"
-
-#define WDF_MAJOR_VERSION 1
-#define WDF_MINOR_VERSION 11
-
-DWORD
-ApplyUpdate(
- PCWSTR MSUName
-)
-{
- DWORD error = ERROR_SUCCESS;
- size_t cmdLengthBytes;
- size_t applicationLengthBytes;
- BOOL ok;
- PROCESS_INFORMATION pInfo;
- STARTUPINFOW startInfo;
- PWCHAR applicationName = NULL;
- PWCHAR commandLine = NULL;
- HRESULT hr;
-
- ZeroMemory(&startInfo,sizeof(startInfo)) ;
- startInfo.cb = sizeof(STARTUPINFO) ;
-
- ZeroMemory(&pInfo,sizeof(pInfo));
- //
- // Check that the update package exists
- //
- error = GetFileAttributes(MSUName);
-
- if (error == INVALID_FILE_ATTRIBUTES) {
- error = GetLastError();
- wprintf(L"Error: Could not find update file %s; error %x\n", MSUName, error);
- goto exit;
- }
-
- //
- // Invoke wusa
- //
- applicationName = (PWCHAR) LocalAlloc(LPTR, (MAX_PATH + 1)*sizeof(WCHAR));
- if (applicationName == NULL) {
- error = ERROR_INSTALL_FAILURE;
- wprintf(L"Failed to allocate applicationName buffer\n");
- goto exit;
- }
-
- applicationName[0] = L'\0';
-
- applicationLengthBytes = ExpandEnvironmentStrings(WUSA_EXE,
- applicationName,
- MAX_PATH+1);
-
- if ((applicationLengthBytes == 0) ||
- (applicationLengthBytes > MAX_PATH+1)) {
- wprintf(L"Could not expland %s\n", WUSA_EXE);
- error = ERROR_INSTALL_FAILURE;
- goto exit;
- }
-
- applicationLengthBytes = sizeof(WCHAR) * applicationLengthBytes;
-
- hr = StringCbLength(MSUName,
- MAX_PATH * sizeof(WCHAR),
- &cmdLengthBytes);
-
- if (hr != S_OK) {
-
- error = ERROR_INSTALL_FAILURE;
- wprintf(L"StringCbLength failed MSUName, %x\n",
- hr);
- goto exit;
- }
- //
- // Add enough padding for 2 \". The size returned by sizeof() includes
- // the terminating L'\0'
- //
- cmdLengthBytes = applicationLengthBytes + cmdLengthBytes + sizeof(WUSA_EXE_ARGUMENTS) + 3*sizeof(WCHAR);
-
- commandLine = (PWCHAR) LocalAlloc(LPTR, cmdLengthBytes );
-
- if (commandLine == NULL) {
- wprintf(L"Failed to allocate applicationName buffer\n");
- error = ERROR_INSTALL_FAILURE;
- goto exit;
- }
-
- hr = StringCbPrintf(commandLine,
- cmdLengthBytes,
- L"%s \"%s\" %s",
- applicationName,
- MSUName,
- WUSA_EXE_ARGUMENTS);
- if (hr != S_OK) {
-
- error = ERROR_INSTALL_FAILURE;
- wprintf(L"StringCbPrintf failed for applicationParameters, %x\n",
- hr);
- goto exit;
- }
-
- wprintf(L"Invoking: %s\n", commandLine);
-
- ok = CreateProcess(applicationName, // name of executable module
- commandLine, // command line string
- NULL, // SD
- NULL, // SD
- TRUE, // handle inheritance option
- 0, // creation flags CREATE_NO_WINDOW
- NULL, // new environment block
- NULL, // current directory name
- &startInfo, // startup information
- &pInfo // process information
- );
-
- if (ok == FALSE) {
-
- error = GetLastError();
- wprintf(L"Create process failed : %x\n",
- error);
- goto exit;
-
- } else {
-
- //
- // Wait until child process exits.
- //
-
- error = WaitForSingleObject( pInfo.hProcess, INFINITE );
-
- if ( error != WAIT_OBJECT_0 ) {
- //
- // It can't hurt to add this
- //
- TerminateProcess(pInfo.hProcess, (UINT)-1);
- }
-
- GetExitCodeProcess(pInfo.hProcess, &error);
-
- //
- // The possible return values for wusa.exe are:
- // 1)ERROR_SUCCESS (0) : installation was successfull
- // 2)ERROR_SUCCESS_REBOOT_REQUIRED (3010) : installation was successful,
- // however a reboot is required, so that the binaries will be
- // loaded to memory
- // 3)S_FALSE (1) (Vista) OR WU_S_ALREADY_INSTALLED (240006) (Win7):
- // No action was taken (i.e. files were already installed)
- // 4)Everything else (e.g. ERROR_INSTALL_FAILURE) is an error
- //
-
- switch (error) {
- case S_FALSE:
- case WU_S_ALREADY_INSTALLED:
- wprintf(L"The package was already installed in the system\n");
- error = ERROR_SUCCESS;
- break;
- case ERROR_SUCCESS:
- wprintf(L"The package was installed successfully\n");
- break;
- case ERROR_SUCCESS_REBOOT_REQUIRED:
- wprintf(L"The package was installed successfully but requires a reboot\n");
- break;
- case ERROR_SERVICE_DISABLED:
- case WU_E_WU_DISABLED:
-
- //
- // If the "Windows Update" service is disabled, then wusa
- // returns ERROR_SERVICE_DISABLED
- //
-
- wprintf(L"The \"Windows Update\" service is disabled. It "
- L"has to be enabled for the installation to succeed."
- L"\n");
- break;
- default:
- wprintf(L"The update process returned error code :%x. ",
- error);
- wprintf(L"For additional information please look at the log "
- L"files %%windir%%\\windowsupdate.log and "
- L"%%windir%%\\Logs\\CBS\\CBS.log\n");
- break;
- }
-
- CloseHandle(pInfo.hProcess);
- CloseHandle(pInfo.hThread);
- }
-
-exit:
- if (commandLine != NULL) {
- LocalFree(commandLine);
- commandLine = NULL;
- }
-
- if (applicationName != NULL) {
- LocalFree(applicationName);
- applicationName = NULL;
- }
-
- return error;
-}
-
-BOOL
-PromptRestart()
-{
- HANDLE hToken; // handle to process token
- TOKEN_PRIVILEGES tkp; // pointer to token structure
- BOOL fResult; // system shutdown flag
-
- // Get the current process token handle so we can get shutdown
- // privilege.
-
- if (!OpenProcessToken(GetCurrentProcess(),
- TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
- return FALSE;
-
- // Get the LUID for shutdown privilege.
-
- LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
- &tkp.Privileges[0].Luid);
-
- tkp.PrivilegeCount = 1; // one privilege to set
- tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
-
- // Get shutdown privilege for this process.
-
- AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
- (PTOKEN_PRIVILEGES) NULL, 0);
-
- // Cannot test the return value of AdjustTokenPrivileges.
-
- if (GetLastError() != ERROR_SUCCESS) {
- return FALSE;
- }
-
- // Display the shutdown dialog box and start the countdown.
-
- #pragma prefast(suppress:28159, "Ignore the suggestion against system shutdown.")
- fResult = InitiateSystemShutdownEx(
- NULL, // shut down local computer
- NULL, // message for user
- 0, // time-out period, in seconds
- FALSE, // ask user to close apps
- TRUE, // reboot after shutdown
- SHTDN_REASON_FLAG_PLANNED // shutdown reason
- | SHTDN_REASON_MAJOR_SOFTWARE
- | SHTDN_REASON_MINOR_UPGRADE);
-
- // Disable shutdown privilege.
-
- tkp.Privileges[0].Attributes = 0;
- AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
- (PTOKEN_PRIVILEGES) NULL, 0);
-
- return fResult;
-
-}
-
-DWORD
-UpdateWdf(
- VOID
- )
-{
- BOOL ok;
- OSVERSIONINFO curOsvi;
- OSVERSIONINFOEX targetOsvi;
- DWORDLONG dwlConditionMask = 0;
- WCHAR MSUName[MAX_PATH];
- BOOL rebootNeeded = FALSE;
- DWORD error = ERROR_SUCCESS;
- HRESULT hr;
-
- //
- // Make sure updates are valid for this operating system.
- // Vista SP1/SP2; Win7 RTM
- // TODO: what happens on Vista RTM/SP3+/Win7 SP1+
- //
-
- ZeroMemory(&targetOsvi, sizeof(OSVERSIONINFOEX));
- dwlConditionMask = 0;
-
- targetOsvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
- targetOsvi.dwMajorVersion = 6;
- targetOsvi.dwMinorVersion = 0;
- targetOsvi.wServicePackMajor = 0;
-
- VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_LESS_EQUAL );
- VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, VER_LESS_EQUAL );
- VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMAJOR, VER_LESS_EQUAL );
-
- ok = VerifyVersionInfo( &targetOsvi,
- VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR,
- dwlConditionMask);
-
- if (ok) {
- wprintf(L"Error: Updates are not supported on OS before Vista or Vista RTM\n");
- error = ERROR_OLD_WIN_VERSION;
- goto exit;
- }
-
- //
- // No need to update on Win8+
- //
- ZeroMemory(&targetOsvi, sizeof(OSVERSIONINFOEX));
- dwlConditionMask = 0;
-
- targetOsvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
- targetOsvi.dwMajorVersion = 6;
- targetOsvi.dwMinorVersion = 2;
-
- VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL );
- VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, VER_GREATER_EQUAL );
-
- ok = VerifyVersionInfo( &targetOsvi,
- VER_MAJORVERSION | VER_MINORVERSION,
- dwlConditionMask);
-
- if (ok) {
- wprintf(L"Updates are not needed to Windows 8, they are already inbox\n");
- error = ERROR_SUCCESS;
- goto exit;
- }
-
- //
- // Create MSU name
- //
-
- ZeroMemory(&curOsvi, sizeof(OSVERSIONINFO));
- curOsvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-
-#pragma warning( push )
-#pragma warning( disable : 4996 ) // 'GetVersionEx': was declared deprecated
- ok = GetVersionEx(&curOsvi);
-
- if (ok == FALSE) {
-
- error = GetLastError();
- wprintf(L"GetVersionEx failed: %x\n", error);
- goto exit;
- }
-
- //
- // We want to apply the updates in a specific order. This is because UMDF
- // is potentially dependent on WinUSB. WinUSB is dependent on KMDF. If we
- // fail to apply an update, we want to make sure the machine is in a good
- // state. This we apply required framework updates first.
- // KMDF > WinUSB > UMDF
- //
-
-#if INSTALL_KMDF
- hr = StringCchPrintf(MSUName,
- MAX_PATH,
- MSU_FORMAT_STRING,
- L"kmdf",
- WDF_MAJOR_VERSION,
- WDF_MINOR_VERSION,
- curOsvi.dwMajorVersion,
- curOsvi.dwMinorVersion);
-
- if (hr != S_OK) {
- wprintf(L"StringCchPrintf for KMDF MSU failed: %x\n", hr);
- error = ERROR_INSTALL_FAILURE;
- goto exit;
- }
-
- error = ApplyUpdate(MSUName);
-
- if (error == ERROR_SUCCESS_REBOOT_REQUIRED) {
- rebootNeeded = TRUE;
- } else if (error != ERROR_SUCCESS) {
- goto exit;
- }
-#endif // INSTALL_KMDF
-#pragma warning( pop ) // 'GetVersionEx': was declared deprecated
-
-#if (INSTALL_WINUSB)
- //
- // WinUSB update only applies to Vista
- //
-
- ZeroMemory(&targetOsvi, sizeof(OSVERSIONINFOEX));
- dwlConditionMask = 0;
-
- targetOsvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
- targetOsvi.dwMajorVersion = 6;
- targetOsvi.dwMinorVersion = 0;
-
- VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_EQUAL );
- VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, VER_EQUAL );
-
- ok = VerifyVersionInfo( &targetOsvi,
- VER_MAJORVERSION | VER_MINORVERSION,
- dwlConditionMask);
-
- if (ok) {
- error = ApplyUpdate(WINUSB_UPDATE_NAME);
-
- if (error == ERROR_SUCCESS_REBOOT_REQUIRED) {
- rebootNeeded = TRUE;
- } else if (error != ERROR_SUCCESS) {
- goto exit;
- }
- }
-#endif // INSTALL_WINUSB
-
-#if INSTALL_UMDF
- hr = StringCchPrintf(MSUName,
- MAX_PATH,
- MSU_FORMAT_STRING,
- L"umdf",
- WDF_MAJOR_VERSION,
- WDF_MINOR_VERSION,
- curOsvi.dwMajorVersion,
- curOsvi.dwMinorVersion);
-
- if (hr != S_OK) {
- wprintf(L"StringCchPrintf for UMDF MSU failed: %x\n", hr);
- error = ERROR_INSTALL_FAILURE;
- goto exit;
- }
-
- error = ApplyUpdate(MSUName);
-
- if (error == ERROR_SUCCESS_REBOOT_REQUIRED) {
- rebootNeeded = TRUE;
- } else if (error != ERROR_SUCCESS) {
- goto exit;
- }
-#endif // INSTALL_UMDF
-
- //
- // If we have made it to this point there have been no fatal errors. If
- // there were fatal errors, these should be caught and we would've jumped
- // to exit.
- //
- // We must account for the fact the latest update applied did not require
- // a reboot but earlier updates did.
- //
- if (rebootNeeded == TRUE) {
-
- error = ERROR_SUCCESS_REBOOT_REQUIRED;
- goto exit;
- }
-
- error = ERROR_SUCCESS;
-
-exit:
-
- return error;
-}
-
-int __cdecl
-wmain(
- _In_ int argc,
- _In_reads_(argc) char* argv[]
- )
-{
- DWORD updateStatus;
-
- UNREFERENCED_PARAMETER(argc);
- UNREFERENCED_PARAMETER(argv);
-
- updateStatus = UpdateWdf();
-
- if (updateStatus == ERROR_SUCCESS_REBOOT_REQUIRED) {
-
- int msgboxID = MessageBox(
- NULL,
- L"A restart is needed for these changes to take effect\nRestart now?",
- L"Restart Required",
- MB_ICONEXCLAMATION | MB_YESNO
- );
-
- if (msgboxID == IDYES)
- {
- PromptRestart();
- }
- }
-
- return updateStatus;
-}
diff --git a/general/installwdf/InstallWdf.vcxproj b/general/installwdf/InstallWdf.vcxproj
deleted file mode 100644
index 09611ba1..00000000
--- a/general/installwdf/InstallWdf.vcxproj
+++ /dev/null
@@ -1,214 +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>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{B0538915-496F-4D46-8E49-FAB50AA4AF07}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.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')" />
- </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')" />
- </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')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>InstallWdf</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>InstallWdf</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>InstallWdf</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>InstallWdf</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE;UNICODE</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);___TARGETNAME="""InstallWdf.PROGRAM"""</PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="install.cpp" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/general/installwdf/InstallWdf.vcxproj.Filters b/general/installwdf/InstallWdf.vcxproj.Filters
deleted file mode 100644
index c7a13da5..00000000
--- a/general/installwdf/InstallWdf.vcxproj.Filters
+++ /dev/null
@@ -1,22 +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">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{1B36F2E0-F9DB-46BA-AB8E-7221E3D7B878}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{3B1065A2-8683-4477-879B-CA856FFB6D19}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{0FB8D982-C6A0-48B5-95D9-5986C97339F1}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="install.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/general/installwdf/README.md b/general/installwdf/README.md
deleted file mode 100644
index df9e8445..00000000
--- a/general/installwdf/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-<!---
- name: WDF Installation Package
- platform: Tool
- language: cpp
- category: General WDF
- description: Demonstrates how to install WDF packages on a system.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617713
---->
-
-
-WDF Installation Package
-========================
-
-This sample contains example code that demonstrates how to install WDF packages on a system. This code can be used as-is to install the needed WDF components onto a user system. This code can also be reworked into an existing setup application to provide a better experience.
-
-
-Related technologies
---------------------
-[Installation Components for Framework-based Drivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544208)
diff --git a/general/installwdf/general-installwdf.yml b/general/installwdf/general-installwdf.yml
deleted file mode 100644
index b4e4a662..00000000
--- a/general/installwdf/general-installwdf.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-### YamlMime:Sample
-sample:
-- name: WDF Installation Package
- description: Demonstrates how to install WDF packages on a system.
- generateZip: true
- preserveParentHierarchy: true
- author: windows-driver-samples
- languages:
- - cpp
- technologies:
- - windows
- vssolution: /general/installwdf/installwdf.sln
diff --git a/general/installwdf/installwdf.sln b/general/installwdf/installwdf.sln
deleted file mode 100644
index 3b8e71ec..00000000
--- a/general/installwdf/installwdf.sln
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
-MinimumVisualStudioVersion = 12.0
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InstallWdf", "InstallWdf.vcxproj", "{D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- Debug|x64 = Debug|x64
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Debug|Win32.ActiveCfg = Debug|Win32
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Debug|Win32.Build.0 = Debug|Win32
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Release|Win32.ActiveCfg = Release|Win32
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Release|Win32.Build.0 = Release|Win32
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Debug|x64.ActiveCfg = Debug|x64
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Debug|x64.Build.0 = Debug|x64
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Release|x64.ActiveCfg = Release|x64
- {D72AC09E-BA68-4A50-A8C7-AFBD98FA9B76}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal