diff options
| author | Dave Wilson <[email protected]> | 2015-04-29 09:48:49 -0700 |
|---|---|---|
| committer | Dave Wilson <[email protected]> | 2015-04-29 10:47:29 -0700 |
| commit | d40232638faaab19de557e70a3ee938da7a35295 (patch) | |
| tree | 14e61c973745949af186b7940e3a53d25322f5de /general | |
| parent | 02e5b090a6131a7cc1b90f4a9373117c9e3c7088 (diff) | |
samples update for //build
Diffstat (limited to 'general')
152 files changed, 5017 insertions, 7400 deletions
diff --git a/general/PLX9x5x/PLX9x5x.sln b/general/PLX9x5x/PLX9x5x.sln index c54db7f0..cfe73a66 100644 --- a/general/PLX9x5x/PLX9x5x.sln +++ b/general/PLX9x5x/PLX9x5x.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{C3251AB4-8086-4862-985F-35302E40A027}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{78FB30BE-39D1-4BE2-A805-515DFEC13B00}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{954C16D2-23E1-4D8C-A040-5D4FB830D689}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{12DE6B87-7F07-4817-98D9-7F9CB6CDB946}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Pci9x5x", "sys\Pci9x5x.vcxproj", "{12A2C4C0-856A-49BE-9F54-30D4D040C3E9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Pci9x5x", "sys\Pci9x5x.vcxproj", "{116683DC-66A4-4386-93D3-32A935D96B37}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plx", "test\plx.vcxproj", "{BF101CB1-B147-40AC-8F84-13AC122A2D37}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plx", "test\plx.vcxproj", "{235EA7C6-B4BC-4762-B7C6-F519089D31B8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Debug|Win32.ActiveCfg = Debug|Win32 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Debug|Win32.Build.0 = Debug|Win32 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Release|Win32.ActiveCfg = Release|Win32 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Release|Win32.Build.0 = Release|Win32 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Debug|x64.ActiveCfg = Debug|x64 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Debug|x64.Build.0 = Debug|x64 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Release|x64.ActiveCfg = Release|x64 - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9}.Release|x64.Build.0 = Release|x64 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Debug|Win32.Build.0 = Debug|Win32 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Release|Win32.ActiveCfg = Release|Win32 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Release|Win32.Build.0 = Release|Win32 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Debug|x64.ActiveCfg = Debug|x64 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Debug|x64.Build.0 = Debug|x64 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Release|x64.ActiveCfg = Release|x64 - {BF101CB1-B147-40AC-8F84-13AC122A2D37}.Release|x64.Build.0 = Release|x64 + {116683DC-66A4-4386-93D3-32A935D96B37}.Debug|Win32.ActiveCfg = Debug|Win32 + {116683DC-66A4-4386-93D3-32A935D96B37}.Debug|Win32.Build.0 = Debug|Win32 + {116683DC-66A4-4386-93D3-32A935D96B37}.Release|Win32.ActiveCfg = Release|Win32 + {116683DC-66A4-4386-93D3-32A935D96B37}.Release|Win32.Build.0 = Release|Win32 + {116683DC-66A4-4386-93D3-32A935D96B37}.Debug|x64.ActiveCfg = Debug|x64 + {116683DC-66A4-4386-93D3-32A935D96B37}.Debug|x64.Build.0 = Debug|x64 + {116683DC-66A4-4386-93D3-32A935D96B37}.Release|x64.ActiveCfg = Release|x64 + {116683DC-66A4-4386-93D3-32A935D96B37}.Release|x64.Build.0 = Release|x64 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Debug|Win32.ActiveCfg = Debug|Win32 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Debug|Win32.Build.0 = Debug|Win32 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Release|Win32.ActiveCfg = Release|Win32 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Release|Win32.Build.0 = Release|Win32 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Debug|x64.ActiveCfg = Debug|x64 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Debug|x64.Build.0 = Debug|x64 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Release|x64.ActiveCfg = Release|x64 + {235EA7C6-B4BC-4762-B7C6-F519089D31B8}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {12A2C4C0-856A-49BE-9F54-30D4D040C3E9} = {C3251AB4-8086-4862-985F-35302E40A027} - {BF101CB1-B147-40AC-8F84-13AC122A2D37} = {954C16D2-23E1-4D8C-A040-5D4FB830D689} + {116683DC-66A4-4386-93D3-32A935D96B37} = {78FB30BE-39D1-4BE2-A805-515DFEC13B00} + {235EA7C6-B4BC-4762-B7C6-F519089D31B8} = {12DE6B87-7F07-4817-98D9-7F9CB6CDB946} EndGlobalSection EndGlobal diff --git a/general/PLX9x5x/sys/Pci9x5x.vcxproj b/general/PLX9x5x/sys/Pci9x5x.vcxproj index 7493d098..8922ce83 100644 --- a/general/PLX9x5x/sys/Pci9x5x.vcxproj +++ b/general/PLX9x5x/sys/Pci9x5x.vcxproj @@ -19,13 +19,13 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{12A2C4C0-856A-49BE-9F54-30D4D040C3E9}</ProjectGuid> + <ProjectGuid>{116683DC-66A4-4386-93D3-32A935D96B37}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR> <KMDF_VERSION_MINOR>9</KMDF_VERSION_MINOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{0DB7EDF4-ADCA-4623-A75A-2D53E0B95D89}</SampleGuid> + <SampleGuid>{BE8B0450-C794-43FB-8906-0F2F924845CC}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/PLX9x5x/sys/Pci9x5x.vcxproj.Filters b/general/PLX9x5x/sys/Pci9x5x.vcxproj.Filters index 1cf6e8b2..ece7bbbf 100644 --- a/general/PLX9x5x/sys/Pci9x5x.vcxproj.Filters +++ b/general/PLX9x5x/sys/Pci9x5x.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{CFE8A049-4352-4797-A933-02B2457B9660}</UniqueIdentifier> + <UniqueIdentifier>{FB26A925-4DA1-470E-9D80-9D5F544E0DDD}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{EA19AC8F-5C37-4641-AAFA-4924984AF0F7}</UniqueIdentifier> + <UniqueIdentifier>{140FC8D5-2FBF-4CA2-8DE1-1ABF15927EF7}</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>{D407D40B-9D6E-4731-85DE-808B502FF92E}</UniqueIdentifier> + <UniqueIdentifier>{2C3C95FB-9EC1-4B9A-B35E-A8534768915B}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{39E92CE4-17AE-463E-B0CB-746990AE72D1}</UniqueIdentifier> + <UniqueIdentifier>{D48F873E-36BD-45C1-A62F-4D9C8745F283}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/PLX9x5x/sys/pci9x5x.inx b/general/PLX9x5x/sys/pci9x5x.inx index 3904344b..43bd8dec 100644 --- a/general/PLX9x5x/sys/pci9x5x.inx +++ b/general/PLX9x5x/sys/pci9x5x.inx @@ -53,13 +53,6 @@ Pci9x5x.sys=1 [SourceDisksNames] 1=%DISK_NAME%, -; For Win2K -[MSFT] -; DisplayName Section DeviceId -; ----------- ------- -------- -%Pci9056.DRVDESC%= Pci9x5x_Inst, PCI\VEN_10b5&DEV_5601 -%Pci9656.DRVDESC%= Pci9x5x_Inst, PCI\VEN_10b5&DEV_9601 - ; For XP and later [MSFT.NT$ARCH$] ; DisplayName Section DeviceId diff --git a/general/PLX9x5x/test/plx.vcxproj b/general/PLX9x5x/test/plx.vcxproj index 3dcbd6f3..8634bd39 100644 --- a/general/PLX9x5x/test/plx.vcxproj +++ b/general/PLX9x5x/test/plx.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{BF101CB1-B147-40AC-8F84-13AC122A2D37}</ProjectGuid> + <ProjectGuid>{235EA7C6-B4BC-4762-B7C6-F519089D31B8}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{F475764B-7D1A-49E4-8FA0-B4153BB184E4}</SampleGuid> + <SampleGuid>{8C1C6BDF-C1D1-4007-A1EB-5D3354422309}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/PLX9x5x/test/plx.vcxproj.Filters b/general/PLX9x5x/test/plx.vcxproj.Filters index b74b5937..daeb5b79 100644 --- a/general/PLX9x5x/test/plx.vcxproj.Filters +++ b/general/PLX9x5x/test/plx.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{0B47F4CC-B263-41C6-86AF-E5D9448601A6}</UniqueIdentifier> + <UniqueIdentifier>{6D507CB2-9D2C-4ACA-9A1B-E26E912641A7}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{802D6182-3D0F-4A06-9D94-F6E77BA24FFD}</UniqueIdentifier> + <UniqueIdentifier>{A2D15E88-BFAF-4AC4-90C6-D28A212C15E6}</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>{F55A15F1-EBAB-45A9-AD99-9AA00FA8DA01}</UniqueIdentifier> + <UniqueIdentifier>{063653C5-4B37-4C7C-BB1B-92BFD43D344F}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/SystemDma/wdm/SystemDma.sln b/general/SystemDma/wdm/SystemDma.sln index 1df1c8b0..baa7294c 100644 --- a/general/SystemDma/wdm/SystemDma.sln +++ b/general/SystemDma/wdm/SystemDma.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{91E3EEC7-4EBF-4BE0-A947-5C7C164EF77D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{5C97DEF5-8A33-4405-AC60-96F0EC22ABEC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{6C0D6BEB-2BA2-4769-BD10-476085814CAE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{07DEA55E-F7CF-45F9-B169-834815EC1AFD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SystemDmaApp", "exe\SystemDmaApp.vcxproj", "{3B7F8119-C721-4322-894C-0D3B49A38FFB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SystemDmaApp", "exe\SystemDmaApp.vcxproj", "{23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDma", "sys\SDma.vcxproj", "{42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDma", "sys\SDma.vcxproj", "{3FE750B5-4CAD-4ECD-B443-12E16404FB11}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Debug|Win32.ActiveCfg = Debug|Win32 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Debug|Win32.Build.0 = Debug|Win32 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Release|Win32.ActiveCfg = Release|Win32 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Release|Win32.Build.0 = Release|Win32 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Debug|x64.ActiveCfg = Debug|x64 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Debug|x64.Build.0 = Debug|x64 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Release|x64.ActiveCfg = Release|x64 - {3B7F8119-C721-4322-894C-0D3B49A38FFB}.Release|x64.Build.0 = Release|x64 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Debug|Win32.ActiveCfg = Debug|Win32 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Debug|Win32.Build.0 = Debug|Win32 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Release|Win32.ActiveCfg = Release|Win32 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Release|Win32.Build.0 = Release|Win32 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Debug|x64.ActiveCfg = Debug|x64 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Debug|x64.Build.0 = Debug|x64 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Release|x64.ActiveCfg = Release|x64 - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}.Release|x64.Build.0 = Release|x64 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Debug|Win32.ActiveCfg = Debug|Win32 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Debug|Win32.Build.0 = Debug|Win32 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Release|Win32.ActiveCfg = Release|Win32 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Release|Win32.Build.0 = Release|Win32 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Debug|x64.ActiveCfg = Debug|x64 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Debug|x64.Build.0 = Debug|x64 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Release|x64.ActiveCfg = Release|x64 + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}.Release|x64.Build.0 = Release|x64 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Debug|Win32.ActiveCfg = Debug|Win32 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Debug|Win32.Build.0 = Debug|Win32 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Release|Win32.ActiveCfg = Release|Win32 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Release|Win32.Build.0 = Release|Win32 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Debug|x64.ActiveCfg = Debug|x64 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Debug|x64.Build.0 = Debug|x64 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Release|x64.ActiveCfg = Release|x64 + {3FE750B5-4CAD-4ECD-B443-12E16404FB11}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {3B7F8119-C721-4322-894C-0D3B49A38FFB} = {91E3EEC7-4EBF-4BE0-A947-5C7C164EF77D} - {42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE} = {6C0D6BEB-2BA2-4769-BD10-476085814CAE} + {23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F} = {5C97DEF5-8A33-4405-AC60-96F0EC22ABEC} + {3FE750B5-4CAD-4ECD-B443-12E16404FB11} = {07DEA55E-F7CF-45F9-B169-834815EC1AFD} EndGlobalSection EndGlobal diff --git a/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj b/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj index 25803eb1..7f966315 100644 --- a/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj +++ b/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{3B7F8119-C721-4322-894C-0D3B49A38FFB}</ProjectGuid> + <ProjectGuid>{23E9BB4A-11FD-4BC6-9CA7-0BE6A4188C1F}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{91239967-1454-4D74-8730-73372B2E0C94}</SampleGuid> + <SampleGuid>{24697793-CB49-4265-8991-872727B15BC3}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj.Filters b/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj.Filters index 6d4320c9..39258507 100644 --- a/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj.Filters +++ b/general/SystemDma/wdm/exe/SystemDmaApp.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{83BDC4AF-E38F-41A3-AE52-10470851D503}</UniqueIdentifier> + <UniqueIdentifier>{F3AEB441-C240-4DAC-894F-32249F376A28}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{3C82C17E-76AD-4F6A-A677-A4591BB22A00}</UniqueIdentifier> + <UniqueIdentifier>{8B83FC49-81EA-4DD1-BD8E-ED4F3858F05B}</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>{0D5328D1-97B0-4961-BF49-FB8CA3B73228}</UniqueIdentifier> + <UniqueIdentifier>{84E5DCD8-475D-4896-90D3-9F4398A303DB}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/SystemDma/wdm/sys/SDma.vcxproj b/general/SystemDma/wdm/sys/SDma.vcxproj index fb50d847..35bf5531 100644 --- a/general/SystemDma/wdm/sys/SDma.vcxproj +++ b/general/SystemDma/wdm/sys/SDma.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{42AC88BC-11CC-4FC0-B2EF-50B6CA8DDBCE}</ProjectGuid> + <ProjectGuid>{3FE750B5-4CAD-4ECD-B443-12E16404FB11}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{BB0473B0-289C-4FA0-9E81-C6EA8C79707D}</SampleGuid> + <SampleGuid>{19364197-D291-4DC9-B08E-DD477FD42358}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/SystemDma/wdm/sys/SDma.vcxproj.Filters b/general/SystemDma/wdm/sys/SDma.vcxproj.Filters index 259eadd5..7926613e 100644 --- a/general/SystemDma/wdm/sys/SDma.vcxproj.Filters +++ b/general/SystemDma/wdm/sys/SDma.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{7F208255-EDD4-4E3B-83EC-EBB1682D21C8}</UniqueIdentifier> + <UniqueIdentifier>{98D22585-F401-429B-BDB2-B5C6F436A255}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{B5677F44-0B89-43F0-91FB-984AB0713883}</UniqueIdentifier> + <UniqueIdentifier>{0B161BA1-4402-4873-9564-A47349B20298}</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>{82A0D909-8651-4045-8729-2AF8321AB2BB}</UniqueIdentifier> + <UniqueIdentifier>{B1F31E58-0465-4A38-BBB2-DF6F4EF598D8}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{7D13F81D-2971-47FA-9382-E4CF95208FA4}</UniqueIdentifier> + <UniqueIdentifier>{5C6DF922-F9E0-48E6-B4D9-B472082A0400}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/SystemDma/wdm/systemdma.htm b/general/SystemDma/wdm/systemdma.htm new file mode 100644 index 00000000..301dead7 --- /dev/null +++ b/general/SystemDma/wdm/systemdma.htm @@ -0,0 +1,741 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 12"> +<meta name=Originator content="Microsoft Word 12"> +<link rel=File-List href="sdma_files/filelist.xml"> +<!--[if gte mso 9]><xml> + <o:OfficeDocumentSettings> + <o:RemovePersonalInformation/> + <o:RemoveDateAndTime/> + </o:OfficeDocumentSettings> +</xml><![endif]--> +<link rel=themeData href="sdma_files/themedata.thmx"> +<link rel=colorSchemeMapping href="sdma_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SnapToGridInCell/> + <w:WrapTextWithPunct/> + <w:UseAsianBreakRules/> + <w:DontGrowAutofit/> + <w:SplitPgBreakAndParaMark/> + <w:DontVertAlignCellWithSp/> + <w:DontBreakConstrainedForcedTables/> + <w:DontVertAlignInTxbx/> + <w:Word11KerningPairs/> + <w:CachedColBalance/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-pitch:variable; + mso-font-signature:-1610611985 1107304683 0 0 159 0;} +@font-face + {font-family:Verdana; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-1593833729 1073750107 16 0 415 0;} +@font-face + {font-family:Consolas; + panose-1:2 11 6 9 2 2 4 3 2 4; + mso-font-charset:0; + mso-generic-font-family:modern; + mso-font-pitch:fixed; + mso-font-signature:-1610611985 1073750091 0 0 159 0;} +@font-face + {font-family:"MS Sans Serif"; + panose-1:0 0 0 0 0 0 0 0 0 0; + mso-font-alt:"Times New Roman"; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:auto; + mso-font-signature:0 0 0 0 0 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +h2 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:2; + font-size:18.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black; + font-weight:bold;} +h3 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 3 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:3; + font-size:13.5pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black; + font-weight:bold;} +h4 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 4 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:4; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black; + font-weight:bold;} +p.MsoHeader, li.MsoHeader, div.MsoHeader + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Header Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:center 3.25in right 6.5in; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +p.MsoFooter, li.MsoFooter, div.MsoFooter + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Footer Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:center 3.25in right 6.5in; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +a:link, span.MsoHyperlink + {mso-style-noshow:yes; + mso-style-priority:99; + color:blue; + text-decoration:underline; + text-underline:single;} +a:visited, span.MsoHyperlinkFollowed + {mso-style-noshow:yes; + mso-style-priority:99; + color:purple; + text-decoration:underline; + text-underline:single;} +p + {mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +pre + {mso-style-priority:99; + mso-style-link:"HTML Preformatted Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; + font-size:10.0pt; + font-family:"Courier New"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + mso-ansi-font-size:13.0pt; + mso-bidi-font-size:13.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.Heading3Char + {mso-style-name:"Heading 3 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 3"; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.Heading4Char + {mso-style-name:"Heading 4 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 4"; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold; + font-style:italic;} +span.HTMLPreformattedChar + {mso-style-name:"HTML Preformatted Char"; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"HTML Preformatted"; + font-family:Consolas; + mso-ascii-font-family:Consolas; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + mso-hansi-font-family:Consolas; + color:black;} +span.HeaderChar + {mso-style-name:"Header Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:Header; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +span.FooterChar + {mso-style-name:"Footer Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:Footer; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} + /* Page Definitions */ + @page + {mso-footnote-separator:url("sdma_files/header.htm") fs; + mso-footnote-continuation-separator:url("sdma_files/header.htm") fcs; + mso-endnote-separator:url("sdma_files/header.htm") es; + mso-endnote-continuation-separator:url("sdma_files/header.htm") ecs;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-even-header:url("sdma_files/header.htm") eh1; + mso-header:url("sdma_files/header.htm") h1; + mso-even-footer:url("sdma_files/header.htm") ef1; + mso-footer:url("sdma_files/header.htm") f1; + mso-first-header:url("sdma_files/header.htm") fh1; + mso-first-footer:url("sdma_files/header.htm") ff1; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-qformat:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--> +<meta name=Template content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot"> +<!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="4098"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white lang=EN-US link=blue vlink=purple style='tab-interval:.5in' +leftmargin=8> + +<div class=Section1> + +<h2><a name=MYSAMPLE><span style='font-family:"Verdana","sans-serif"; +mso-fareast-font-family:"Times New Roman"'>SDMA</span></a><span +style='font-family:"Verdana","sans-serif";mso-fareast-font-family:"Times New Roman"'> +<o:p></o:p></span></h2> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>SUMMARY<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +sample demonstrates the usage of V3 System DMA. It shows how a driver +could use a system DMA controller supported by Windows to +write data to a hardware location using DMA.<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>The sample +consists of a legacy device driver and a Win32 console mode test application. +The test application opens a handle to the device exposed by the driver and makes +a DeviceIoControl call to initiate the example system DMA. To understand how +the V3 system DMA calls are invoked please study SDmaWrite() in SDma.c.<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +driver will work on Windows 2000 and later operating systems.<o:p></o:p></span></p> + +<p><b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +sample driver is not a PnP driver. This is a minimal driver meant to +demonstrate an OS feature. Neither it nor its sample programs are intended for +use in a production environment. Rather, they are intended for educational +purposes and as a skeleton driver.</span></b><span style='font-size:10.0pt; +font-family:"Verdana","sans-serif"'><o:p></o:p></span></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>BUILDING THE SAMPLE<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Click the +Free Build Environment or Checked Build Environment icon under Development Kits +program group to set basic environment variables. <o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Change to +the directory containing the sample source code, such as CD Src\General\sdma\wdm. +<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Run build +-ceZ, or use the macro BLD. This command invokes the Microsoft make routines to +build the components. If the build succeeds, you will find the driver, +sdma.sys, and the test application, SystemDmaApp.exe, in the binary output +directory specified for the build environment. You can get the output path from +the buildxxx.log file (for example, buildfre_win7_arm.log). If the build fails +you can find errors and warnings in the buildxxx.err and buildxxx.wrn respectively, +where xxx is either chk or fre depending on the build environment. <o:p></o:p></span></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>TESTING<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>To test +this driver, copy the test app, SystemDmaApp.exe, and the driver to the same +directory, and run the application. The application will automatically load the +driver if it's not already loaded and interact with the driver. When you exit +the app, the driver will be stopped, unloaded and removed. Because no system DMA +controller exists for Windows which uses the advertised DRQ, the sample driver +will not proceed any further than failing to acquire a system DMA adapter.<o:p></o:p></span></p> + +<h3><span style='mso-fareast-font-family:"Times New Roman"'>CODE TOUR</span><span +style='font-family:"Verdana","sans-serif";mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<h4><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>File Manifest<o:p></o:p></span></h4> + +<pre><u>File<span style='mso-tab-count:2'>���������� </span>Description<o:p></o:p></u></pre><pre><o:p> </o:p></pre><pre>SystemDma.htm<span +style='mso-tab-count:1'>��</span>Sample Tour documentation for this sample (this file).<o:p></o:p></pre><pre>Sources<span +style='mso-tab-count:2'>������� </span>Generic file that lists source files and all the build options.<o:p></o:p></pre><pre>SDma.c<span +style='mso-tab-count:1'>� ����� </span>Source file of the sample driver.<o:p></o:p></pre><pre>SDma.h<span +style='mso-tab-count:1'>��� ��� </span>Header file for defining ioctls; included by driver and the test application.<o:p></o:p></pre><pre>Testapp.c<span +style='mso-tab-count:1'>����� </span>Source file of the test application. Contains routines to send one IOCTL to the driver.<o:p></o:p></pre><pre>Install.c<span +style='mso-tab-count:1'>����� </span>Source file of the test application. Contains routines to load and unload the driver.<o:p></o:p></pre><pre>SDma.rc<span +style='mso-tab-count:1'>��� �� </span>Resource file that specifies information such as file type, version, etc.<o:p></o:p></pre><pre>Makefile<span +style='mso-tab-count:1'>������ </span>This file merely indirects to the real makefile that is shared by all the driver components of the Windows NT DDK.<o:p></o:p></pre><pre> <o:p></o:p></pre> + +<p align=center style='text-align:center;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a +href="#top"><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Top +of page</span></a><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +<o:p></o:p></span></p> + +<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624 + style='width:6.5in;mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-padding-alt: + 0in 5.4pt 0in 5.4pt'> + <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes; + height:1.5pt'> + <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'></td> + </tr> +</table> + +<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span +style='font-size:7.5pt;font-family:"MS Sans Serif","serif"'>� 1998 Microsoft +Corporation</span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +<o:p></o:p></span></p> + +</div> + +</body> + +</html> diff --git a/general/cancel/cancel.htm b/general/cancel/cancel.htm new file mode 100644 index 00000000..cac03a7f --- /dev/null +++ b/general/cancel/cancel.htm @@ -0,0 +1,302 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 11"> +<meta name=Originator content="Microsoft Word 11"> +<link rel=File-List href="cancel_files/filelist.xml"> +<title>CANCEL</title> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:Zoom>BestFit</w:Zoom> + <w:SpellingState>Clean</w:SpellingState> + <w:GrammarState>Clean</w:GrammarState> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + </w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:Verdana; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:536871559 0 0 0 415 0;} +@font-face + {font-family:"MS Sans Serif"; + panose-1:0 0 0 0 0 0 0 0 0 0; + mso-font-alt:"Times New Roman"; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:auto; + mso-font-signature:0 0 0 0 0 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +h2 + {mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:2; + font-size:18.0pt; + font-family:"Times New Roman"; + font-weight:bold;} +h3 + {mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:3; + font-size:13.5pt; + font-family:"Times New Roman"; + font-weight:bold;} +h4 + {mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:4; + font-size:12.0pt; + font-family:"Times New Roman"; + font-weight:bold;} +a:link, span.MsoHyperlink + {color:blue; + text-decoration:underline; + text-underline:single;} +a:visited, span.MsoHyperlinkFollowed + {color:purple; + text-decoration:underline; + text-underline:single;} +p + {mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +pre + {margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; + font-size:10.0pt; + font-family:"Courier New"; + mso-fareast-font-family:"Times New Roman";} +span.SpellE + {mso-style-name:""; + mso-spl-e:yes;} +span.GramE + {mso-style-name:""; + mso-gram-e:yes;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman"; + mso-ansi-language:#0400; + mso-fareast-language:#0400; + mso-bidi-language:#0400;} +</style> +<![endif]--> +<meta name=Template content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot"> +<!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="3074"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white lang=EN-US link=blue vlink=purple style='tab-interval:.5in' +leftmargin=8> + +<div class=Section1> + +<h2><a name=MYSAMPLE><span style='font-family:Verdana'>CANCEL</span></a><span +style='font-family:Verdana'> <o:p></o:p></span></h2> + +<h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:Verdana'>This sample demonstrates +the use of <span class=GramE>new <span style='mso-spacerun:yes'>�</span>cancel</span>-safe +queue (<span class=SpellE>IoCsqInitialize</span>, <span class=SpellE>IoCsqInsertIrp</span>, +<span class=SpellE>IoCsqRemoveIrp</span>, <span class=SpellE>IoCsqRemoveNextIrp</span>) +APIs introduced on Windows XP for queuing <span class=SpellE>IRPs</span> in the +driver's internal device queue. By using these APIs, driver writers do not have +to worry about any IRP cancellation race condition issues. A common problem +with cancellation of <span class=SpellE>IRPs</span> in a driver is +synchronization between the cancel lock <span class=GramE>or</span> the <span +class=SpellE>InterlockedExchange</span> in the I/O Manager with the driver's +queue lock. These APIs abstract the cancel logic while allowing the driver to +implement the queue and associated synchronization. <o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>The sample is accompanied +by a simple multithreaded Win32 console application to stress-test the driver's +cancel and cleanup routines.<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>This driver is written +for <span class=GramE>an</span> hypothetical data acquisition device that +requires polling at a regular interval. The device has some settling period +between two reads. Upon user request the driver reads data and records the +time. When the next read request comes in, it checks the interval to see if +it's reading the device too soon. If so, it <span class=SpellE>pends</span> the +IRP and sleeps for a while and tries again. Upon arrival, <span class=SpellE>IRPs</span> +are queued in a cancel-safe queue and a semaphore is signaled. A polling thread +waiting indefinitely on the semaphore wakes up to the signal and processes <span +class=GramE>queued</span> <span class=SpellE>IRPs</span> sequentially. <o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>This sample is adapted +from the original cancel sample +(http://support.microsoft.com/support/kb/articles/Q188/2/76.asp) written for +NT4.0. <o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>The building and +installation instructions given here apply to Windows� 2000 and later operating systems.<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>This sample driver is not +a PnP driver. This is a minimal driver meant to demonstrate an OS feature. +Neither it nor its sample programs are intended for use in a production +environment. Rather, they are intended for educational purposes and as a +skeleton driver. <o:p></o:p></span></p> + +<h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:Verdana'>Click the Free Build +Environment or Checked Build Environment icon under Development Kits program +group to set basic environment variables. <o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>Change to the directory +containing the device source code, such as CD <span class=SpellE>Src</span>\General\Cancel. +<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:Verdana'>Run <b>build -<span +class=SpellE>ceZ</span>,</b> or use the macro <b>BLD</b>. This command invokes +the Microsoft make routines to build the components. If the build </span>s<span +style='font-size:10.0pt;font-family:Verdana'>ucceeds, you will find the driver, +<span class=SpellE>cancel.sys</span>, and the test application, canclapp.exe, +in the binary output directory specified for the build environment. You can get the output path from the buildxxx.log file. If it fails you can find errors and warnings in the <span class=SpellE>buildxxx.err</span> +and <span class=SpellE>buildxxx.err</span> respectively, where xxx is either <span +class=SpellE>chk</span> or <span class=SpellE>fre</span> depending on the build +environment. <o:p></o:p></span></p> + +<h3><span style='font-family:Verdana'>STARTIO IMPLEMENTATION<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:Verdana'>In the <span +class=SpellE>startio</span> directory is another version of the sample driver +that shows how to use <span class=GramE>the <span +style='mso-spacerun:yes'>�</span>cancel</span>-safe queues to implement IO +queuing functionality similar to the <span class=SpellE>IoStartPacket/IoStartNextPacket</span> +APIs. The same test application works with this driver as well.</span><span +style='font-family:Verdana'><o:p></o:p></span></p> + +<h3><span style='font-family:Verdana'>TESTING<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:Verdana'>To test this driver, run +Testapp.exe, a simple Win32 multithreaded console mode application. The driver +will be automatically loaded and started. When you exit the app, the driver +will stopped and removed.<o:p></o:p></span></p> + +<p><span class=SpellE><span style='font-size:10.0pt;font-family:Verdana'>Usage<span +class=GramE>:testapp</span></span></span><span style='font-size:10.0pt; +font-family:Verdana'> (<span class=SpellE>NumberOfThreads</span>)<o:p></o:p></span></p> + +<p><b><span style='font-size:10.0pt;font-family:Verdana'>Note</span></b><span +style='font-size:10.0pt;font-family:Verdana'>: <span class=SpellE>NumberOfThreads</span> +is limited to a maximum of 10 threads; the default value if run without the option +is 1. The main thread waits for user input. If you press Q, the application +exits gracefully; otherwise it exits the process abruptly forcing all the +threads to be terminated and all pending I/Os to be canceled. Other threads +perform I/O asynchronously in a loop. After every overlapped read, the thread +goes into an <span class=SpellE>alertable</span> sleep and wakes as soon as +completion routines is executed, when the read IRP gets completed by the +driver. You should run multiple instances of the application to stress test the +driver.<o:p></o:p></span></p> + +<h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3> + +<h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4> + +<pre><u>File<span style='mso-tab-count:2'>���������� </span>Description<o:p></o:p></u></pre><pre><o:p> </o:p></pre><pre><span +class=GramE>Cancel.htm<span style='mso-tab-count:1'>���� </span>Documentation for this sample (this file).</span></pre><pre><span +class=SpellE>Cancel.c</span><span style='mso-tab-count:1'>������ </span>Source <span +class=GramE>file</span> of the sample driver.</pre><pre><span class=GramE>Sources<span +style='mso-tab-count:2'>������� </span>Generic file that lists source files and all the build options.</span></pre><pre><span +class=SpellE>Testapp.c</span><span style='mso-tab-count:1'>����� </span>Source <span +class=GramE>file</span> of the test application.</pre><pre><span class=SpellE>Install.c</span><span +style='mso-tab-count:1'>����� </span>Contains functions to load/start/stop/remove the driver.</pre><pre><span +class=SpellE>Testapp.h</span><span style='mso-tab-count:1'>����� </span>Header <span +class=GramE>file</span> for common definitions and function prototypes.</pre><pre><span +class=SpellE>Cancel.rc</span><span style='mso-tab-count:1'>����� </span>Resource file that specify information such as file type, version, etc.</pre><pre><span +class=SpellE>Makefile</span><span style='mso-tab-count:1'>������ </span><span +class=GramE>This file</span> merely <span class=SpellE>indirects</span> to the real <span +class=SpellE>makefile</span> that is shared by all the driver components of the Windows NT DDK.</pre> + +<p align=center style='text-align:center'><a href="#top"><span +style='font-size:10.0pt;font-family:Verdana'>Top of page</span></a><span +style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p> + +<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624 + style='width:6.5in;mso-cellspacing:0in;mso-padding-alt:0in 5.4pt 0in 5.4pt'> + <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes; + height:1.5pt'> + <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'> + <p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p> + </td> + </tr> +</table> + +<p><span style='font-size:7.5pt;font-family:"MS Sans Serif"'>� 2004 Microsoft +Corporation</span><span style='font-size:10.0pt;font-family:Verdana'> <span +style='color:black'><o:p></o:p></span></span></p> + +</div> + +</body> + +</html> diff --git a/general/cancel/cancel.sln b/general/cancel/cancel.sln index a9836742..fe8e9757 100644 --- a/general/cancel/cancel.sln +++ b/general/cancel/cancel.sln @@ -3,17 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{DBD7C2B7-C00F-4FFE-84D4-B05886013873}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{FF154CE0-9DFD-405E-B895-7B7705DBB3BC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{0B6A483D-D5F5-4F95-96E7-281FD7EA600F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{A5E4BBE9-6842-4F12-91FD-1038D7FE8288}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Startio", "Startio", "{234DCAD4-F351-4964-9C3B-0B59C944B70D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Startio", "Startio", "{B061A5AB-4CE5-4B99-A993-BF1AA7FD9A7A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cancel", "sys\cancel.vcxproj", "{3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cancel", "sys\cancel.vcxproj", "{D9569E28-5AA8-422B-8909-3B52E3A9E0A2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "canclapp", "exe\canclapp.vcxproj", "{C8925B47-FB65-4E3E-89E4-2B45E3C10509}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "canclapp", "exe\canclapp.vcxproj", "{181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cancel", "startio\cancel.vcxproj", "{1392C861-BA6F-4423-8C33-A8C771BAF473}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cancel", "startio\cancel.vcxproj", "{9123CC18-82D4-477B-B20E-6EA2D454E046}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,37 +23,37 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Debug|Win32.ActiveCfg = Debug|Win32 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Debug|Win32.Build.0 = Debug|Win32 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Release|Win32.ActiveCfg = Release|Win32 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Release|Win32.Build.0 = Release|Win32 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Debug|x64.ActiveCfg = Debug|x64 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Debug|x64.Build.0 = Debug|x64 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Release|x64.ActiveCfg = Release|x64 - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}.Release|x64.Build.0 = Release|x64 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Debug|Win32.ActiveCfg = Debug|Win32 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Debug|Win32.Build.0 = Debug|Win32 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Release|Win32.ActiveCfg = Release|Win32 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Release|Win32.Build.0 = Release|Win32 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Debug|x64.ActiveCfg = Debug|x64 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Debug|x64.Build.0 = Debug|x64 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Release|x64.ActiveCfg = Release|x64 - {C8925B47-FB65-4E3E-89E4-2B45E3C10509}.Release|x64.Build.0 = Release|x64 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Debug|Win32.ActiveCfg = Debug|Win32 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Debug|Win32.Build.0 = Debug|Win32 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Release|Win32.ActiveCfg = Release|Win32 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Release|Win32.Build.0 = Release|Win32 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Debug|x64.ActiveCfg = Debug|x64 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Debug|x64.Build.0 = Debug|x64 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Release|x64.ActiveCfg = Release|x64 - {1392C861-BA6F-4423-8C33-A8C771BAF473}.Release|x64.Build.0 = Release|x64 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Debug|Win32.ActiveCfg = Debug|Win32 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Debug|Win32.Build.0 = Debug|Win32 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Release|Win32.ActiveCfg = Release|Win32 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Release|Win32.Build.0 = Release|Win32 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Debug|x64.ActiveCfg = Debug|x64 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Debug|x64.Build.0 = Debug|x64 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Release|x64.ActiveCfg = Release|x64 + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2}.Release|x64.Build.0 = Release|x64 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Debug|Win32.ActiveCfg = Debug|Win32 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Debug|Win32.Build.0 = Debug|Win32 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Release|Win32.ActiveCfg = Release|Win32 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Release|Win32.Build.0 = Release|Win32 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Debug|x64.ActiveCfg = Debug|x64 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Debug|x64.Build.0 = Debug|x64 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Release|x64.ActiveCfg = Release|x64 + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}.Release|x64.Build.0 = Release|x64 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Debug|Win32.ActiveCfg = Debug|Win32 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Debug|Win32.Build.0 = Debug|Win32 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Release|Win32.ActiveCfg = Release|Win32 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Release|Win32.Build.0 = Release|Win32 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Debug|x64.ActiveCfg = Debug|x64 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Debug|x64.Build.0 = Debug|x64 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Release|x64.ActiveCfg = Release|x64 + {9123CC18-82D4-477B-B20E-6EA2D454E046}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {3363DCA3-7873-4ECB-BA98-F243C2E8FDA0} = {DBD7C2B7-C00F-4FFE-84D4-B05886013873} - {C8925B47-FB65-4E3E-89E4-2B45E3C10509} = {0B6A483D-D5F5-4F95-96E7-281FD7EA600F} - {1392C861-BA6F-4423-8C33-A8C771BAF473} = {234DCAD4-F351-4964-9C3B-0B59C944B70D} + {D9569E28-5AA8-422B-8909-3B52E3A9E0A2} = {FF154CE0-9DFD-405E-B895-7B7705DBB3BC} + {181B9B9A-1D10-4DF8-8864-2F2CD58AAACD} = {A5E4BBE9-6842-4F12-91FD-1038D7FE8288} + {9123CC18-82D4-477B-B20E-6EA2D454E046} = {B061A5AB-4CE5-4B99-A993-BF1AA7FD9A7A} EndGlobalSection EndGlobal diff --git a/general/cancel/exe/canclapp.vcxproj b/general/cancel/exe/canclapp.vcxproj index 63333b9c..0271461a 100644 --- a/general/cancel/exe/canclapp.vcxproj +++ b/general/cancel/exe/canclapp.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{C8925B47-FB65-4E3E-89E4-2B45E3C10509}</ProjectGuid> + <ProjectGuid>{181B9B9A-1D10-4DF8-8864-2F2CD58AAACD}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{1EB28B67-703E-42CB-AEEF-4871909ACBE4}</SampleGuid> + <SampleGuid>{BEFC1AEC-4158-4133-B070-197A3BCB3324}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/cancel/exe/canclapp.vcxproj.Filters b/general/cancel/exe/canclapp.vcxproj.Filters index fa02af34..630a370d 100644 --- a/general/cancel/exe/canclapp.vcxproj.Filters +++ b/general/cancel/exe/canclapp.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{8E80D4A1-56AB-4705-840F-3971E3C35CC4}</UniqueIdentifier> + <UniqueIdentifier>{A9970D5F-6A08-4685-BCB3-BC7260733555}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{F05A42DC-3C1C-4B0B-BB8A-980D8BDD8C12}</UniqueIdentifier> + <UniqueIdentifier>{751D0E38-6054-404C-9749-DE882ACAACF4}</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>{DB77EDC2-6072-41D9-B58F-42B9EECC5702}</UniqueIdentifier> + <UniqueIdentifier>{D2D88B2C-9B81-4181-8BF9-3F8E289E770D}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/cancel/startio/cancel.vcxproj b/general/cancel/startio/cancel.vcxproj index 8cdbf0ce..da4a61db 100644 --- a/general/cancel/startio/cancel.vcxproj +++ b/general/cancel/startio/cancel.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{1392C861-BA6F-4423-8C33-A8C771BAF473}</ProjectGuid> + <ProjectGuid>{9123CC18-82D4-477B-B20E-6EA2D454E046}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{2FA77D27-524D-4C63-81CD-62E054676D96}</SampleGuid> + <SampleGuid>{64C91FEC-568F-4B05-A91E-F6B96212BA27}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/cancel/startio/cancel.vcxproj.Filters b/general/cancel/startio/cancel.vcxproj.Filters index 015f96b7..7184abaf 100644 --- a/general/cancel/startio/cancel.vcxproj.Filters +++ b/general/cancel/startio/cancel.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{DBC52094-6726-43E4-8D3A-1E52EB8592CA}</UniqueIdentifier> + <UniqueIdentifier>{2B25101E-8842-4A6A-8AFE-E6EE3BB048FD}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{12A618AD-2EC7-4EF1-B1F8-F14652DE50D0}</UniqueIdentifier> + <UniqueIdentifier>{274A07A9-D5CD-40E9-A368-7B2405C97AAF}</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>{01F4B40C-7AC7-4573-A236-526D211FE249}</UniqueIdentifier> + <UniqueIdentifier>{46F2B62E-AC82-4992-8A9F-472BA3B4912D}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{C63E5134-5856-4331-9141-C85F75D697B9}</UniqueIdentifier> + <UniqueIdentifier>{D0E05008-9870-4B85-88BD-6F86F9D5E37F}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/cancel/sys/cancel.vcxproj b/general/cancel/sys/cancel.vcxproj index 6227a13d..8ec42428 100644 --- a/general/cancel/sys/cancel.vcxproj +++ b/general/cancel/sys/cancel.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{3363DCA3-7873-4ECB-BA98-F243C2E8FDA0}</ProjectGuid> + <ProjectGuid>{D9569E28-5AA8-422B-8909-3B52E3A9E0A2}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{3003AE7E-3AA2-458A-B349-64E4A921061B}</SampleGuid> + <SampleGuid>{DA39B940-2FD0-474D-86EE-DF9796879A51}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/cancel/sys/cancel.vcxproj.Filters b/general/cancel/sys/cancel.vcxproj.Filters index bdf2e015..5e786985 100644 --- a/general/cancel/sys/cancel.vcxproj.Filters +++ b/general/cancel/sys/cancel.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{6BC3B1BF-F875-48B1-9E49-07CB6AE2FED1}</UniqueIdentifier> + <UniqueIdentifier>{3711485D-9620-4878-846C-DE26288C24AA}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{646CC6F7-384E-44CB-B55D-2CF7427232F2}</UniqueIdentifier> + <UniqueIdentifier>{02DB91A6-1A11-484A-A01E-212829E426DE}</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>{A3ADD9F6-E06C-4974-AD86-F265759792E2}</UniqueIdentifier> + <UniqueIdentifier>{643643F8-399E-478C-9A56-C0948E4C4562}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{4BC75BD1-ADE8-40F5-91AF-0002A740EF8C}</UniqueIdentifier> + <UniqueIdentifier>{22E6AE16-CFAD-4ED0-BE35-3664BF6E578B}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/kmdf/ReadMe.md b/general/echo/kmdf/ReadMe.md index 05f41f49..ec2244c8 100644 --- a/general/echo/kmdf/ReadMe.md +++ b/general/echo/kmdf/ReadMe.md @@ -8,6 +8,9 @@ It also shows how to synchronize execution of these events with other asynchrono ## Universal Compliant This sample builds a Windows Universal driver. It uses only APIs and DDIs that are included in Windows Core. +**Note** +Due to a known bug in the current Windows Driver Kit tools, when building this sample in Debug mode, the exe project may report some ApiValidator warnings. These can be safely ignored. + Related technologies -------------------- diff --git a/general/echo/kmdf/driver/AutoSync/device.c b/general/echo/kmdf/driver/AutoSync/device.c index ee20447f..e30ae723 100644 --- a/general/echo/kmdf/driver/AutoSync/device.c +++ b/general/echo/kmdf/driver/AutoSync/device.c @@ -60,7 +60,10 @@ Return Value: pnpPowerCallbacks.EvtDeviceSelfManagedIoInit = EchoEvtDeviceSelfManagedIoStart; pnpPowerCallbacks.EvtDeviceSelfManagedIoSuspend = EchoEvtDeviceSelfManagedIoSuspend; - #pragma prefast(suppress: 28024, "Function used for both Init and Restart Callbacks") + // + // Function used for both Init and Restart Callbacks + // + #pragma warning(suppress: 28024) pnpPowerCallbacks.EvtDeviceSelfManagedIoRestart = EchoEvtDeviceSelfManagedIoStart; // diff --git a/general/echo/kmdf/driver/AutoSync/echo.vcxproj b/general/echo/kmdf/driver/AutoSync/echo.vcxproj index fcaaf0ac..4dd50d31 100644 --- a/general/echo/kmdf/driver/AutoSync/echo.vcxproj +++ b/general/echo/kmdf/driver/AutoSync/echo.vcxproj @@ -19,12 +19,12 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{C8F9A776-3675-459B-A0A3-BA17D003C70B}</ProjectGuid> + <ProjectGuid>{CDC025E9-1761-4E64-A166-BD45DE3FECDC}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{8063717F-2826-44B9-BCF2-23ACCAF2C1FA}</SampleGuid> + <SampleGuid>{1A19D04A-789A-4E5E-B6CB-8267327D49B2}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/echo/kmdf/driver/AutoSync/echo.vcxproj.Filters b/general/echo/kmdf/driver/AutoSync/echo.vcxproj.Filters index ba649423..e16a90eb 100644 --- a/general/echo/kmdf/driver/AutoSync/echo.vcxproj.Filters +++ b/general/echo/kmdf/driver/AutoSync/echo.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{C301082A-56B5-43D9-AF50-C90CDBB830DA}</UniqueIdentifier> + <UniqueIdentifier>{5315796E-E2AE-40C4-88D3-37088B83F7D8}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{E8E22922-FDB4-496F-9D8B-0E5930795BAC}</UniqueIdentifier> + <UniqueIdentifier>{F294BBB0-2191-4523-82C7-31490BDD8A37}</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>{78CA938F-ABD5-4BA1-A021-7E751E09B367}</UniqueIdentifier> + <UniqueIdentifier>{00A6B984-C7C3-4E03-9616-073B2F83B7A3}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{A5E77DC1-258D-4E61-AA8D-1879410AE785}</UniqueIdentifier> + <UniqueIdentifier>{0046A610-D3DC-4635-AF3C-395E2E6D2900}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/kmdf/driver/AutoSync/queue.c b/general/echo/kmdf/driver/AutoSync/queue.c index cb02a965..4906e067 100644 --- a/general/echo/kmdf/driver/AutoSync/queue.c +++ b/general/echo/kmdf/driver/AutoSync/queue.c @@ -301,7 +301,7 @@ Return Value: _Analysis_assume_(Length > 0); - KdPrint(("EchoEvtIoRead Called! Queue 0x%p, Request 0x%p Length %d\n", + KdPrint(("EchoEvtIoRead Called! Queue 0x%p, Request 0x%p Length %Iu\n", Queue,Request,Length)); // // No data to read @@ -396,11 +396,11 @@ Return Value: _Analysis_assume_(Length > 0); - KdPrint(("EchoEvtIoWrite Called! Queue 0x%p, Request 0x%p Length %d\n", + KdPrint(("EchoEvtIoWrite Called! Queue 0x%p, Request 0x%p Length %Iu\n", Queue,Request,Length)); if( Length > MAX_WRITE_LENGTH ) { - KdPrint(("EchoEvtIoWrite Buffer Length to big %d, Max is %d\n", + KdPrint(("EchoEvtIoWrite Buffer Length to big %Iu, Max is %d\n", Length,MAX_WRITE_LENGTH)); WdfRequestCompleteWithInformation(Request, STATUS_BUFFER_OVERFLOW, 0L); return; @@ -425,7 +425,7 @@ Return Value: queueContext->Buffer = ExAllocatePoolWithTag(NonPagedPool, Length, 'sam1'); if( queueContext->Buffer == NULL ) { - KdPrint(("EchoEvtIoWrite: Could not allocate %d byte buffer\n", Length)); + KdPrint(("EchoEvtIoWrite: Could not allocate %Iu byte buffer\n", Length)); WdfRequestComplete(Request, STATUS_INSUFFICIENT_RESOURCES); return; } diff --git a/general/echo/kmdf/driver/DriverSync/device.c b/general/echo/kmdf/driver/DriverSync/device.c index eb37eaf2..c9dbcbb4 100644 --- a/general/echo/kmdf/driver/DriverSync/device.c +++ b/general/echo/kmdf/driver/DriverSync/device.c @@ -59,7 +59,11 @@ Return Value: // pnpPowerCallbacks.EvtDeviceSelfManagedIoInit = EchoEvtDeviceSelfManagedIoStart; pnpPowerCallbacks.EvtDeviceSelfManagedIoSuspend = EchoEvtDeviceSelfManagedIoSuspend; - #pragma prefast(suppress: 28024, "Function used for both Init and Restart Callbacks") + + // + // Function used for both Init and Restart Callbacks + // + #pragma warning(suppress: 28024) pnpPowerCallbacks.EvtDeviceSelfManagedIoRestart = EchoEvtDeviceSelfManagedIoStart; // diff --git a/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj b/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj index a96b9b73..893895a1 100644 --- a/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj +++ b/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj @@ -19,12 +19,12 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}</ProjectGuid> + <ProjectGuid>{349EBD20-0306-46A9-8921-622D7C07D20B}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{0F2B6094-D739-411B-B15C-D0ABD3ACF20E}</SampleGuid> + <SampleGuid>{76F69B56-EF56-432F-8691-1C773793EB51}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj.Filters b/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj.Filters index 2fac5833..cc1cf7de 100644 --- a/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj.Filters +++ b/general/echo/kmdf/driver/DriverSync/echo_2.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{5AF6C435-D6C0-4812-A1B9-A231D60FF6A3}</UniqueIdentifier> + <UniqueIdentifier>{C1DDA8F3-CE1F-4E9F-B893-ABD8D39FA214}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{52F80479-DCAD-49B9-9A2F-BB7363EEEBAF}</UniqueIdentifier> + <UniqueIdentifier>{9EBBB66D-9D37-402F-833E-2CCF7E34CCD5}</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>{1EC49F54-AC4E-447D-B4EA-B9859C16E917}</UniqueIdentifier> + <UniqueIdentifier>{53508F5F-9B47-4922-91FF-3A0BB6BF6D49}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{9CFF80B0-15ED-408B-B629-91208E5966C3}</UniqueIdentifier> + <UniqueIdentifier>{59652897-649C-440A-B1AA-1AE8A8038E8E}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/kmdf/driver/DriverSync/queue.c b/general/echo/kmdf/driver/DriverSync/queue.c index 89d47fa2..6017294e 100644 --- a/general/echo/kmdf/driver/DriverSync/queue.c +++ b/general/echo/kmdf/driver/DriverSync/queue.c @@ -516,7 +516,7 @@ Return Value: _Analysis_assume_(Length > 0); - KdPrint(("EchoEvtIoRead Called! Queue 0x%p, Request 0x%p Length %d\n", + KdPrint(("EchoEvtIoRead Called! Queue 0x%p, Request 0x%p Length %Iu\n", Queue,Request,Length)); // // No data to read @@ -611,11 +611,11 @@ Return Value: _Analysis_assume_(Length > 0); - KdPrint(("EchoEvtIoWrite Called! Queue 0x%p, Request 0x%p Length %d\n", + KdPrint(("EchoEvtIoWrite Called! Queue 0x%p, Request 0x%p Length %Iu\n", Queue,Request,Length)); if( Length > MAX_WRITE_LENGTH ) { - KdPrint(("EchoEvtIoWrite Buffer Length to big %d, Max is %d\n", + KdPrint(("EchoEvtIoWrite Buffer Length to big %Iu, Max is %d\n", Length,MAX_WRITE_LENGTH)); WdfRequestCompleteWithInformation(Request, STATUS_BUFFER_OVERFLOW, 0L); return; @@ -640,7 +640,7 @@ Return Value: queueContext->Buffer = ExAllocatePoolWithTag(NonPagedPool, Length, 'sam1'); if( queueContext->Buffer == NULL ) { - KdPrint(("EchoEvtIoWrite: Could not allocate %d byte buffer\n",Length)); + KdPrint(("EchoEvtIoWrite: Could not allocate %Iu byte buffer\n",Length)); WdfRequestComplete(Request, STATUS_INSUFFICIENT_RESOURCES); return; } diff --git a/general/echo/kmdf/exe/echoapp.cpp b/general/echo/kmdf/exe/echoapp.cpp index 9649a407..2383db2c 100644 --- a/general/echo/kmdf/exe/echoapp.cpp +++ b/general/echo/kmdf/exe/echoapp.cpp @@ -4,11 +4,11 @@ Copyright (c) Microsoft Corporation Module Name: - ioctl.cpp + EchoApp.cpp Abstract: - A simple asynch test for usb driver. + An application to exercise the WDF "echo" sample driver. Environment: @@ -25,7 +25,7 @@ _Analysis_mode_(_Analysis_code_type_user_code_) #include <windows.h> #include <strsafe.h> -#include <setupapi.h> +#include <cfgmgr32.h> #include <stdio.h> #include <stdlib.h> #include "public.h" @@ -41,7 +41,7 @@ _Analysis_mode_(_Analysis_code_type_user_code_) BOOLEAN G_PerformAsyncIo; BOOLEAN G_LimitedLoops; ULONG G_AsyncIoLoopsNum; -CHAR G_DevicePath[MAX_DEVPATH_LENGTH]; +WCHAR G_DevicePath[MAX_DEVPATH_LENGTH]; ULONG @@ -58,7 +58,7 @@ PerformWriteReadTest( BOOL GetDevicePath( IN LPGUID InterfaceGuid, - _Out_writes_(BufLen) PCHAR DevicePath, + _Out_writes_(BufLen) PWCHAR DevicePath, _In_ size_t BufLen ); @@ -105,7 +105,7 @@ main( goto exit; } - printf("DevicePath: %s\n", G_DevicePath); + printf("DevicePath: %ws\n", G_DevicePath); hDevice = CreateFile(G_DevicePath, GENERIC_READ|GENERIC_WRITE, @@ -352,8 +352,6 @@ Cleanup: return result; } - - ULONG AsyncIo( PVOID ThreadParameter @@ -384,7 +382,7 @@ AsyncIo( if (hDevice == INVALID_HANDLE_VALUE) { - printf("Cannot open %s error %d\n", G_DevicePath, GetLastError()); + printf("Cannot open %ws error %d\n", G_DevicePath, GetLastError()); result = FALSE; goto Error; } @@ -579,122 +577,76 @@ Error: } - BOOL GetDevicePath( - IN LPGUID InterfaceGuid, - _Out_writes_(BufLen) PCHAR DevicePath, + _In_ LPGUID InterfaceGuid, + _Out_writes_(BufLen) PWCHAR DevicePath, _In_ size_t BufLen ) { - HDEVINFO HardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA DeviceInterfaceData; - PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData = NULL; - ULONG Length, RequiredLength = 0; - BOOL bResult; - HRESULT hr; - - HardwareDeviceInfo = SetupDiGetClassDevs( - InterfaceGuid, - NULL, - NULL, - (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)); + CONFIGRET cr = CR_SUCCESS; + PWSTR deviceInterfaceList = NULL; + ULONG deviceInterfaceListLength = 0; + PWSTR nextInterface; + HRESULT hr = E_FAIL; + BOOL bRet = TRUE; - if (HardwareDeviceInfo == INVALID_HANDLE_VALUE) { - printf("SetupDiGetClassDevs failed!\n"); - return FALSE; + cr = CM_Get_Device_Interface_List_Size( + &deviceInterfaceListLength, + InterfaceGuid, + NULL, + CM_GET_DEVICE_INTERFACE_LIST_PRESENT); + if (cr != CR_SUCCESS) { + printf("Error 0x%x retrieving device interface list size.\n", cr); + goto clean0; } - DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - - bResult = SetupDiEnumDeviceInterfaces(HardwareDeviceInfo, - 0, - InterfaceGuid, - 0, - &DeviceInterfaceData); - - if (bResult == FALSE) { - - LPVOID lpMsgBuf; - - if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPSTR) &lpMsgBuf, - 0, - NULL - )) { - - printf("SetupDiEnumDeviceInterfaces failed: %s", (LPTSTR)lpMsgBuf); - LocalFree(lpMsgBuf); - } - - printf("SetupDiEnumDeviceInterfaces failed.\n"); - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); - return FALSE; + if (deviceInterfaceListLength <= 1) { + bRet = FALSE; + printf("Error: No active device interfaces found.\n" + " Is the sample driver loaded?"); + goto clean0; } - SetupDiGetDeviceInterfaceDetail( - HardwareDeviceInfo, - &DeviceInterfaceData, - NULL, - 0, - &RequiredLength, - NULL - ); - - DeviceInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)LocalAlloc(LMEM_FIXED, RequiredLength); - - if (DeviceInterfaceDetailData == NULL) { - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); - printf("Failed to allocate memory.\n"); - return FALSE; + deviceInterfaceList = (PWSTR)malloc(deviceInterfaceListLength * sizeof(WCHAR)); + if (deviceInterfaceList == NULL) { + printf("Error allocating memory for device interface list.\n"); + goto clean0; } + ZeroMemory(deviceInterfaceList, deviceInterfaceListLength * sizeof(WCHAR)); - DeviceInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); - - Length = RequiredLength; - - bResult = SetupDiGetDeviceInterfaceDetail( - HardwareDeviceInfo, - &DeviceInterfaceData, - DeviceInterfaceDetailData, - Length, - &RequiredLength, - NULL); - - if (bResult == FALSE) { - - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPSTR) &lpMsgBuf, - 0, - NULL - ); + cr = CM_Get_Device_Interface_List( + InterfaceGuid, + NULL, + deviceInterfaceList, + deviceInterfaceListLength, + CM_GET_DEVICE_INTERFACE_LIST_PRESENT); + if (cr != CR_SUCCESS) { + printf("Error 0x%x retrieving device interface list.\n", cr); + goto clean0; + } - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); - printf("Error in SetupDiGetDeviceInterfaceDetail: %s\n", (LPTSTR)lpMsgBuf); - LocalFree(DeviceInterfaceDetailData); - LocalFree(lpMsgBuf); - return FALSE; + nextInterface = deviceInterfaceList + wcslen(deviceInterfaceList) + 1; + if (*nextInterface != UNICODE_NULL) { + printf("Warning: More than one device interface instance found. \n" + "Selecting first matching device.\n\n"); } - hr = StringCchCopy(DevicePath, - BufLen, - DeviceInterfaceDetailData->DevicePath) ; + hr = StringCchCopy(DevicePath, BufLen, deviceInterfaceList); + if (FAILED(hr)) { + bRet = FALSE; + printf("Error: StringCchCopy failed with HRESULT 0x%x", hr); + goto clean0; + } - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); // It must be executed in both success and failure traces - LocalFree(DeviceInterfaceDetailData); +clean0: + if (deviceInterfaceList != NULL) { + free(deviceInterfaceList); + } + if (CR_SUCCESS != cr) { + bRet = FALSE; + } - return ( !FAILED(hr) ); // Result depends on StringCchCopy() + return bRet; } diff --git a/general/echo/kmdf/exe/echoapp.vcxproj b/general/echo/kmdf/exe/echoapp.vcxproj index 11b3eb4c..62821146 100644 --- a/general/echo/kmdf/exe/echoapp.vcxproj +++ b/general/echo/kmdf/exe/echoapp.vcxproj @@ -19,17 +19,17 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{684264A6-91C1-4046-AD23-BD823E13EB60}</ProjectGuid> + <ProjectGuid>{84FCC75B-B284-4321-8108-140360BF56AA}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{C342DB0F-934F-4A0A-90A7-02650E906732}</SampleGuid> + <SampleGuid>{5D8FBCFF-DE4D-4607-9577-F4D8A83F971D}</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> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -37,7 +37,7 @@ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <TargetVersion>Windows10</TargetVersion> <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Desktop</DriverTargetPlatform> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -45,7 +45,7 @@ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <TargetVersion>Windows10</TargetVersion> <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Desktop</DriverTargetPlatform> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -53,7 +53,7 @@ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <TargetVersion>Windows10</TargetVersion> <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Desktop</DriverTargetPlatform> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -89,66 +89,78 @@ </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemGroup> diff --git a/general/echo/kmdf/exe/echoapp.vcxproj.Filters b/general/echo/kmdf/exe/echoapp.vcxproj.Filters index 7e14cf46..51d35517 100644 --- a/general/echo/kmdf/exe/echoapp.vcxproj.Filters +++ b/general/echo/kmdf/exe/echoapp.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{A120A502-9177-430F-BAEB-BBE51661EDDD}</UniqueIdentifier> + <UniqueIdentifier>{66A85886-4DDE-45CB-9A3F-E641ACCDBA7E}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{967C5907-C8A7-46F3-B2B7-E3A0BFF110EE}</UniqueIdentifier> + <UniqueIdentifier>{A498F6A0-D3A5-4F4B-8D99-056B439FB180}</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>{53BEED44-2F74-4E8F-B7B8-D0BDDB11BEB6}</UniqueIdentifier> + <UniqueIdentifier>{0B82D018-961F-414C-8BBC-6D96DAEA3805}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/kmdf/kmdfecho.sln b/general/echo/kmdf/kmdfecho.sln index b9c25c6c..4cc77bf9 100644 --- a/general/echo/kmdf/kmdfecho.sln +++ b/general/echo/kmdf/kmdfecho.sln @@ -3,19 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{1DD2F948-0799-49E3-A880-35A6215F8479}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{52FB1641-AFB0-4F37-8BE9-4138A77068CB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AutoSync", "AutoSync", "{B52DE63E-ED02-41DD-9DAB-53ACE0286663}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AutoSync", "AutoSync", "{D05198DA-5478-4E5A-B530-5412FDB8A1DD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{AE9E09B7-46C1-4AA3-9411-F125D9188EFD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{4713DF3C-3B4C-4E76-9FB3-111280705220}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DriverSync", "DriverSync", "{F01C6D5C-982E-4AE2-8DDC-0666F3905135}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DriverSync", "DriverSync", "{7010B108-FC52-4EC9-B504-AF41533C82A7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoapp", "exe\echoapp.vcxproj", "{684264A6-91C1-4046-AD23-BD823E13EB60}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoapp", "exe\echoapp.vcxproj", "{84FCC75B-B284-4321-8108-140360BF56AA}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo", "driver\AutoSync\echo.vcxproj", "{C8F9A776-3675-459B-A0A3-BA17D003C70B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo", "driver\AutoSync\echo.vcxproj", "{CDC025E9-1761-4E64-A166-BD45DE3FECDC}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo_2", "driver\DriverSync\echo_2.vcxproj", "{968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo_2", "driver\DriverSync\echo_2.vcxproj", "{349EBD20-0306-46A9-8921-622D7C07D20B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -25,39 +25,39 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {684264A6-91C1-4046-AD23-BD823E13EB60}.Debug|Win32.ActiveCfg = Debug|Win32 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Debug|Win32.Build.0 = Debug|Win32 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Release|Win32.ActiveCfg = Release|Win32 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Release|Win32.Build.0 = Release|Win32 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Debug|x64.ActiveCfg = Debug|x64 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Debug|x64.Build.0 = Debug|x64 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Release|x64.ActiveCfg = Release|x64 - {684264A6-91C1-4046-AD23-BD823E13EB60}.Release|x64.Build.0 = Release|x64 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Debug|Win32.ActiveCfg = Debug|Win32 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Debug|Win32.Build.0 = Debug|Win32 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Release|Win32.ActiveCfg = Release|Win32 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Release|Win32.Build.0 = Release|Win32 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Debug|x64.ActiveCfg = Debug|x64 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Debug|x64.Build.0 = Debug|x64 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Release|x64.ActiveCfg = Release|x64 - {C8F9A776-3675-459B-A0A3-BA17D003C70B}.Release|x64.Build.0 = Release|x64 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Debug|Win32.Build.0 = Debug|Win32 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Release|Win32.ActiveCfg = Release|Win32 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Release|Win32.Build.0 = Release|Win32 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Debug|x64.ActiveCfg = Debug|x64 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Debug|x64.Build.0 = Debug|x64 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Release|x64.ActiveCfg = Release|x64 - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3}.Release|x64.Build.0 = Release|x64 + {84FCC75B-B284-4321-8108-140360BF56AA}.Debug|Win32.ActiveCfg = Debug|Win32 + {84FCC75B-B284-4321-8108-140360BF56AA}.Debug|Win32.Build.0 = Debug|Win32 + {84FCC75B-B284-4321-8108-140360BF56AA}.Release|Win32.ActiveCfg = Release|Win32 + {84FCC75B-B284-4321-8108-140360BF56AA}.Release|Win32.Build.0 = Release|Win32 + {84FCC75B-B284-4321-8108-140360BF56AA}.Debug|x64.ActiveCfg = Debug|x64 + {84FCC75B-B284-4321-8108-140360BF56AA}.Debug|x64.Build.0 = Debug|x64 + {84FCC75B-B284-4321-8108-140360BF56AA}.Release|x64.ActiveCfg = Release|x64 + {84FCC75B-B284-4321-8108-140360BF56AA}.Release|x64.Build.0 = Release|x64 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Debug|Win32.ActiveCfg = Debug|Win32 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Debug|Win32.Build.0 = Debug|Win32 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Release|Win32.ActiveCfg = Release|Win32 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Release|Win32.Build.0 = Release|Win32 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Debug|x64.ActiveCfg = Debug|x64 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Debug|x64.Build.0 = Debug|x64 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Release|x64.ActiveCfg = Release|x64 + {CDC025E9-1761-4E64-A166-BD45DE3FECDC}.Release|x64.Build.0 = Release|x64 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Debug|Win32.ActiveCfg = Debug|Win32 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Debug|Win32.Build.0 = Debug|Win32 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Release|Win32.ActiveCfg = Release|Win32 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Release|Win32.Build.0 = Release|Win32 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Debug|x64.ActiveCfg = Debug|x64 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Debug|x64.Build.0 = Debug|x64 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Release|x64.ActiveCfg = Release|x64 + {349EBD20-0306-46A9-8921-622D7C07D20B}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {684264A6-91C1-4046-AD23-BD823E13EB60} = {1DD2F948-0799-49E3-A880-35A6215F8479} - {C8F9A776-3675-459B-A0A3-BA17D003C70B} = {B52DE63E-ED02-41DD-9DAB-53ACE0286663} - {968447B1-9A4F-4D2D-B81B-7BCB9240F5E3} = {F01C6D5C-982E-4AE2-8DDC-0666F3905135} - {B52DE63E-ED02-41DD-9DAB-53ACE0286663} = {AE9E09B7-46C1-4AA3-9411-F125D9188EFD} - {F01C6D5C-982E-4AE2-8DDC-0666F3905135} = {AE9E09B7-46C1-4AA3-9411-F125D9188EFD} + {84FCC75B-B284-4321-8108-140360BF56AA} = {52FB1641-AFB0-4F37-8BE9-4138A77068CB} + {CDC025E9-1761-4E64-A166-BD45DE3FECDC} = {D05198DA-5478-4E5A-B530-5412FDB8A1DD} + {349EBD20-0306-46A9-8921-622D7C07D20B} = {7010B108-FC52-4EC9-B504-AF41533C82A7} + {D05198DA-5478-4E5A-B530-5412FDB8A1DD} = {4713DF3C-3B4C-4E76-9FB3-111280705220} + {7010B108-FC52-4EC9-B504-AF41533C82A7} = {4713DF3C-3B4C-4E76-9FB3-111280705220} EndGlobalSection EndGlobal diff --git a/general/echo/umdf/WUDFEchoDriver.inx b/general/echo/umdf/WUDFEchoDriver.inx index 6279783e..b2fb16aa 100644 --- a/general/echo/umdf/WUDFEchoDriver.inx +++ b/general/echo/umdf/WUDFEchoDriver.inx @@ -75,7 +75,7 @@ UMDriverCopy=12,UMDF ; copy to drivers\UMDF CoInstallers_CopyFiles=11 [UMDriverCopy] -WUDFEchoDriver.dll +WUDFEchoDriver.dll,,,0x00004000 ; COPYFLG_IN_USE_RENAME ; =================== Generic ================================== diff --git a/general/echo/umdf/WUDFEchoDriver.vcxproj b/general/echo/umdf/WUDFEchoDriver.vcxproj index 242f1dda..0b231b04 100644 --- a/general/echo/umdf/WUDFEchoDriver.vcxproj +++ b/general/echo/umdf/WUDFEchoDriver.vcxproj @@ -19,12 +19,12 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{9E7A6816-063C-4560-A31F-C5472D1CE345}</ProjectGuid> + <ProjectGuid>{E9829567-BB6F-432B-A8A1-4B4971928159}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <UMDF_VERSION_MAJOR>1</UMDF_VERSION_MAJOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{164B0F80-BB88-48C9-A03F-3F3937D8CCB6}</SampleGuid> + <SampleGuid>{6143696E-E68A-4B3D-87FA-ADE6B7E50DB4}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/echo/umdf/WUDFEchoDriver.vcxproj.Filters b/general/echo/umdf/WUDFEchoDriver.vcxproj.Filters index b702fb21..c3a10478 100644 --- a/general/echo/umdf/WUDFEchoDriver.vcxproj.Filters +++ b/general/echo/umdf/WUDFEchoDriver.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{0FBE107F-4905-4E97-BFF9-8C2A6B03AED8}</UniqueIdentifier> + <UniqueIdentifier>{78D910D7-E92B-4734-A811-EE671E018AD7}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{9534FE43-2493-4430-A335-97FC2BE106BD}</UniqueIdentifier> + <UniqueIdentifier>{D9527C10-A566-4A05-839C-005DACECC7AF}</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>{A96A2015-2537-47ED-B43D-8C379EDEC69F}</UniqueIdentifier> + <UniqueIdentifier>{F244522B-A2AF-46A0-BF42-64F811F1646C}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{203FBCD2-49E2-491E-9D3F-03A028ED6CEE}</UniqueIdentifier> + <UniqueIdentifier>{D6D8C255-A574-4240-9F8E-EDE56A98BC63}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/umdf/echo.sln b/general/echo/umdf/echo.sln index 853b7d55..e749b313 100644 --- a/general/echo/umdf/echo.sln +++ b/general/echo/umdf/echo.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WUDFEchoDriver", "WUDFEchoDriver.vcxproj", "{9E7A6816-063C-4560-A31F-C5472D1CE345}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WUDFEchoDriver", "WUDFEchoDriver.vcxproj", "{E9829567-BB6F-432B-A8A1-4B4971928159}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +13,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Debug|Win32.Build.0 = Debug|Win32 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Release|Win32.ActiveCfg = Release|Win32 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Release|Win32.Build.0 = Release|Win32 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Debug|x64.ActiveCfg = Debug|x64 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Debug|x64.Build.0 = Debug|x64 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Release|x64.ActiveCfg = Release|x64 - {9E7A6816-063C-4560-A31F-C5472D1CE345}.Release|x64.Build.0 = Release|x64 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Debug|Win32.Build.0 = Debug|Win32 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Release|Win32.ActiveCfg = Release|Win32 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Release|Win32.Build.0 = Release|Win32 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Debug|x64.ActiveCfg = Debug|x64 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Debug|x64.Build.0 = Debug|x64 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Release|x64.ActiveCfg = Release|x64 + {E9829567-BB6F-432B-A8A1-4B4971928159}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/general/echo/umdf2/ReadMe.md b/general/echo/umdf2/ReadMe.md index e037a8b5..18fc9b23 100644 --- a/general/echo/umdf2/ReadMe.md +++ b/general/echo/umdf2/ReadMe.md @@ -8,6 +8,9 @@ It also shows how to synchronize execution of these events with other asynchrono ## Universal Compliant This sample builds a Windows Universal driver. It uses only APIs and DDIs that are included in Windows Core. +**Note** +Due to a known bug in the current Windows Driver Kit tools, when building this sample in Debug mode, the exe project may report some ApiValidator warnings. These can be safely ignored. + Related technologies -------------------- diff --git a/general/echo/umdf2/driver/AutoSync/echo.vcxproj b/general/echo/umdf2/driver/AutoSync/echo.vcxproj index defa7b4d..1a42c503 100644 --- a/general/echo/umdf2/driver/AutoSync/echo.vcxproj +++ b/general/echo/umdf2/driver/AutoSync/echo.vcxproj @@ -19,12 +19,12 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{95360722-8B66-4DD4-957A-DF8B7CA700FB}</ProjectGuid> + <ProjectGuid>{7B51533F-3B85-437B-843B-FEC865C81376}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{F03689D2-F1BC-4D18-B99E-286CA22656D5}</SampleGuid> + <SampleGuid>{7014B7B7-69CF-441E-9264-AD0DBCCA6690}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/echo/umdf2/driver/AutoSync/echo.vcxproj.Filters b/general/echo/umdf2/driver/AutoSync/echo.vcxproj.Filters index 75ab6a0f..be4e54d6 100644 --- a/general/echo/umdf2/driver/AutoSync/echo.vcxproj.Filters +++ b/general/echo/umdf2/driver/AutoSync/echo.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{EF21C647-A675-40F9-981A-364CC77BFA4D}</UniqueIdentifier> + <UniqueIdentifier>{9B3693A5-EB57-4FA2-8C1B-F85253695D04}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{DC1E303A-60D0-45E3-AD8E-FA903A23C932}</UniqueIdentifier> + <UniqueIdentifier>{E32C0D43-4943-449E-82C0-2596D5D3BCEE}</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>{04F193A8-1C9D-45EC-ADDB-918233FB151D}</UniqueIdentifier> + <UniqueIdentifier>{ADEC5939-ED9C-4182-879E-AD54FFCB84ED}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{C0846D78-C3A3-42B0-AFDD-5D33B6AAE456}</UniqueIdentifier> + <UniqueIdentifier>{216463FB-3A2F-40C2-A52E-263D862032D6}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/umdf2/driver/AutoSync/echoum.inx b/general/echo/umdf2/driver/AutoSync/echoum.inx index 287c05df..fa5d29a9 100644 --- a/general/echo/umdf2/driver/AutoSync/echoum.inx +++ b/general/echo/umdf2/driver/AutoSync/echoum.inx @@ -55,7 +55,7 @@ Echo.dll = 1,, CopyFiles=UMDriverCopy [UMDriverCopy] -ECHO.dll +ECHO.dll,,,0x00004000 ; COPYFLG_IN_USE_RENAME [DestinationDirs] UMDriverCopy=12,UMDF ; copy to driversMdf diff --git a/general/echo/umdf2/exe/echoapp.cpp b/general/echo/umdf2/exe/echoapp.cpp index 9649a407..2383db2c 100644 --- a/general/echo/umdf2/exe/echoapp.cpp +++ b/general/echo/umdf2/exe/echoapp.cpp @@ -4,11 +4,11 @@ Copyright (c) Microsoft Corporation Module Name: - ioctl.cpp + EchoApp.cpp Abstract: - A simple asynch test for usb driver. + An application to exercise the WDF "echo" sample driver. Environment: @@ -25,7 +25,7 @@ _Analysis_mode_(_Analysis_code_type_user_code_) #include <windows.h> #include <strsafe.h> -#include <setupapi.h> +#include <cfgmgr32.h> #include <stdio.h> #include <stdlib.h> #include "public.h" @@ -41,7 +41,7 @@ _Analysis_mode_(_Analysis_code_type_user_code_) BOOLEAN G_PerformAsyncIo; BOOLEAN G_LimitedLoops; ULONG G_AsyncIoLoopsNum; -CHAR G_DevicePath[MAX_DEVPATH_LENGTH]; +WCHAR G_DevicePath[MAX_DEVPATH_LENGTH]; ULONG @@ -58,7 +58,7 @@ PerformWriteReadTest( BOOL GetDevicePath( IN LPGUID InterfaceGuid, - _Out_writes_(BufLen) PCHAR DevicePath, + _Out_writes_(BufLen) PWCHAR DevicePath, _In_ size_t BufLen ); @@ -105,7 +105,7 @@ main( goto exit; } - printf("DevicePath: %s\n", G_DevicePath); + printf("DevicePath: %ws\n", G_DevicePath); hDevice = CreateFile(G_DevicePath, GENERIC_READ|GENERIC_WRITE, @@ -352,8 +352,6 @@ Cleanup: return result; } - - ULONG AsyncIo( PVOID ThreadParameter @@ -384,7 +382,7 @@ AsyncIo( if (hDevice == INVALID_HANDLE_VALUE) { - printf("Cannot open %s error %d\n", G_DevicePath, GetLastError()); + printf("Cannot open %ws error %d\n", G_DevicePath, GetLastError()); result = FALSE; goto Error; } @@ -579,122 +577,76 @@ Error: } - BOOL GetDevicePath( - IN LPGUID InterfaceGuid, - _Out_writes_(BufLen) PCHAR DevicePath, + _In_ LPGUID InterfaceGuid, + _Out_writes_(BufLen) PWCHAR DevicePath, _In_ size_t BufLen ) { - HDEVINFO HardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA DeviceInterfaceData; - PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData = NULL; - ULONG Length, RequiredLength = 0; - BOOL bResult; - HRESULT hr; - - HardwareDeviceInfo = SetupDiGetClassDevs( - InterfaceGuid, - NULL, - NULL, - (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)); + CONFIGRET cr = CR_SUCCESS; + PWSTR deviceInterfaceList = NULL; + ULONG deviceInterfaceListLength = 0; + PWSTR nextInterface; + HRESULT hr = E_FAIL; + BOOL bRet = TRUE; - if (HardwareDeviceInfo == INVALID_HANDLE_VALUE) { - printf("SetupDiGetClassDevs failed!\n"); - return FALSE; + cr = CM_Get_Device_Interface_List_Size( + &deviceInterfaceListLength, + InterfaceGuid, + NULL, + CM_GET_DEVICE_INTERFACE_LIST_PRESENT); + if (cr != CR_SUCCESS) { + printf("Error 0x%x retrieving device interface list size.\n", cr); + goto clean0; } - DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - - bResult = SetupDiEnumDeviceInterfaces(HardwareDeviceInfo, - 0, - InterfaceGuid, - 0, - &DeviceInterfaceData); - - if (bResult == FALSE) { - - LPVOID lpMsgBuf; - - if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPSTR) &lpMsgBuf, - 0, - NULL - )) { - - printf("SetupDiEnumDeviceInterfaces failed: %s", (LPTSTR)lpMsgBuf); - LocalFree(lpMsgBuf); - } - - printf("SetupDiEnumDeviceInterfaces failed.\n"); - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); - return FALSE; + if (deviceInterfaceListLength <= 1) { + bRet = FALSE; + printf("Error: No active device interfaces found.\n" + " Is the sample driver loaded?"); + goto clean0; } - SetupDiGetDeviceInterfaceDetail( - HardwareDeviceInfo, - &DeviceInterfaceData, - NULL, - 0, - &RequiredLength, - NULL - ); - - DeviceInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)LocalAlloc(LMEM_FIXED, RequiredLength); - - if (DeviceInterfaceDetailData == NULL) { - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); - printf("Failed to allocate memory.\n"); - return FALSE; + deviceInterfaceList = (PWSTR)malloc(deviceInterfaceListLength * sizeof(WCHAR)); + if (deviceInterfaceList == NULL) { + printf("Error allocating memory for device interface list.\n"); + goto clean0; } + ZeroMemory(deviceInterfaceList, deviceInterfaceListLength * sizeof(WCHAR)); - DeviceInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); - - Length = RequiredLength; - - bResult = SetupDiGetDeviceInterfaceDetail( - HardwareDeviceInfo, - &DeviceInterfaceData, - DeviceInterfaceDetailData, - Length, - &RequiredLength, - NULL); - - if (bResult == FALSE) { - - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPSTR) &lpMsgBuf, - 0, - NULL - ); + cr = CM_Get_Device_Interface_List( + InterfaceGuid, + NULL, + deviceInterfaceList, + deviceInterfaceListLength, + CM_GET_DEVICE_INTERFACE_LIST_PRESENT); + if (cr != CR_SUCCESS) { + printf("Error 0x%x retrieving device interface list.\n", cr); + goto clean0; + } - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); - printf("Error in SetupDiGetDeviceInterfaceDetail: %s\n", (LPTSTR)lpMsgBuf); - LocalFree(DeviceInterfaceDetailData); - LocalFree(lpMsgBuf); - return FALSE; + nextInterface = deviceInterfaceList + wcslen(deviceInterfaceList) + 1; + if (*nextInterface != UNICODE_NULL) { + printf("Warning: More than one device interface instance found. \n" + "Selecting first matching device.\n\n"); } - hr = StringCchCopy(DevicePath, - BufLen, - DeviceInterfaceDetailData->DevicePath) ; + hr = StringCchCopy(DevicePath, BufLen, deviceInterfaceList); + if (FAILED(hr)) { + bRet = FALSE; + printf("Error: StringCchCopy failed with HRESULT 0x%x", hr); + goto clean0; + } - SetupDiDestroyDeviceInfoList(HardwareDeviceInfo); // It must be executed in both success and failure traces - LocalFree(DeviceInterfaceDetailData); +clean0: + if (deviceInterfaceList != NULL) { + free(deviceInterfaceList); + } + if (CR_SUCCESS != cr) { + bRet = FALSE; + } - return ( !FAILED(hr) ); // Result depends on StringCchCopy() + return bRet; } diff --git a/general/echo/umdf2/exe/echoapp.vcxproj b/general/echo/umdf2/exe/echoapp.vcxproj index c8b2000b..213947f1 100644 --- a/general/echo/umdf2/exe/echoapp.vcxproj +++ b/general/echo/umdf2/exe/echoapp.vcxproj @@ -19,17 +19,17 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{2744B9D7-C918-4979-AF41-3DC6B305BA72}</ProjectGuid> + <ProjectGuid>{312B4737-78DE-40B0-AEFB-D20A133B2A99}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{725C57DF-D40D-4503-ADBE-A694D0AC15A8}</SampleGuid> + <SampleGuid>{1AEE3F20-6611-4775-ACF4-2871153EE1BF}</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> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -37,7 +37,7 @@ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <TargetVersion>Windows10</TargetVersion> <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Desktop</DriverTargetPlatform> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -45,7 +45,7 @@ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <TargetVersion>Windows10</TargetVersion> <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Desktop</DriverTargetPlatform> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -53,7 +53,7 @@ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <TargetVersion>Windows10</TargetVersion> <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Desktop</DriverTargetPlatform> + <DriverTargetPlatform>Universal</DriverTargetPlatform> <DriverType /> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> <ConfigurationType>Application</ConfigurationType> @@ -89,66 +89,78 @@ </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib;user32.lib</AdditionalDependencies> + <AdditionalDependencies>%(AdditionalDependencies);mincore.lib</AdditionalDependencies> </Link> <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </ResourceCompile> <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> <ExceptionHandling> </ExceptionHandling> </ClCompile> <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions> </Midl> </ItemDefinitionGroup> <ItemGroup> diff --git a/general/echo/umdf2/exe/echoapp.vcxproj.Filters b/general/echo/umdf2/exe/echoapp.vcxproj.Filters index 1b67a921..8e64dba6 100644 --- a/general/echo/umdf2/exe/echoapp.vcxproj.Filters +++ b/general/echo/umdf2/exe/echoapp.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{A27E5252-132E-4B45-BC34-E21958A5A7B8}</UniqueIdentifier> + <UniqueIdentifier>{E47A65CC-C272-4052-B8E3-DFA70BFA5CE8}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{21C62558-1F78-4174-BB6A-42FE9F273912}</UniqueIdentifier> + <UniqueIdentifier>{49E408BF-7F56-41B9-BC23-1B36BFACD38A}</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>{D51D868F-D9FD-45A5-B7C1-50CBFF474959}</UniqueIdentifier> + <UniqueIdentifier>{4C476049-FA54-4F33-86B7-650A8CCB4500}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/umdf2/umdf2echo.sln b/general/echo/umdf2/umdf2echo.sln index f7467745..2e4f7d20 100644 --- a/general/echo/umdf2/umdf2echo.sln +++ b/general/echo/umdf2/umdf2echo.sln @@ -3,15 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{5B8D0286-7445-4569-84C3-D5616997F792}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{E72CA533-5276-42E4-B2B2-B64188523BD4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AutoSync", "AutoSync", "{DAEA5A04-51AB-46D0-B95C-25DA1FEB0B70}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AutoSync", "AutoSync", "{F31A130C-2441-4FE4-95D6-BB7071D6D69A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{0E50C291-4877-4FE5-A66C-EDEFF747DA75}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{86AE3BF7-2160-454A-90FB-454DAF617943}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoapp", "exe\echoapp.vcxproj", "{2744B9D7-C918-4979-AF41-3DC6B305BA72}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoapp", "exe\echoapp.vcxproj", "{312B4737-78DE-40B0-AEFB-D20A133B2A99}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo", "driver\AutoSync\echo.vcxproj", "{95360722-8B66-4DD4-957A-DF8B7CA700FB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo", "driver\AutoSync\echo.vcxproj", "{7B51533F-3B85-437B-843B-FEC865C81376}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -21,29 +21,29 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Debug|Win32.ActiveCfg = Debug|Win32 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Debug|Win32.Build.0 = Debug|Win32 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Release|Win32.ActiveCfg = Release|Win32 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Release|Win32.Build.0 = Release|Win32 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Debug|x64.ActiveCfg = Debug|x64 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Debug|x64.Build.0 = Debug|x64 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Release|x64.ActiveCfg = Release|x64 - {2744B9D7-C918-4979-AF41-3DC6B305BA72}.Release|x64.Build.0 = Release|x64 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Debug|Win32.Build.0 = Debug|Win32 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Release|Win32.ActiveCfg = Release|Win32 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Release|Win32.Build.0 = Release|Win32 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Debug|x64.ActiveCfg = Debug|x64 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Debug|x64.Build.0 = Debug|x64 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Release|x64.ActiveCfg = Release|x64 - {95360722-8B66-4DD4-957A-DF8B7CA700FB}.Release|x64.Build.0 = Release|x64 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Debug|Win32.ActiveCfg = Debug|Win32 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Debug|Win32.Build.0 = Debug|Win32 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Release|Win32.ActiveCfg = Release|Win32 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Release|Win32.Build.0 = Release|Win32 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Debug|x64.ActiveCfg = Debug|x64 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Debug|x64.Build.0 = Debug|x64 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Release|x64.ActiveCfg = Release|x64 + {312B4737-78DE-40B0-AEFB-D20A133B2A99}.Release|x64.Build.0 = Release|x64 + {7B51533F-3B85-437B-843B-FEC865C81376}.Debug|Win32.ActiveCfg = Debug|Win32 + {7B51533F-3B85-437B-843B-FEC865C81376}.Debug|Win32.Build.0 = Debug|Win32 + {7B51533F-3B85-437B-843B-FEC865C81376}.Release|Win32.ActiveCfg = Release|Win32 + {7B51533F-3B85-437B-843B-FEC865C81376}.Release|Win32.Build.0 = Release|Win32 + {7B51533F-3B85-437B-843B-FEC865C81376}.Debug|x64.ActiveCfg = Debug|x64 + {7B51533F-3B85-437B-843B-FEC865C81376}.Debug|x64.Build.0 = Debug|x64 + {7B51533F-3B85-437B-843B-FEC865C81376}.Release|x64.ActiveCfg = Release|x64 + {7B51533F-3B85-437B-843B-FEC865C81376}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {2744B9D7-C918-4979-AF41-3DC6B305BA72} = {5B8D0286-7445-4569-84C3-D5616997F792} - {95360722-8B66-4DD4-957A-DF8B7CA700FB} = {DAEA5A04-51AB-46D0-B95C-25DA1FEB0B70} - {DAEA5A04-51AB-46D0-B95C-25DA1FEB0B70} = {0E50C291-4877-4FE5-A66C-EDEFF747DA75} + {312B4737-78DE-40B0-AEFB-D20A133B2A99} = {E72CA533-5276-42E4-B2B2-B64188523BD4} + {7B51533F-3B85-437B-843B-FEC865C81376} = {F31A130C-2441-4FE4-95D6-BB7071D6D69A} + {F31A130C-2441-4FE4-95D6-BB7071D6D69A} = {86AE3BF7-2160-454A-90FB-454DAF617943} EndGlobalSection EndGlobal diff --git a/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj b/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj index d9930170..d46fb4f5 100644 --- a/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj +++ b/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj @@ -19,13 +19,13 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}</ProjectGuid> + <ProjectGuid>{A6553663-4D94-47EA-A6D7-EF2A81C8FB48}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <UMDF_VERSION_MAJOR>1</UMDF_VERSION_MAJOR> <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{DA04694B-6179-416F-83FF-53A671E51B26}</SampleGuid> + <SampleGuid>{7817F01F-7524-4D2D-A443-8DDE220A0F02}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj.Filters b/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj.Filters index 539cbe3b..0cfba6a8 100644 --- a/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj.Filters +++ b/general/echo/umdfSocketEcho/Driver/SocketEcho.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{BEDB1CCE-4E58-4AE0-B5B6-C54C6159232D}</UniqueIdentifier> + <UniqueIdentifier>{ED119046-004F-4EA8-88D2-ED4E43A285D2}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{07B8152F-B3FA-4EA1-BBCD-EABDD1B7FCAB}</UniqueIdentifier> + <UniqueIdentifier>{81E40625-7071-4159-B4B0-94DC1ECBC3F8}</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>{61C11142-602D-496E-B9EB-516ED5D7685B}</UniqueIdentifier> + <UniqueIdentifier>{BF6D7038-8154-4206-84CC-15F05F014BCC}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{2BB65E51-CB92-4484-AD29-5ED2A6007684}</UniqueIdentifier> + <UniqueIdentifier>{8574D23A-10D4-4701-885F-95D7059BCA72}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj b/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj index ea299161..4017bff4 100644 --- a/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj +++ b/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{4237BF5F-1426-45DD-96E0-74DEADFA24C6}</ProjectGuid> + <ProjectGuid>{6230EF04-CC9D-47CA-ACB4-90D68F65BC09}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{13151EE8-4C58-4284-BA01-C4B9431C6B06}</SampleGuid> + <SampleGuid>{CCBB9F0B-704E-4DDF-BDB4-ED2B2EB0330A}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj.Filters b/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj.Filters index 035fba1a..b75a0709 100644 --- a/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj.Filters +++ b/general/echo/umdfSocketEcho/Exe/socketechoserver.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{1BEC8228-FE60-4512-B036-885F56208A4B}</UniqueIdentifier> + <UniqueIdentifier>{B299C82C-4620-4309-92E4-590D9694D4C7}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{E4060FEA-373E-4AE6-94B7-FF878D406EAE}</UniqueIdentifier> + <UniqueIdentifier>{E30D2942-24C0-4E0F-9BE4-069374516060}</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>{181042B8-D282-46BA-B9D7-BDEE33402D00}</UniqueIdentifier> + <UniqueIdentifier>{7F4BBF43-DCE0-4376-A01F-F47446EFE8B0}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/echo/umdfSocketEcho/umdfsocketecho.sln b/general/echo/umdfSocketEcho/umdfsocketecho.sln index 9cd8f76d..ff9d14cf 100644 --- a/general/echo/umdfSocketEcho/umdfsocketecho.sln +++ b/general/echo/umdfSocketEcho/umdfsocketecho.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{C4B24CED-B58F-47D1-8FC0-778610EF84CF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{2CC915B5-4289-4A00-9330-BC299F498C6B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{AFCDA28A-1D07-410D-BA77-47E637336CA6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{326CD5AE-45A8-4C81-BA8C-42FF5CAE00D8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SocketEcho", "Driver\SocketEcho.vcxproj", "{ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SocketEcho", "Driver\SocketEcho.vcxproj", "{A6553663-4D94-47EA-A6D7-EF2A81C8FB48}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socketechoserver", "Exe\socketechoserver.vcxproj", "{4237BF5F-1426-45DD-96E0-74DEADFA24C6}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socketechoserver", "Exe\socketechoserver.vcxproj", "{6230EF04-CC9D-47CA-ACB4-90D68F65BC09}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Debug|Win32.Build.0 = Debug|Win32 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Release|Win32.ActiveCfg = Release|Win32 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Release|Win32.Build.0 = Release|Win32 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Debug|x64.ActiveCfg = Debug|x64 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Debug|x64.Build.0 = Debug|x64 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Release|x64.ActiveCfg = Release|x64 - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3}.Release|x64.Build.0 = Release|x64 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Debug|Win32.ActiveCfg = Debug|Win32 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Debug|Win32.Build.0 = Debug|Win32 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Release|Win32.ActiveCfg = Release|Win32 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Release|Win32.Build.0 = Release|Win32 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Debug|x64.ActiveCfg = Debug|x64 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Debug|x64.Build.0 = Debug|x64 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Release|x64.ActiveCfg = Release|x64 - {4237BF5F-1426-45DD-96E0-74DEADFA24C6}.Release|x64.Build.0 = Release|x64 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Debug|Win32.ActiveCfg = Debug|Win32 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Debug|Win32.Build.0 = Debug|Win32 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Release|Win32.ActiveCfg = Release|Win32 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Release|Win32.Build.0 = Release|Win32 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Debug|x64.ActiveCfg = Debug|x64 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Debug|x64.Build.0 = Debug|x64 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Release|x64.ActiveCfg = Release|x64 + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48}.Release|x64.Build.0 = Release|x64 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Debug|Win32.ActiveCfg = Debug|Win32 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Debug|Win32.Build.0 = Debug|Win32 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Release|Win32.ActiveCfg = Release|Win32 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Release|Win32.Build.0 = Release|Win32 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Debug|x64.ActiveCfg = Debug|x64 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Debug|x64.Build.0 = Debug|x64 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Release|x64.ActiveCfg = Release|x64 + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {ABEFFAA1-36CF-4F78-9A6B-10EAEC11B3E3} = {C4B24CED-B58F-47D1-8FC0-778610EF84CF} - {4237BF5F-1426-45DD-96E0-74DEADFA24C6} = {AFCDA28A-1D07-410D-BA77-47E637336CA6} + {A6553663-4D94-47EA-A6D7-EF2A81C8FB48} = {2CC915B5-4289-4A00-9330-BC299F498C6B} + {6230EF04-CC9D-47CA-ACB4-90D68F65BC09} = {326CD5AE-45A8-4C81-BA8C-42FF5CAE00D8} EndGlobalSection EndGlobal diff --git a/general/event/event.htm b/general/event/event.htm new file mode 100644 index 00000000..32485d9a --- /dev/null +++ b/general/event/event.htm @@ -0,0 +1,229 @@ +<html> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=Generator content="Microsoft Word 12 (filtered)"> +<title>EVENT</title> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4;} +@font-face + {font-family:Verdana; + panose-1:2 11 6 4 3 5 4 4 2 4;} +@font-face + {font-family:Consolas; + panose-1:2 11 6 9 2 2 4 3 2 4;} +@font-face + {font-family:"MS Sans Serif"; + panose-1:0 0 0 0 0 0 0 0 0 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {margin:0in; + margin-bottom:.0001pt; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + color:black;} +h2 + {mso-style-link:"Heading 2 Char"; + margin-right:0in; + margin-left:0in; + font-size:18.0pt; + font-family:"Times New Roman","serif"; + color:black; + font-weight:bold;} +h3 + {mso-style-link:"Heading 3 Char"; + margin-right:0in; + margin-left:0in; + font-size:13.5pt; + font-family:"Times New Roman","serif"; + color:black; + font-weight:bold;} +h4 + {mso-style-link:"Heading 4 Char"; + margin-right:0in; + margin-left:0in; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + color:black; + font-weight:bold;} +a:link, span.MsoHyperlink + {color:blue; + text-decoration:underline;} +a:visited, span.MsoHyperlinkFollowed + {color:purple; + text-decoration:underline;} +p + {margin-right:0in; + margin-left:0in; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + color:black;} +pre + {mso-style-link:"HTML Preformatted Char"; + margin:0in; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:"Courier New"; + color:black;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-link:"Heading 2"; + font-family:"Cambria","serif"; + color:#4F81BD; + font-weight:bold;} +span.Heading3Char + {mso-style-name:"Heading 3 Char"; + mso-style-link:"Heading 3"; + font-family:"Cambria","serif"; + color:#4F81BD; + font-weight:bold;} +span.Heading4Char + {mso-style-name:"Heading 4 Char"; + mso-style-link:"Heading 4"; + font-family:"Cambria","serif"; + color:#4F81BD; + font-weight:bold; + font-style:italic;} +span.HTMLPreformattedChar + {mso-style-name:"HTML Preformatted Char"; + mso-style-link:"HTML Preformatted"; + font-family:Consolas; + color:black;} +.MsoChpDefault + {font-size:10.0pt;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in;} +div.Section1 + {page:Section1;} +--> +</style> + +<meta name=Template content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot"> +</head> + +<body bgcolor=white lang=EN-US link=blue vlink=purple leftmargin=8> + +<div class=Section1> + +<h2><a name=MYSAMPLE><span style='font-family:"Verdana","sans-serif"'>EVENT</span></a><span +style='font-family:"Verdana","sans-serif"'> </span></h2> + +<h3><span style='font-family:"Verdana","sans-serif"'>SUMMARY</span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +sample demonstrates two different ways a Windows NT kernel-mode driver can +notify an application about a hardware event. One is event based method and the +other is an IRP based method. Since the sample driver is not talking to any +real hardware, it uses a timer DPC to simulate hardware events. The test +application informs the driver whether it wants to be notified by signaling an +event or by completing the pending IRP and also gives a relative time at which +the DPC timer has to fire. </span></p> + +<p><b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Event +based approach:</span></b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +The application creates an event using CreateEvent(). It then passes the event +handle to the driver in a private ioctl IOCTL_REGISTER_EVENT. Since the driver +is a monolithic toplevel driver, its IRP dispatch routines run in the +application process context and as a result the event handle is still valid in +the driver. The driver dereferences the user-mode handle into system space +& saves the event object pointer for later use and queues a custom timer +DPC. When the DPC fires, the driver signals the event via KeSetEvent() at +DISPATCH_LEVEL and deletes the references to the event object. You can't use +this approach if your driver is not a monolithic - toplevel driver, because you +can't guarantee the process context in a multi-level driver stack if you are +not at the top.</span></p> + +<p><b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Pending +IRP based approach:</span></b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +The application make a synchronous ioctl(IOCTL_REGISTER_EVENT) request. The +driver marks the device I/O control IRP pending and queues a timer DPC and +returns STATUS_PENDING. When the timer fires to indicate a hardware event, the +driver completes the pending IRP to notify the application about the hardware +event. </span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>There are +two advantages of this method over the event based approach. One is that you +can send a message to the application along with your notification and other +one is that the driver routines don't have to be in the context of the process +that made the request. The application can do a synchronous or asynchronous +(overlapped) ioctl to the driver. </span></p> + +<p><b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +sample driver is not a PnP driver. This is a minimal driver meant to +demonstrate an OS feature. Neither it nor its sample programs are intended for +use in a production environment. Rather, they are intended for educational +purposes and as a skeleton driver.</span></b></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This driver +will work on Windows NT 4.0, Windows 2000 and later operating systems.</span></p> + +<h3><span style='font-family:"Verdana","sans-serif"'>BUILDING THE SAMPLE</span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Click the +Free Build Environment or Checked Build Environment icon under Development Kits +program group to set basic environment variables. </span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Change to +the directory containing the device source code, such as CD Src\General\Event. </span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Run <b>build +-ceZ,</b> or use the macro <b>BLD</b>. This command invokes the Microsoft make +routines to build the components. If the build succeeds, you will find the +driver, event.sys, and the test application, event.exe, in the binary output directory specified for the build environment. You can get the output path from the buildxxx.log file. If the build +fails you can find errors and warnings in the buildxxx.err and buildxxx.err +respectively, where xxx is eithr chk or fre depending on the build environment. +</span></p> + +<h3><span style='font-family:"Verdana","sans-serif"'>TESTING</span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>To test +this driver, copy the test app, event.exe, and the driver to the same +directory, and run the application. The application will automatically load the +driver if it's not already loaded and interact with the driver. When you exit +the app, the driver will be stopped, unloaded and removed. </span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>c:\>Event.exe +DELAY </span><0/1></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>where +DELAY equals the time to delay the Event signal in seconds.</span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Specify O +for IRP based notification and 1 for event based notification.</span></p> + +<h3><span style='font-family:"Verdana","sans-serif"'>CODE TOUR</span></h3> + +<h4><span style='font-family:"Verdana","sans-serif"'>File Manifest</span></h4> + +<pre><u>File���������� Description</u></pre><pre> </pre><pre> </pre><pre>Event.htm����� Documentation for the sample (this file)</pre><pre> </pre><pre>Exe\Sources��� Generic file for building the test app</pre><pre>Exe\Eventtest.c Simple console test application</pre><pre>Exe\install.c� Code for registering and starting the driver service</pre><pre> </pre><pre>Wdm\Sources��� Generic file for building the driver</pre><pre>Wdm\Event.h��� Header file private to the driver</pre><pre>Wdm\public.h�� Common header file between app and driver</pre><pre>Wdm\Event.c��� Main driver file</pre><pre>Wdm\Event.rc�� Driver resource file</pre><pre> </pre> + +<p align=center style='text-align:center'><span style='font-size:10.0pt; +font-family:"Courier New"'><a href="#top"><span style='font-family:"Verdana","sans-serif"'>Top +of page</span></a></span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +</span></p> + +<pre> </pre> + +<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624 + style='width:6.5in'> + <tr style='height:1.5pt'> + <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'></td> + </tr> +</table> + +<pre> </pre><pre> </pre> + +<p><span style='font-size:7.5pt;font-family:"MS Sans Serif","serif"'>� 1998 +Microsoft Corporation</span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +</span></p> + +</div> + +</body> + +</html> diff --git a/general/event/eventsample.sln b/general/event/eventsample.sln index 1b533282..cc831cd5 100644 --- a/general/event/eventsample.sln +++ b/general/event/eventsample.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{AD60DF57-AE60-4857-9CAE-41B96E1E0789}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{69B6F5B9-DDF7-400F-BE17-476DE539E4DA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wdm", "Wdm", "{1403EA42-4F69-4B63-B15F-3447F44A500A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wdm", "Wdm", "{E4DA1FA9-CAA1-4781-B138-3EA4166B922B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "exe\event.vcxproj", "{19EFCD7C-6C7A-427A-84D2-A62D9073146A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "exe\event.vcxproj", "{D5CE2F64-0EB5-420B-A867-31106AFA3731}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "wdm\event.vcxproj", "{99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "wdm\event.vcxproj", "{FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Debug|Win32.ActiveCfg = Debug|Win32 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Debug|Win32.Build.0 = Debug|Win32 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Release|Win32.ActiveCfg = Release|Win32 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Release|Win32.Build.0 = Release|Win32 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Debug|x64.ActiveCfg = Debug|x64 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Debug|x64.Build.0 = Debug|x64 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Release|x64.ActiveCfg = Release|x64 - {19EFCD7C-6C7A-427A-84D2-A62D9073146A}.Release|x64.Build.0 = Release|x64 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Debug|Win32.ActiveCfg = Debug|Win32 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Debug|Win32.Build.0 = Debug|Win32 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Release|Win32.ActiveCfg = Release|Win32 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Release|Win32.Build.0 = Release|Win32 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Debug|x64.ActiveCfg = Debug|x64 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Debug|x64.Build.0 = Debug|x64 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Release|x64.ActiveCfg = Release|x64 - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}.Release|x64.Build.0 = Release|x64 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Debug|Win32.Build.0 = Debug|Win32 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Release|Win32.ActiveCfg = Release|Win32 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Release|Win32.Build.0 = Release|Win32 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Debug|x64.ActiveCfg = Debug|x64 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Debug|x64.Build.0 = Debug|x64 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Release|x64.ActiveCfg = Release|x64 + {D5CE2F64-0EB5-420B-A867-31106AFA3731}.Release|x64.Build.0 = Release|x64 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Debug|Win32.ActiveCfg = Debug|Win32 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Debug|Win32.Build.0 = Debug|Win32 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Release|Win32.ActiveCfg = Release|Win32 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Release|Win32.Build.0 = Release|Win32 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Debug|x64.ActiveCfg = Debug|x64 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Debug|x64.Build.0 = Debug|x64 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Release|x64.ActiveCfg = Release|x64 + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {19EFCD7C-6C7A-427A-84D2-A62D9073146A} = {AD60DF57-AE60-4857-9CAE-41B96E1E0789} - {99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B} = {1403EA42-4F69-4B63-B15F-3447F44A500A} + {D5CE2F64-0EB5-420B-A867-31106AFA3731} = {69B6F5B9-DDF7-400F-BE17-476DE539E4DA} + {FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6} = {E4DA1FA9-CAA1-4781-B138-3EA4166B922B} EndGlobalSection EndGlobal diff --git a/general/event/exe/event.vcxproj b/general/event/exe/event.vcxproj index 1ec7b921..e670d808 100644 --- a/general/event/exe/event.vcxproj +++ b/general/event/exe/event.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{19EFCD7C-6C7A-427A-84D2-A62D9073146A}</ProjectGuid> + <ProjectGuid>{D5CE2F64-0EB5-420B-A867-31106AFA3731}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{B020889A-CDA3-4F73-AA14-45C800A49925}</SampleGuid> + <SampleGuid>{1DA134F1-988F-4D83-8663-343393FCF8DD}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/event/exe/event.vcxproj.Filters b/general/event/exe/event.vcxproj.Filters index 7cdaec8b..1536b3e3 100644 --- a/general/event/exe/event.vcxproj.Filters +++ b/general/event/exe/event.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{F62E2250-4375-47E7-8996-8B59DCFCFCF8}</UniqueIdentifier> + <UniqueIdentifier>{3F33EAAB-7921-43F5-9263-4D4F98669ACE}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{B34D45F9-19AD-4EA0-A3AA-ABDD239D4829}</UniqueIdentifier> + <UniqueIdentifier>{E071C862-9C8B-4C31-8B57-CDB34DF842FD}</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>{F9F32DF2-C4E0-45E6-9964-FE9DAA47CC64}</UniqueIdentifier> + <UniqueIdentifier>{3C9792F4-01B3-4045-A0CB-4E09CE0A28AD}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/event/wdm/event.vcxproj b/general/event/wdm/event.vcxproj index 3dd391d5..fefc851e 100644 --- a/general/event/wdm/event.vcxproj +++ b/general/event/wdm/event.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{99CD8B5D-2961-44A5-ACB4-CC1CCCEE096B}</ProjectGuid> + <ProjectGuid>{FBF7BF86-1A35-46BB-8BC6-67B2C1E431A6}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{463697D8-488D-488E-A7DF-ECB602F46DD2}</SampleGuid> + <SampleGuid>{060F5D78-0639-46D2-82D0-178EDF598138}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/event/wdm/event.vcxproj.Filters b/general/event/wdm/event.vcxproj.Filters index c876bb5b..f3fdde44 100644 --- a/general/event/wdm/event.vcxproj.Filters +++ b/general/event/wdm/event.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{68A8B3BF-BA74-401E-A54C-A5D84A227969}</UniqueIdentifier> + <UniqueIdentifier>{64E2D106-4544-49A8-91BA-6151D707621E}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{F899D68E-E4E7-4168-9636-254BF3CDC360}</UniqueIdentifier> + <UniqueIdentifier>{E819D815-E057-47BD-BBEB-7A4BD55F9D61}</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>{0DFB698C-60E9-4C46-A9DD-76D3E4A63C45}</UniqueIdentifier> + <UniqueIdentifier>{C45F0550-45D7-404C-98DB-F9916B5185A5}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{705F4A1B-5DF2-4182-BCEA-69C62EC7ED04}</UniqueIdentifier> + <UniqueIdentifier>{50C64871-D47E-47D2-99E0-6AF3BFC203C5}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/filehistory/exe/fhsetup.vcxproj b/general/filehistory/exe/fhsetup.vcxproj index 29151c50..ba08d0f6 100644 --- a/general/filehistory/exe/fhsetup.vcxproj +++ b/general/filehistory/exe/fhsetup.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}</ProjectGuid> + <ProjectGuid>{4F3542D9-0265-46EF-AC1C-E9077754389D}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{19CB999A-197D-4EAB-85F1-C4230C32B26E}</SampleGuid> + <SampleGuid>{7C399721-D8AC-42CB-AFD9-8A6F4507D84D}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/filehistory/exe/fhsetup.vcxproj.Filters b/general/filehistory/exe/fhsetup.vcxproj.Filters index 8b773bab..828bbfdd 100644 --- a/general/filehistory/exe/fhsetup.vcxproj.Filters +++ b/general/filehistory/exe/fhsetup.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{86ABC263-8E1E-48CB-8D3E-368CE3C22885}</UniqueIdentifier> + <UniqueIdentifier>{4A29C27D-C667-4A42-8519-09FCF0137B81}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{E466B712-D4BD-4268-8FDB-FB7BDDAC7FB4}</UniqueIdentifier> + <UniqueIdentifier>{36854BB1-3791-4B72-BAFE-F63E471284B3}</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>{C3E2505A-EA9E-4B2A-B2B1-1AF968556961}</UniqueIdentifier> + <UniqueIdentifier>{08ADDCDC-38B0-425F-8E1A-15E9B3A9B7D5}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/filehistory/filehistory.sln b/general/filehistory/filehistory.sln index 055780ce..1df30962 100644 --- a/general/filehistory/filehistory.sln +++ b/general/filehistory/filehistory.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fhsetup", "exe\fhsetup.vcxproj", "{5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fhsetup", "exe\fhsetup.vcxproj", "{4F3542D9-0265-46EF-AC1C-E9077754389D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +13,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Debug|Win32.ActiveCfg = Debug|Win32 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Debug|Win32.Build.0 = Debug|Win32 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Release|Win32.ActiveCfg = Release|Win32 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Release|Win32.Build.0 = Release|Win32 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Debug|x64.ActiveCfg = Debug|x64 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Debug|x64.Build.0 = Debug|x64 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Release|x64.ActiveCfg = Release|x64 - {5ED52C3F-4CA6-4E04-82DD-404CA008EE8B}.Release|x64.Build.0 = Release|x64 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Debug|Win32.ActiveCfg = Debug|Win32 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Debug|Win32.Build.0 = Debug|Win32 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Release|Win32.ActiveCfg = Release|Win32 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Release|Win32.Build.0 = Release|Win32 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Debug|x64.ActiveCfg = Debug|x64 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Debug|x64.Build.0 = Debug|x64 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Release|x64.ActiveCfg = Release|x64 + {4F3542D9-0265-46EF-AC1C-E9077754389D}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/general/installwdf/InstallWdf.vcxproj b/general/installwdf/InstallWdf.vcxproj index 566e44b1..4629b895 100644 --- a/general/installwdf/InstallWdf.vcxproj +++ b/general/installwdf/InstallWdf.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{242C8F74-1471-4876-ABE9-F9B3798F7537}</ProjectGuid> + <ProjectGuid>{33B59758-52DF-4853-B3EF-10AB314C0B4F}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{EC6592EB-25EF-40EB-8E93-87FABB3C6085}</SampleGuid> + <SampleGuid>{E35D4009-C471-4212-97F4-BB773763DCBC}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/installwdf/InstallWdf.vcxproj.Filters b/general/installwdf/InstallWdf.vcxproj.Filters index aded6d8a..876d73d9 100644 --- a/general/installwdf/InstallWdf.vcxproj.Filters +++ b/general/installwdf/InstallWdf.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{5F54DABF-B262-4C6D-922E-4458AB12ED8C}</UniqueIdentifier> + <UniqueIdentifier>{B14F5D40-7162-4516-827A-BDEDFCC8051D}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{7D22CB0D-9813-4E12-B539-5F8A9BCC71F1}</UniqueIdentifier> + <UniqueIdentifier>{D3DD2DE2-BCB4-4D09-8C7E-0EAE804C69ED}</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>{13558A71-E018-47D4-B9A5-45A8C27B32B1}</UniqueIdentifier> + <UniqueIdentifier>{C6E040CC-8B14-482F-8D7E-8DC793538B92}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/installwdf/installwdf.sln b/general/installwdf/installwdf.sln index e520c1dc..9c1dc0dd 100644 --- a/general/installwdf/installwdf.sln +++ b/general/installwdf/installwdf.sln @@ -3,7 +3,7 @@ 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", "{242C8F74-1471-4876-ABE9-F9B3798F7537}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InstallWdf", "InstallWdf.vcxproj", "{33B59758-52DF-4853-B3EF-10AB314C0B4F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +13,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Debug|Win32.ActiveCfg = Debug|Win32 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Debug|Win32.Build.0 = Debug|Win32 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Release|Win32.ActiveCfg = Release|Win32 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Release|Win32.Build.0 = Release|Win32 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Debug|x64.ActiveCfg = Debug|x64 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Debug|x64.Build.0 = Debug|x64 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Release|x64.ActiveCfg = Release|x64 - {242C8F74-1471-4876-ABE9-F9B3798F7537}.Release|x64.Build.0 = Release|x64 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Debug|Win32.ActiveCfg = Debug|Win32 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Debug|Win32.Build.0 = Debug|Win32 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Release|Win32.ActiveCfg = Release|Win32 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Release|Win32.Build.0 = Release|Win32 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Debug|x64.ActiveCfg = Debug|x64 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Debug|x64.Build.0 = Debug|x64 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Release|x64.ActiveCfg = Release|x64 + {33B59758-52DF-4853-B3EF-10AB314C0B4F}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/general/ioctl/wdm/exe/ioctlapp.vcxproj b/general/ioctl/wdm/exe/ioctlapp.vcxproj index 976df289..a4fe1dc9 100644 --- a/general/ioctl/wdm/exe/ioctlapp.vcxproj +++ b/general/ioctl/wdm/exe/ioctlapp.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{76D71F31-1E96-453B-B624-603110936517}</ProjectGuid> + <ProjectGuid>{0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{F11B90FF-7C0F-4187-A69C-B3D2C6FA36BD}</SampleGuid> + <SampleGuid>{A8666C84-4408-4F56-834E-989B3B03ED5A}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/ioctl/wdm/exe/ioctlapp.vcxproj.Filters b/general/ioctl/wdm/exe/ioctlapp.vcxproj.Filters index 6698bc65..af420f3f 100644 --- a/general/ioctl/wdm/exe/ioctlapp.vcxproj.Filters +++ b/general/ioctl/wdm/exe/ioctlapp.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{A6129EF0-0D42-48B8-B0C4-C484D8CB1BEC}</UniqueIdentifier> + <UniqueIdentifier>{96F80F7E-43A8-4FF2-833B-0F4E0B486149}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{7C1B93C7-3641-4D37-AF76-8B4E72FB0E36}</UniqueIdentifier> + <UniqueIdentifier>{49685EE8-840B-4F1C-92CA-EF94838E1143}</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>{4E2B024A-1EF5-41B1-A019-C74272815D2A}</UniqueIdentifier> + <UniqueIdentifier>{F87C331A-2013-470A-A6AC-100426820F7F}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/ioctl/wdm/ioctl.htm b/general/ioctl/wdm/ioctl.htm new file mode 100644 index 00000000..bfce1a9e --- /dev/null +++ b/general/ioctl/wdm/ioctl.htm @@ -0,0 +1,742 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 12"> +<meta name=Originator content="Microsoft Word 12"> +<link rel=File-List href="ioctl_files/filelist.xml"> +<!--[if gte mso 9]><xml> + <o:OfficeDocumentSettings> + <o:RemovePersonalInformation/> + <o:RemoveDateAndTime/> + </o:OfficeDocumentSettings> +</xml><![endif]--> +<link rel=themeData href="ioctl_files/themedata.thmx"> +<link rel=colorSchemeMapping href="ioctl_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SnapToGridInCell/> + <w:WrapTextWithPunct/> + <w:UseAsianBreakRules/> + <w:DontGrowAutofit/> + <w:SplitPgBreakAndParaMark/> + <w:DontVertAlignCellWithSp/> + <w:DontBreakConstrainedForcedTables/> + <w:DontVertAlignInTxbx/> + <w:Word11KerningPairs/> + <w:CachedColBalance/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-pitch:variable; + mso-font-signature:-1610611985 1107304683 0 0 159 0;} +@font-face + {font-family:Verdana; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-1593833729 1073750107 16 0 415 0;} +@font-face + {font-family:Consolas; + panose-1:2 11 6 9 2 2 4 3 2 4; + mso-font-charset:0; + mso-generic-font-family:modern; + mso-font-pitch:fixed; + mso-font-signature:-1610611985 1073750091 0 0 159 0;} +@font-face + {font-family:"MS Sans Serif"; + panose-1:0 0 0 0 0 0 0 0 0 0; + mso-font-alt:"Times New Roman"; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:auto; + mso-font-signature:0 0 0 0 0 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +h2 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:2; + font-size:18.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black; + font-weight:bold;} +h3 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 3 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:3; + font-size:13.5pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black; + font-weight:bold;} +h4 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 4 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:4; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black; + font-weight:bold;} +p.MsoHeader, li.MsoHeader, div.MsoHeader + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Header Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:center 3.25in right 6.5in; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +p.MsoFooter, li.MsoFooter, div.MsoFooter + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Footer Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:center 3.25in right 6.5in; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +a:link, span.MsoHyperlink + {mso-style-noshow:yes; + mso-style-priority:99; + color:blue; + text-decoration:underline; + text-underline:single;} +a:visited, span.MsoHyperlinkFollowed + {mso-style-noshow:yes; + mso-style-priority:99; + color:purple; + text-decoration:underline; + text-underline:single;} +p + {mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +pre + {mso-style-priority:99; + mso-style-link:"HTML Preformatted Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; + font-size:10.0pt; + font-family:"Courier New"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + mso-ansi-font-size:13.0pt; + mso-bidi-font-size:13.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.Heading3Char + {mso-style-name:"Heading 3 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 3"; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.Heading4Char + {mso-style-name:"Heading 4 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 4"; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold; + font-style:italic;} +span.HTMLPreformattedChar + {mso-style-name:"HTML Preformatted Char"; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"HTML Preformatted"; + font-family:Consolas; + mso-ascii-font-family:Consolas; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + mso-hansi-font-family:Consolas; + color:black;} +span.HeaderChar + {mso-style-name:"Header Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:Header; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +span.FooterChar + {mso-style-name:"Footer Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:Footer; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} + /* Page Definitions */ + @page + {mso-footnote-separator:url("ioctl_files/header.htm") fs; + mso-footnote-continuation-separator:url("ioctl_files/header.htm") fcs; + mso-endnote-separator:url("ioctl_files/header.htm") es; + mso-endnote-continuation-separator:url("ioctl_files/header.htm") ecs;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-even-header:url("ioctl_files/header.htm") eh1; + mso-header:url("ioctl_files/header.htm") h1; + mso-even-footer:url("ioctl_files/header.htm") ef1; + mso-footer:url("ioctl_files/header.htm") f1; + mso-first-header:url("ioctl_files/header.htm") fh1; + mso-first-footer:url("ioctl_files/header.htm") ff1; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-qformat:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--> +<meta name=Template content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot"> +<!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="4098"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white lang=EN-US link=blue vlink=purple style='tab-interval:.5in' +leftmargin=8> + +<div class=Section1> + +<h2><a name=MYSAMPLE><span style='font-family:"Verdana","sans-serif"; +mso-fareast-font-family:"Times New Roman"'>IOCTL</span></a><span +style='font-family:"Verdana","sans-serif";mso-fareast-font-family:"Times New Roman"'> +<o:p></o:p></span></h2> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>SUMMARY<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +sample demonstrates the usage of four different types of IOCTLs +(METHOD_IN_DIRECT, METHOD_OUT_DIRECT, METHOD_NEITHER, and METHOD_BUFFERED) +supported by Windows, and how the user input & output buffer specified in +the DeviceControl function is handled by the I/O subsystem and the driver in +each case.<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>The sample +consists of a legacy device driver and a Win32 console mode test application. +The test application opens a handle to the device exposed by the driver and makes +all four different DeviceIoControl calls one after another. To understand how +the IRP fields are set the I/O manager, you should run the checked build version +of the driver and see the debug output.<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +driver will work on Windows 2000 and later operating systems.<o:p></o:p></span></p> + +<p><b><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>This +sample driver is not a PnP driver. This is a minimal driver meant to +demonstrate an OS feature. Neither it nor its sample programs are intended for +use in a production environment. Rather, they are intended for educational +purposes and as a skeleton driver.</span></b><span style='font-size:10.0pt; +font-family:"Verdana","sans-serif"'><o:p></o:p></span></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>BUILDING THE SAMPLE<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Click the +Free Build Environment or Checked Build Environment icon under Development Kits +program group to set basic environment variables. <o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Change to +the directory containing the sample source code, such as CD Src\General\ioctl\wdm. +<o:p></o:p></span></p> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Run build +-ceZ, or use the macro BLD. This command invokes the Microsoft make routines to +build the components. If the build succeeds, you will find the driver, +sioctl.sys, and the test application, ioctlapp.exe, in the binary output +directory specified for the build environment. You can get the output path from +the buildxxx.log file (for example, buildfre_win7_x86.log). If the build fails +you can find errors and warnings in the buildxxx.err and buildxxx.wrn respectively, +where xxx is either chk or fre depending on the build environment. <o:p></o:p></span></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>TESTING<o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>To test +this driver, copy the test app, ioctlapp.exe, and the driver to the same +directory, and run the application. The application will automatically load the +driver if it's not already loaded and interact with the driver. When you exit +the app, the driver will be stopped, unloaded and removed. <o:p></o:p></span></p> + +<h3><span style='mso-fareast-font-family:"Times New Roman"'>CODE TOUR</span><span +style='font-family:"Verdana","sans-serif";mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<h4><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>File Manifest<o:p></o:p></span></h4> + +<pre><u>File<span style='mso-tab-count:2'>���������� </span>Description<o:p></o:p></u></pre><pre><o:p> </o:p></pre><pre>Ioctl.htm<span +style='mso-tab-count:1'>����� </span>Sample Tour documentation for this sample (this file).<o:p></o:p></pre><pre>Sources<span +style='mso-tab-count:2'>������� </span>Generic file that lists source files and all the build options.<o:p></o:p></pre><pre>Sioctl.c<span +style='mso-tab-count:1'>������ </span>Source file of the sample driver.<o:p></o:p></pre><pre>Sioctl.h<span +style='mso-tab-count:1'>������ </span>Header file for defining ioctls; included by driver and the test application.<o:p></o:p></pre><pre>Testapp.c<span +style='mso-tab-count:1'>����� </span>Source file of the test application. Contains routines to send IOCTLs to the driver.<o:p></o:p></pre><pre>Install.c<span +style='mso-tab-count:1'>����� </span>Source file of the test application. Contains routines to load and unload the driver.<o:p></o:p></pre><pre>Sioctl.rc<span +style='mso-tab-count:1'>����� </span>Resource file that specifies information such as file type, version, etc.<o:p></o:p></pre><pre>Makefile<span +style='mso-tab-count:1'>������ </span>This file merely indirects to the real makefile that is shared by all the driver components of the Windows NT DDK.<o:p></o:p></pre><pre> <o:p></o:p></pre> + +<p align=center style='text-align:center;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a +href="#top"><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>Top +of page</span></a><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +<o:p></o:p></span></p> + +<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624 + style='width:6.5in;mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-padding-alt: + 0in 5.4pt 0in 5.4pt'> + <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes; + height:1.5pt'> + <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'></td> + </tr> +</table> + +<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span +style='font-size:7.5pt;font-family:"MS Sans Serif","serif"'>� 1998 Microsoft +Corporation</span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +<o:p></o:p></span></p> + +</div> + +</body> + +</html> diff --git a/general/ioctl/wdm/ioctl.sln b/general/ioctl/wdm/ioctl.sln index ba787f9d..ff5233dc 100644 --- a/general/ioctl/wdm/ioctl.sln +++ b/general/ioctl/wdm/ioctl.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{91C983A9-7E97-4964-A924-F019A135772F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{784A1AB1-AE41-4D83-99A8-82848B129B48}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{9D017694-F9BE-450B-BF96-67F46D45BE81}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{8D7246D9-D426-4517-9631-BCDC343A98A5}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ioctlapp", "exe\ioctlapp.vcxproj", "{76D71F31-1E96-453B-B624-603110936517}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ioctlapp", "exe\ioctlapp.vcxproj", "{0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sioctl", "sys\sioctl.vcxproj", "{EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sioctl", "sys\sioctl.vcxproj", "{7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {76D71F31-1E96-453B-B624-603110936517}.Debug|Win32.ActiveCfg = Debug|Win32 - {76D71F31-1E96-453B-B624-603110936517}.Debug|Win32.Build.0 = Debug|Win32 - {76D71F31-1E96-453B-B624-603110936517}.Release|Win32.ActiveCfg = Release|Win32 - {76D71F31-1E96-453B-B624-603110936517}.Release|Win32.Build.0 = Release|Win32 - {76D71F31-1E96-453B-B624-603110936517}.Debug|x64.ActiveCfg = Debug|x64 - {76D71F31-1E96-453B-B624-603110936517}.Debug|x64.Build.0 = Debug|x64 - {76D71F31-1E96-453B-B624-603110936517}.Release|x64.ActiveCfg = Release|x64 - {76D71F31-1E96-453B-B624-603110936517}.Release|x64.Build.0 = Release|x64 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Debug|Win32.ActiveCfg = Debug|Win32 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Debug|Win32.Build.0 = Debug|Win32 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Release|Win32.ActiveCfg = Release|Win32 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Release|Win32.Build.0 = Release|Win32 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Debug|x64.ActiveCfg = Debug|x64 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Debug|x64.Build.0 = Debug|x64 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Release|x64.ActiveCfg = Release|x64 - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}.Release|x64.Build.0 = Release|x64 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Debug|Win32.ActiveCfg = Debug|Win32 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Debug|Win32.Build.0 = Debug|Win32 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Release|Win32.ActiveCfg = Release|Win32 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Release|Win32.Build.0 = Release|Win32 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Debug|x64.ActiveCfg = Debug|x64 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Debug|x64.Build.0 = Debug|x64 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Release|x64.ActiveCfg = Release|x64 + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA}.Release|x64.Build.0 = Release|x64 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Debug|Win32.ActiveCfg = Debug|Win32 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Debug|Win32.Build.0 = Debug|Win32 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Release|Win32.ActiveCfg = Release|Win32 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Release|Win32.Build.0 = Release|Win32 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Debug|x64.ActiveCfg = Debug|x64 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Debug|x64.Build.0 = Debug|x64 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Release|x64.ActiveCfg = Release|x64 + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {76D71F31-1E96-453B-B624-603110936517} = {91C983A9-7E97-4964-A924-F019A135772F} - {EFC79CFC-9D17-4830-90C1-1825B6CFE1AD} = {9D017694-F9BE-450B-BF96-67F46D45BE81} + {0F1154FD-BDCC-4DCD-A452-C04E4AD94CEA} = {784A1AB1-AE41-4D83-99A8-82848B129B48} + {7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68} = {8D7246D9-D426-4517-9631-BCDC343A98A5} EndGlobalSection EndGlobal diff --git a/general/ioctl/wdm/sys/sioctl.vcxproj b/general/ioctl/wdm/sys/sioctl.vcxproj index 7340c780..7941eb1d 100644 --- a/general/ioctl/wdm/sys/sioctl.vcxproj +++ b/general/ioctl/wdm/sys/sioctl.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{EFC79CFC-9D17-4830-90C1-1825B6CFE1AD}</ProjectGuid> + <ProjectGuid>{7B626BD2-8EA8-42C1-BCC4-BBBBF52E5E68}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{733A9BE6-EB74-47AD-9701-2DB93FD4B2AC}</SampleGuid> + <SampleGuid>{FCA3A913-3152-480C-8F1A-78460EBE1F76}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/ioctl/wdm/sys/sioctl.vcxproj.Filters b/general/ioctl/wdm/sys/sioctl.vcxproj.Filters index 3b5a4633..2c4c9583 100644 --- a/general/ioctl/wdm/sys/sioctl.vcxproj.Filters +++ b/general/ioctl/wdm/sys/sioctl.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{68FEC55D-22E4-4CC8-86A7-C923C2AB8F07}</UniqueIdentifier> + <UniqueIdentifier>{0293F632-CB51-45F8-8DF6-6CE8AB8DEB1D}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{9D595192-13EA-4968-AFE4-63BECD7EDD64}</UniqueIdentifier> + <UniqueIdentifier>{8214575D-756B-4919-88AE-CDECEFA1921F}</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>{644100AF-059B-48EE-B8B9-280BA8724FF6}</UniqueIdentifier> + <UniqueIdentifier>{7306FA3C-F664-4252-9566-E061F0301808}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{41B8EECC-BA42-433E-9150-6D2D385CC021}</UniqueIdentifier> + <UniqueIdentifier>{8721C5CF-CC9A-4480-B324-73C98BFD444A}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/obcallback/control/ObCallbackTestCtrl.vcxproj b/general/obcallback/control/ObCallbackTestCtrl.vcxproj index d9ea7f08..2f9a4a43 100644 --- a/general/obcallback/control/ObCallbackTestCtrl.vcxproj +++ b/general/obcallback/control/ObCallbackTestCtrl.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{8B053BEE-EA21-4D12-984B-6C93FE6D4992}</ProjectGuid> + <ProjectGuid>{DB8864B4-169E-4815-9922-F552FAA028AF}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{BED8786D-3B67-42D0-AC7B-D7D2F45E551E}</SampleGuid> + <SampleGuid>{CE20F975-1A88-43A5-8976-68A8BEBDC3ED}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/obcallback/control/ObCallbackTestCtrl.vcxproj.Filters b/general/obcallback/control/ObCallbackTestCtrl.vcxproj.Filters index b9258c52..0850a135 100644 --- a/general/obcallback/control/ObCallbackTestCtrl.vcxproj.Filters +++ b/general/obcallback/control/ObCallbackTestCtrl.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{5FCF0F0F-49FE-446D-9A27-490CBE156E8F}</UniqueIdentifier> + <UniqueIdentifier>{C20EE14F-B2D9-4FBF-BC7E-0DF705B150AD}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{F9488019-A49A-430B-818A-BB8ADC3106D1}</UniqueIdentifier> + <UniqueIdentifier>{8C949FC8-F2A5-423F-8F4F-D215168CEC6C}</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>{DBBA22E4-2B2D-4D16-8C9A-26B358D8752E}</UniqueIdentifier> + <UniqueIdentifier>{0FB11462-6C7F-4485-9D39-632D8C9CF2FD}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/obcallback/driver/ObCallbackTest.vcxproj b/general/obcallback/driver/ObCallbackTest.vcxproj index e781eb3a..2e6348ae 100644 --- a/general/obcallback/driver/ObCallbackTest.vcxproj +++ b/general/obcallback/driver/ObCallbackTest.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{C696D115-0970-4E9C-8FED-31A99E039ED5}</ProjectGuid> + <ProjectGuid>{2C2188DF-F19F-4886-B4C1-5DD95909A64A}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{F7152E7D-34B2-4B88-A5D9-17D68B786DFC}</SampleGuid> + <SampleGuid>{BBA1F9F1-637A-40C4-A643-A0766AB87027}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/obcallback/driver/ObCallbackTest.vcxproj.Filters b/general/obcallback/driver/ObCallbackTest.vcxproj.Filters index 6fb49bed..621e0f79 100644 --- a/general/obcallback/driver/ObCallbackTest.vcxproj.Filters +++ b/general/obcallback/driver/ObCallbackTest.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{5962AF0C-70AA-4F9A-870A-9CA844475924}</UniqueIdentifier> + <UniqueIdentifier>{030D466C-6D17-4995-AC90-E04818AEEA75}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{B9BBA35B-98FC-4830-9A01-41A3227755C9}</UniqueIdentifier> + <UniqueIdentifier>{D351C05E-ED86-4240-946A-9CCAA4B2916A}</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>{75DE6DD6-44CF-4D1B-BC2C-1EF556200FC9}</UniqueIdentifier> + <UniqueIdentifier>{6381A0AA-76E1-4A9F-B058-3F7A67153834}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{593EF94F-8BBC-4C56-999C-5D894DD5456F}</UniqueIdentifier> + <UniqueIdentifier>{35FB336D-920E-4CCB-A47B-72D212D86AB0}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/obcallback/obcallback.sln b/general/obcallback/obcallback.sln index ed5a27b9..3ede4fc0 100644 --- a/general/obcallback/obcallback.sln +++ b/general/obcallback/obcallback.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Control", "Control", "{D429EFC9-09E8-495C-81B0-32340C75C2BA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Control", "Control", "{70CADFEA-4EA6-46ED-8C0E-966D4F3E7280}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{5DA38202-119A-41F8-B5A6-CB8D38191147}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Driver", "Driver", "{4A168675-E825-4328-87A1-46ADBFB75DB5}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObCallbackTestCtrl", "control\ObCallbackTestCtrl.vcxproj", "{8B053BEE-EA21-4D12-984B-6C93FE6D4992}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObCallbackTestCtrl", "control\ObCallbackTestCtrl.vcxproj", "{DB8864B4-169E-4815-9922-F552FAA028AF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObCallbackTest", "driver\ObCallbackTest.vcxproj", "{C696D115-0970-4E9C-8FED-31A99E039ED5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObCallbackTest", "driver\ObCallbackTest.vcxproj", "{2C2188DF-F19F-4886-B4C1-5DD95909A64A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Debug|Win32.ActiveCfg = Debug|Win32 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Debug|Win32.Build.0 = Debug|Win32 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Release|Win32.ActiveCfg = Release|Win32 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Release|Win32.Build.0 = Release|Win32 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Debug|x64.ActiveCfg = Debug|x64 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Debug|x64.Build.0 = Debug|x64 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Release|x64.ActiveCfg = Release|x64 - {8B053BEE-EA21-4D12-984B-6C93FE6D4992}.Release|x64.Build.0 = Release|x64 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Debug|Win32.ActiveCfg = Debug|Win32 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Debug|Win32.Build.0 = Debug|Win32 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Release|Win32.ActiveCfg = Release|Win32 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Release|Win32.Build.0 = Release|Win32 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Debug|x64.ActiveCfg = Debug|x64 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Debug|x64.Build.0 = Debug|x64 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Release|x64.ActiveCfg = Release|x64 - {C696D115-0970-4E9C-8FED-31A99E039ED5}.Release|x64.Build.0 = Release|x64 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Debug|Win32.Build.0 = Debug|Win32 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Release|Win32.ActiveCfg = Release|Win32 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Release|Win32.Build.0 = Release|Win32 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Debug|x64.ActiveCfg = Debug|x64 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Debug|x64.Build.0 = Debug|x64 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Release|x64.ActiveCfg = Release|x64 + {DB8864B4-169E-4815-9922-F552FAA028AF}.Release|x64.Build.0 = Release|x64 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Debug|Win32.ActiveCfg = Debug|Win32 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Debug|Win32.Build.0 = Debug|Win32 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Release|Win32.ActiveCfg = Release|Win32 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Release|Win32.Build.0 = Release|Win32 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Debug|x64.ActiveCfg = Debug|x64 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Debug|x64.Build.0 = Debug|x64 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Release|x64.ActiveCfg = Release|x64 + {2C2188DF-F19F-4886-B4C1-5DD95909A64A}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {8B053BEE-EA21-4D12-984B-6C93FE6D4992} = {D429EFC9-09E8-495C-81B0-32340C75C2BA} - {C696D115-0970-4E9C-8FED-31A99E039ED5} = {5DA38202-119A-41F8-B5A6-CB8D38191147} + {DB8864B4-169E-4815-9922-F552FAA028AF} = {70CADFEA-4EA6-46ED-8C0E-966D4F3E7280} + {2C2188DF-F19F-4886-B4C1-5DD95909A64A} = {4A168675-E825-4328-87A1-46ADBFB75DB5} EndGlobalSection EndGlobal diff --git a/general/pcidrv/kmdf/HW/PCIDRV.vcxproj b/general/pcidrv/kmdf/HW/PCIDRV.vcxproj index ca2cff13..353263b8 100644 --- a/general/pcidrv/kmdf/HW/PCIDRV.vcxproj +++ b/general/pcidrv/kmdf/HW/PCIDRV.vcxproj @@ -19,12 +19,12 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{2221261F-E1E2-4562-A15D-2EF8BF7D878E}</ProjectGuid> + <ProjectGuid>{981ADEB0-2F42-4F65-B118-8553CD64ACFD}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{EAA7F2DD-6EAB-48CE-80E1-46A17BF21F72}</SampleGuid> + <SampleGuid>{4FF76CFE-2641-4D5A-983A-622FA892000D}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/pcidrv/kmdf/HW/PCIDRV.vcxproj.Filters b/general/pcidrv/kmdf/HW/PCIDRV.vcxproj.Filters index a15b9d16..98b4bbfe 100644 --- a/general/pcidrv/kmdf/HW/PCIDRV.vcxproj.Filters +++ b/general/pcidrv/kmdf/HW/PCIDRV.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{8FC125AF-15BD-4DCD-9D5E-C7FE9A6ACD75}</UniqueIdentifier> + <UniqueIdentifier>{6D6B3E6C-B12D-41CD-B77E-CFE7772C651E}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{938C7F7B-13A2-43D1-A1CF-4B02B581687C}</UniqueIdentifier> + <UniqueIdentifier>{C3F0DB26-8DB1-4AC1-BAAF-D84FAA82A17A}</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>{75E794A5-28E0-464A-A171-8AD7F2A1DEAA}</UniqueIdentifier> + <UniqueIdentifier>{2BDDF51F-F342-422D-8E77-6D18E65A4FE3}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{EDAC3101-0378-4793-BEA6-FC4E036C130B}</UniqueIdentifier> + <UniqueIdentifier>{9B95345C-42E1-4A98-8A1F-71F76466D9AF}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/pcidrv/kmdf/genpci.inx b/general/pcidrv/kmdf/genpci.inx index b1f30a6c..c66464ed 100644 --- a/general/pcidrv/kmdf/genpci.inx +++ b/general/pcidrv/kmdf/genpci.inx @@ -54,15 +54,6 @@ pcidrv.sys = 1 [SourceDisksNames] 1=%DISK_NAME%, -; For Win2K -[MSFT] -; DisplayName Section DeviceId -; ----------- ------- -------- -%GenPCI.DRVDESC%=GenPCI_Inst, PCI\VEN_8086&DEV_1229 -%GenPCI.DRVDESC%=GenPCI_Inst, PCI\VEN_8086&DEV_103D -%GenPCI.DRVDESC%=GenPCI_Inst, PCI\VEN_8086&DEV_1031 -%GenPCI.DRVDESC%=GenPCI_Inst, PCI\VEN_8086&DEV_1038 - ; For XP and later [MSFT.NT$ARCH$] ; DisplayName Section DeviceId diff --git a/general/pcidrv/pcidrv.sln b/general/pcidrv/pcidrv.sln index e6607b8a..cfbe21e5 100644 --- a/general/pcidrv/pcidrv.sln +++ b/general/pcidrv/pcidrv.sln @@ -3,15 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{EFA400EA-F405-4FB2-AC59-22D52ED1C479}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{1177EB4D-108A-42D1-86E1-323626CD6975}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HW", "HW", "{8CBB3334-12D6-42CE-BD7A-A6F00E08FE45}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HW", "HW", "{D8F67AFA-F8CE-4531-A387-DB50915BB347}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kmdf", "Kmdf", "{A8847B95-FC0F-4553-9D94-354FE3C0A56E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kmdf", "Kmdf", "{9FD6367B-8E6E-4F7D-B260-D93B3D0150B6}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "myping", "test\myping.vcxproj", "{AAB2FA59-187D-45F7-A84F-09C7089848B3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "myping", "test\myping.vcxproj", "{E270A551-A250-4432-975F-99FC5C7271D0}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PCIDRV", "kmdf\HW\PCIDRV.vcxproj", "{2221261F-E1E2-4562-A15D-2EF8BF7D878E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PCIDRV", "kmdf\HW\PCIDRV.vcxproj", "{981ADEB0-2F42-4F65-B118-8553CD64ACFD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -21,29 +21,29 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Debug|Win32.ActiveCfg = Debug|Win32 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Debug|Win32.Build.0 = Debug|Win32 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Release|Win32.ActiveCfg = Release|Win32 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Release|Win32.Build.0 = Release|Win32 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Debug|x64.ActiveCfg = Debug|x64 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Debug|x64.Build.0 = Debug|x64 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Release|x64.ActiveCfg = Release|x64 - {AAB2FA59-187D-45F7-A84F-09C7089848B3}.Release|x64.Build.0 = Release|x64 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Debug|Win32.ActiveCfg = Debug|Win32 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Debug|Win32.Build.0 = Debug|Win32 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Release|Win32.ActiveCfg = Release|Win32 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Release|Win32.Build.0 = Release|Win32 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Debug|x64.ActiveCfg = Debug|x64 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Debug|x64.Build.0 = Debug|x64 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Release|x64.ActiveCfg = Release|x64 - {2221261F-E1E2-4562-A15D-2EF8BF7D878E}.Release|x64.Build.0 = Release|x64 + {E270A551-A250-4432-975F-99FC5C7271D0}.Debug|Win32.ActiveCfg = Debug|Win32 + {E270A551-A250-4432-975F-99FC5C7271D0}.Debug|Win32.Build.0 = Debug|Win32 + {E270A551-A250-4432-975F-99FC5C7271D0}.Release|Win32.ActiveCfg = Release|Win32 + {E270A551-A250-4432-975F-99FC5C7271D0}.Release|Win32.Build.0 = Release|Win32 + {E270A551-A250-4432-975F-99FC5C7271D0}.Debug|x64.ActiveCfg = Debug|x64 + {E270A551-A250-4432-975F-99FC5C7271D0}.Debug|x64.Build.0 = Debug|x64 + {E270A551-A250-4432-975F-99FC5C7271D0}.Release|x64.ActiveCfg = Release|x64 + {E270A551-A250-4432-975F-99FC5C7271D0}.Release|x64.Build.0 = Release|x64 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Debug|Win32.ActiveCfg = Debug|Win32 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Debug|Win32.Build.0 = Debug|Win32 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Release|Win32.ActiveCfg = Release|Win32 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Release|Win32.Build.0 = Release|Win32 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Debug|x64.ActiveCfg = Debug|x64 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Debug|x64.Build.0 = Debug|x64 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Release|x64.ActiveCfg = Release|x64 + {981ADEB0-2F42-4F65-B118-8553CD64ACFD}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {AAB2FA59-187D-45F7-A84F-09C7089848B3} = {EFA400EA-F405-4FB2-AC59-22D52ED1C479} - {2221261F-E1E2-4562-A15D-2EF8BF7D878E} = {8CBB3334-12D6-42CE-BD7A-A6F00E08FE45} - {8CBB3334-12D6-42CE-BD7A-A6F00E08FE45} = {A8847B95-FC0F-4553-9D94-354FE3C0A56E} + {E270A551-A250-4432-975F-99FC5C7271D0} = {1177EB4D-108A-42D1-86E1-323626CD6975} + {981ADEB0-2F42-4F65-B118-8553CD64ACFD} = {D8F67AFA-F8CE-4531-A387-DB50915BB347} + {D8F67AFA-F8CE-4531-A387-DB50915BB347} = {9FD6367B-8E6E-4F7D-B260-D93B3D0150B6} EndGlobalSection EndGlobal diff --git a/general/pcidrv/test/myping.vcxproj b/general/pcidrv/test/myping.vcxproj index 182ebe8c..9bea4622 100644 --- a/general/pcidrv/test/myping.vcxproj +++ b/general/pcidrv/test/myping.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{AAB2FA59-187D-45F7-A84F-09C7089848B3}</ProjectGuid> + <ProjectGuid>{E270A551-A250-4432-975F-99FC5C7271D0}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{E28A6724-75F7-4959-8204-0A5787BBF7B9}</SampleGuid> + <SampleGuid>{10CF0CFF-7ED4-4C36-B12F-E6AE18422A4E}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/pcidrv/test/myping.vcxproj.Filters b/general/pcidrv/test/myping.vcxproj.Filters index 32295c73..cf2b75b4 100644 --- a/general/pcidrv/test/myping.vcxproj.Filters +++ b/general/pcidrv/test/myping.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{B8B1F2DC-5ED4-4A1F-BFEE-587F0F5312D5}</UniqueIdentifier> + <UniqueIdentifier>{0D2B8F8A-7DF3-4F12-8A73-720F90D3AD69}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{8259798A-8FE0-4AE5-B848-77626974747D}</UniqueIdentifier> + <UniqueIdentifier>{CF7CB9C0-EAFC-44C5-8277-390F35F3D21E}</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>{48C95CA9-FD65-42C9-8FAF-C20DEB7390E8}</UniqueIdentifier> + <UniqueIdentifier>{A6BEDE27-A5E1-46BF-BA34-C345F92F4873}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/perfcounters/kcs/kcs.htm b/general/perfcounters/kcs/kcs.htm new file mode 100644 index 00000000..4349388b --- /dev/null +++ b/general/perfcounters/kcs/kcs.htm @@ -0,0 +1,757 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 14"> +<meta name=Originator content="Microsoft Word 14"> +<link rel=File-List href="kcs_files/filelist.xml"> +<title>Sample Name</title> +<link rel=themeData href="kcs_files/themedata.thmx"> +<link rel=colorSchemeMapping href="kcs_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:Zoom>104</w:Zoom> + <w:SpellingState>Clean</w:SpellingState> + <w:GrammarState>Clean</w:GrammarState> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SplitPgBreakAndParaMark/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" + DefSemiHidden="false" DefQFormat="false" LatentStyleCount="267"> + <w:LsdException Locked="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" + QFormat="true" Name="caption"/> + <w:LsdException Locked="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="99" Name="No List"/> + <w:LsdException Locked="false" Priority="99" SemiHidden="true" + Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" Priority="99" SemiHidden="true" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" QFormat="true" + Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" QFormat="true" + Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" QFormat="true" + Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" QFormat="true" + Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" QFormat="true" + Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" QFormat="true" + Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" SemiHidden="true" + UnhideWhenUsed="true" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" SemiHidden="true" + UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:SimSun; + panose-1:2 1 6 0 3 1 1 1 1 1; + mso-font-alt:\5B8B\4F53; + mso-font-charset:134; + mso-generic-font-family:auto; + mso-font-pitch:variable; + mso-font-signature:3 680460288 22 0 262145 0;} +@font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-pitch:variable; + mso-font-signature:-536870145 1107305727 0 0 415 0;} +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-520081665 -1073717157 41 0 66047 0;} +@font-face + {font-family:Verdana; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-1593833729 1073750107 16 0 415 0;} +@font-face + {font-family:"MS Sans Serif"; + panose-1:0 0 0 0 0 0 0 0 0 0; + mso-font-alt:"Times New Roman"; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:auto; + mso-font-signature:0 0 0 0 0 0;} +@font-face + {font-family:"\@SimSun"; + panose-1:2 1 6 0 3 1 1 1 1 1; + mso-font-charset:134; + mso-generic-font-family:auto; + mso-font-pitch:variable; + mso-font-signature:3 680460288 22 0 262145 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman";} +h1 + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 1 Char"; + mso-style-next:Normal; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + mso-font-kerning:16.0pt; + font-weight:bold;} +h2 + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:2; + font-size:18.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + font-weight:bold;} +h3 + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 3 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:3; + font-size:13.5pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + font-weight:bold;} +p.MsoCommentText, li.MsoCommentText, div.MsoCommentText + {mso-style-noshow:yes; + mso-style-unhide:no; + mso-style-link:"Comment Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman";} +span.MsoCommentReference + {mso-style-noshow:yes; + mso-style-unhide:no; + mso-ansi-font-size:8.0pt; + mso-bidi-font-size:8.0pt;} +a:link, span.MsoHyperlink + {mso-style-unhide:no; + color:blue; + text-decoration:underline; + text-underline:single;} +a:visited, span.MsoHyperlinkFollowed + {mso-style-unhide:no; + color:blue; + text-decoration:underline; + text-underline:single;} +p + {mso-style-unhide:no; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman";} +p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject + {mso-style-noshow:yes; + mso-style-unhide:no; + mso-style-parent:"Comment Text"; + mso-style-link:"Comment Subject Char"; + mso-style-next:"Comment Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + font-weight:bold;} +p.MsoAcetate, li.MsoAcetate, div.MsoAcetate + {mso-style-noshow:yes; + mso-style-unhide:no; + mso-style-link:"Balloon Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-fareast-font-family:"Times New Roman";} +span.Heading1Char + {mso-style-name:"Heading 1 Char"; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 1"; + mso-ansi-font-size:14.0pt; + mso-bidi-font-size:14.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#365F91; + mso-themecolor:accent1; + mso-themeshade:191; + font-weight:bold;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + mso-ansi-font-size:13.0pt; + mso-bidi-font-size:13.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.Heading3Char + {mso-style-name:"Heading 3 Char"; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 3"; + mso-ansi-font-size:12.0pt; + mso-bidi-font-size:12.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.CommentTextChar + {mso-style-name:"Comment Text Char"; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Comment Text";} +span.CommentSubjectChar + {mso-style-name:"Comment Subject Char"; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-parent:"Comment Text Char"; + mso-style-link:"Comment Subject"; + font-weight:bold;} +span.BalloonTextChar + {mso-style-name:"Balloon Text Char"; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Balloon Text"; + mso-ansi-font-size:8.0pt; + mso-bidi-font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-ascii-font-family:Tahoma; + mso-hansi-font-family:Tahoma; + mso-bidi-font-family:Tahoma;} +span.SpellE + {mso-style-name:""; + mso-spl-e:yes;} +span.GramE + {mso-style-name:""; + mso-gram-e:yes;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} +@page WordSection1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.WordSection1 + {page:WordSection1;} + /* List Definitions */ + @list l0 + {mso-list-id:572357372; + mso-list-template-ids:266362772;} +@list l0:level1 + {mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1 + {mso-list-id:1790778369; + mso-list-template-ids:266362772;} +@list l1:level1 + {mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +ol + {margin-bottom:0in;} +ul + {margin-bottom:0in;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="1026"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'> + +<div class=WordSection1> + +<h2><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>Kernel Counter Sample (<span class=SpellE>Kcs</span>)<o:p></o:p></span></h2> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>SUMMARY<o:p></o:p></span></h3> + +<p class=MsoNormal><span class=SpellE><span class=GramE>kcs</span></span> is a +sample to demonstrate the use of kernel mode <span class=SpellE>perflib</span> +API. The driver does not control any hardware; it simple provides counters. The +code contains comments to explain what each function does. </p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>USING THE SAMPLE<o:p></o:p></span></h3> + +<p class=MsoNormal>To test the <span class=SpellE>Kcs</span> counter provider, +use the following procedure.</p> + +<ol start=1 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>Copy<i style='mso-bidi-font-style: + normal'> kcs.sys </i>and<i style='mso-bidi-font-style:normal'> <span + class=SpellE>kcs.man</span> </i>files in <span class=GramE>%<span + class=SpellE>windir</span>%\system32 <span class=SpellE>dir</span>, and <span + class=SpellE><i style='mso-bidi-font-style:normal'>kcs.sys.mui</i></span><i + style='mso-bidi-font-style:normal'> </i>in %<span class=SpellE>windir</span>%\system32\en-US</span> + <span class=SpellE>dir</span> if <span class=SpellE><i style='mso-bidi-font-style: + normal'>kcs.sys.mui</i></span><i style='mso-bidi-font-style:normal'> </i>was + generated. <br style='mso-special-character:line-break'> + <![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'> + <![endif]></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>Sign the sample driver. For + details about how to sign the driver, see "SIGNNING THE SAMPLE + DRIVER" section. <br style='mso-special-character:line-break'> + <![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'> + <![endif]></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>Install the counters.</li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'>lodctr.exe /<span class=SpellE>m<span class=GramE>:kcs.man</span></span><o:p></o:p></span></p> + +<ol start=4 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>Create a service to control + the driver.</li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span class=SpellE><span +class=GramE><span style='font-size:10.0pt;font-family:"Courier New"'>sc</span></span></span><span +style='font-size:10.0pt;font-family:"Courier New"'> create <span class=SpellE>kcs</span> +<span class=SpellE>binpath</span>= %<span class=SpellE>windir</span>%\system32\kcs.sys +type= kernel start= demand<o:p></o:p></span></p> + +<ol start=5 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>Start the service</li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span class=GramE><span +style='font-size:10.0pt;font-family:"Courier New"'>net</span></span><span +style='font-size:10.0pt;font-family:"Courier New"'> start <span class=SpellE>kcs</span><o:p></o:p></span></p> + +<ol start=6 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>Run <span class=SpellE>perfmon</span> + and add Geometric Wave and <span class=SpellE>Trignometric</span> Wave + Counter Sets</li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'>perfmon.exe<o:p></o:p></span></p> + +<ol start=7 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>To stop the service, run</li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span class=GramE><span +style='font-size:10.0pt;font-family:"Courier New"'>net</span></span><span +style='font-size:10.0pt;font-family:"Courier New"'> stop <span class=SpellE>kcs</span><o:p></o:p></span></p> + +<ol start=8 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo1;tab-stops:list .5in'>To un-install the counters, + run</li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'>unlodctr.exe /<span class=SpellE>m<span class=GramE>:kcs.man</span></span><o:p></o:p></span></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>BUILD THE SAMPLE<o:p></o:p></span></h3> + +<p class=MsoNormal>To get the simple driver (kcs.sys), use the following +procedure.</p> + +<ol start=1 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l0 level1 lfo2;tab-stops:list .5in'>Click <span class=SpellE>kcs.vcxproj</span> + to open the sample.</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l0 level1 lfo2;tab-stops:list .5in'>Right click project, select + Properties, <span class=SpellE>goto</span> Linker -> Manifest File, <span + class=GramE>make</span> sure "<span style='mso-fareast-font-family: + SimSun'>Generate Manifest</span>" is "No".</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l0 level1 lfo2;tab-stops:list .5in'>Build the project.</li> + <ol start=1 type=1> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt: + auto;mso-list:l0 level2 lfo2;tab-stops:list 1.0in'>You can press "F7" + or choose Build->Build Solution.</li> + </ol> +</ol> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>LIMITATIONS<o:p></o:p></span></h3> + +<p class=MsoNormal>This sample driver should not be used in a production +environment. </p> + +<p class=MsoNormal><o:p> </o:p></p> + +<p class=MsoNormal><span class=SpellE>Kcs</span> is designed for Windows 7 +and later versions of Windows. </p> + +<p class=MsoNormal><o:p> </o:p></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>FILE LIST<o:p></o:p></span></h3> + +<p class=MsoNormal><span class=SpellE>kcs.h</span></p> + +<p class=MsoNormal><span class=SpellE><span class=GramE>makefile</span></span></p> + +<p class=MsoNormal><span class=GramE>sources</span></p> + +<p class=MsoNormal><span class=SpellE>kcs.c</span></p> + +<p class=MsoNormal><span class=SpellE>kcs.rc</span></p> + +<p class=MsoNormal><o:p> </o:p></p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>LOCATION<o:p></o:p></span></h3> + +<p class=MsoNormal>The files that comprise <span class=SpellE>Kcs</span> are +included in the Windows DDK in the \<span class=SpellE>src</span>\general\<span +class=SpellE>perfcounters</span>\<span class=SpellE>kcs</span> directory.</p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'><o:p> </o:p></span></h3> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>FEEDBACK<o:p></o:p></span></h3> + +<p align=center style='text-align:center'><span style='font-size:10.0pt; +font-family:"Verdana","sans-serif"'><a href="kcs.htm#top">Top of page</a> <o:p></o:p></span></p> + +<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624 + style='width:6.5in;mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-padding-alt: + 0in 5.4pt 0in 5.4pt'> + <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes; + height:1.5pt'> + <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'> + <p class=MsoNormal><span style='font-size:2.0pt;mso-bidi-font-size:12.0pt'><o:p> </o:p></span></p> + </td> + </tr> +</table> + +<p><span style='font-size:7.5pt;font-family:"MS Sans Serif","serif"'>� +Microsoft Corporation</span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +<o:p></o:p></span></p> + +</div> + +</body> + +</html> diff --git a/general/perfcounters/kcs/kcs.sln b/general/perfcounters/kcs/kcs.sln index 6630e582..2d6fe420 100644 --- a/general/perfcounters/kcs/kcs.sln +++ b/general/perfcounters/kcs/kcs.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kcs", "kcs.vcxproj", "{FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kcs", "kcs.vcxproj", "{7596269F-A8F8-465D-A627-3B5878A73DDF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +13,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Debug|Win32.ActiveCfg = Debug|Win32 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Debug|Win32.Build.0 = Debug|Win32 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Release|Win32.ActiveCfg = Release|Win32 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Release|Win32.Build.0 = Release|Win32 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Debug|x64.ActiveCfg = Debug|x64 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Debug|x64.Build.0 = Debug|x64 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Release|x64.ActiveCfg = Release|x64 - {FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}.Release|x64.Build.0 = Release|x64 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Debug|Win32.ActiveCfg = Debug|Win32 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Debug|Win32.Build.0 = Debug|Win32 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Release|Win32.ActiveCfg = Release|Win32 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Release|Win32.Build.0 = Release|Win32 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Debug|x64.ActiveCfg = Debug|x64 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Debug|x64.Build.0 = Debug|x64 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Release|x64.ActiveCfg = Release|x64 + {7596269F-A8F8-465D-A627-3B5878A73DDF}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/general/perfcounters/kcs/kcs.vcxproj b/general/perfcounters/kcs/kcs.vcxproj index c58a9026..1dcd38af 100644 --- a/general/perfcounters/kcs/kcs.vcxproj +++ b/general/perfcounters/kcs/kcs.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{FA4BC0C3-DA1C-46DA-BFF4-AA448B5D0A0A}</ProjectGuid> + <ProjectGuid>{7596269F-A8F8-465D-A627-3B5878A73DDF}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{C44D3FE1-3E60-4619-A1F9-E34A55C6FCA7}</SampleGuid> + <SampleGuid>{69F72AB3-96CC-43AD-A68F-CB688463DDA0}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/perfcounters/kcs/kcs.vcxproj.Filters b/general/perfcounters/kcs/kcs.vcxproj.Filters index fedf64ea..fc8b9ec1 100644 --- a/general/perfcounters/kcs/kcs.vcxproj.Filters +++ b/general/perfcounters/kcs/kcs.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{1E487FA6-DCB9-4A49-A9B9-3A1C9D75EB43}</UniqueIdentifier> + <UniqueIdentifier>{355E458C-12D5-4C11-ADC3-406D93CFB8A8}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{E4CC3C2E-1709-47A1-A48A-1EB157A1251C}</UniqueIdentifier> + <UniqueIdentifier>{EDE44450-36F4-47D8-B151-48C17BDF62DD}</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>{3D42F00B-B811-48EC-BB7A-2D8047551422}</UniqueIdentifier> + <UniqueIdentifier>{ADDD9180-1AB7-4BDB-931B-6D108B189EB5}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{4AE0C581-1388-4311-8C6C-9087111D70F5}</UniqueIdentifier> + <UniqueIdentifier>{36374B68-325A-4EE5-B9E7-523B2544F1D3}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/registry/regfltr/exe/regctrl.vcxproj b/general/registry/regfltr/exe/regctrl.vcxproj index a0a9e234..60d7f41c 100644 --- a/general/registry/regfltr/exe/regctrl.vcxproj +++ b/general/registry/regfltr/exe/regctrl.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{F3CBF3E0-E60F-409E-9402-A508C8008EB7}</ProjectGuid> + <ProjectGuid>{C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{7DBA6C3C-01A4-4CB0-A5A2-0D1E014C3F17}</SampleGuid> + <SampleGuid>{D3AEFA3D-C8F6-4B1F-9977-D2D0D6A8B318}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/registry/regfltr/exe/regctrl.vcxproj.Filters b/general/registry/regfltr/exe/regctrl.vcxproj.Filters index 33b9e1e1..176ee63c 100644 --- a/general/registry/regfltr/exe/regctrl.vcxproj.Filters +++ b/general/registry/regfltr/exe/regctrl.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{9713D19A-A900-45FB-AA68-19BDFD105192}</UniqueIdentifier> + <UniqueIdentifier>{9E122CD6-5345-418A-AFA8-B17887197386}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{8A005B43-A062-4866-BEC2-037F5820B234}</UniqueIdentifier> + <UniqueIdentifier>{95638411-9C24-4D8D-955D-26586E3BD517}</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>{768BFEC7-A3C9-42EA-BCB0-30162CB4DA90}</UniqueIdentifier> + <UniqueIdentifier>{E8182A13-CD10-438C-A333-32F784173C22}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/registry/regfltr/regfltr.sln b/general/registry/regfltr/regfltr.sln index 1b1e31c3..59193da5 100644 --- a/general/registry/regfltr/regfltr.sln +++ b/general/registry/regfltr/regfltr.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{C7CD81BA-CF73-4628-909C-77E4B3370C77}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{FADD4059-9BCA-43E7-93E1-D841DDC3359C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{700EF2F6-A93B-4398-AE93-EFA0C49511C6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{10003933-73CE-44B3-BB13-A248CD5862A8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regctrl", "exe\regctrl.vcxproj", "{F3CBF3E0-E60F-409E-9402-A508C8008EB7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regctrl", "exe\regctrl.vcxproj", "{C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regfltr", "sys\regfltr.vcxproj", "{12666DFF-2CD6-4000-AFE6-0796D9B6D330}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regfltr", "sys\regfltr.vcxproj", "{5FA7255C-4B69-42A2-8511-FA5CF23789C1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Debug|Win32.ActiveCfg = Debug|Win32 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Debug|Win32.Build.0 = Debug|Win32 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Release|Win32.ActiveCfg = Release|Win32 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Release|Win32.Build.0 = Release|Win32 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Debug|x64.ActiveCfg = Debug|x64 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Debug|x64.Build.0 = Debug|x64 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Release|x64.ActiveCfg = Release|x64 - {F3CBF3E0-E60F-409E-9402-A508C8008EB7}.Release|x64.Build.0 = Release|x64 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Debug|Win32.ActiveCfg = Debug|Win32 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Debug|Win32.Build.0 = Debug|Win32 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Release|Win32.ActiveCfg = Release|Win32 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Release|Win32.Build.0 = Release|Win32 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Debug|x64.ActiveCfg = Debug|x64 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Debug|x64.Build.0 = Debug|x64 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Release|x64.ActiveCfg = Release|x64 - {12666DFF-2CD6-4000-AFE6-0796D9B6D330}.Release|x64.Build.0 = Release|x64 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Debug|Win32.ActiveCfg = Debug|Win32 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Debug|Win32.Build.0 = Debug|Win32 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Release|Win32.ActiveCfg = Release|Win32 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Release|Win32.Build.0 = Release|Win32 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Debug|x64.ActiveCfg = Debug|x64 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Debug|x64.Build.0 = Debug|x64 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Release|x64.ActiveCfg = Release|x64 + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2}.Release|x64.Build.0 = Release|x64 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Debug|Win32.Build.0 = Debug|Win32 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Release|Win32.ActiveCfg = Release|Win32 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Release|Win32.Build.0 = Release|Win32 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Debug|x64.ActiveCfg = Debug|x64 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Debug|x64.Build.0 = Debug|x64 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Release|x64.ActiveCfg = Release|x64 + {5FA7255C-4B69-42A2-8511-FA5CF23789C1}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {F3CBF3E0-E60F-409E-9402-A508C8008EB7} = {C7CD81BA-CF73-4628-909C-77E4B3370C77} - {12666DFF-2CD6-4000-AFE6-0796D9B6D330} = {700EF2F6-A93B-4398-AE93-EFA0C49511C6} + {C1237DB4-2E21-436F-A4E7-7C5B7632D1A2} = {FADD4059-9BCA-43E7-93E1-D841DDC3359C} + {5FA7255C-4B69-42A2-8511-FA5CF23789C1} = {10003933-73CE-44B3-BB13-A248CD5862A8} EndGlobalSection EndGlobal diff --git a/general/registry/regfltr/sys/regfltr.vcxproj b/general/registry/regfltr/sys/regfltr.vcxproj index 6bddb5e4..bd877cee 100644 --- a/general/registry/regfltr/sys/regfltr.vcxproj +++ b/general/registry/regfltr/sys/regfltr.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{12666DFF-2CD6-4000-AFE6-0796D9B6D330}</ProjectGuid> + <ProjectGuid>{5FA7255C-4B69-42A2-8511-FA5CF23789C1}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{3973A2A5-EFFD-4997-985D-51731D2A58CA}</SampleGuid> + <SampleGuid>{72113749-69A5-4D2B-A747-75C97C239409}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/registry/regfltr/sys/regfltr.vcxproj.Filters b/general/registry/regfltr/sys/regfltr.vcxproj.Filters index 22722767..5c90e0f7 100644 --- a/general/registry/regfltr/sys/regfltr.vcxproj.Filters +++ b/general/registry/regfltr/sys/regfltr.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{2B50099F-1EBF-480D-9136-448FBDF31F1F}</UniqueIdentifier> + <UniqueIdentifier>{0AA7B9CC-6AAF-487B-9036-B939FD9A9B0E}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{1001336B-4543-45F1-A020-C5E84A980E24}</UniqueIdentifier> + <UniqueIdentifier>{BB821D94-5629-40BE-B5B8-809B58382931}</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>{9EEC1AF7-63F4-44AB-81FA-A0DAC270B821}</UniqueIdentifier> + <UniqueIdentifier>{28C582AD-3C88-4631-A980-E0EB0684D9FA}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{AE93F2E1-863E-4BAE-BC5D-09810656976E}</UniqueIdentifier> + <UniqueIdentifier>{87216377-AE9B-47DE-995E-F11370E84553}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/toaster/toastpkg/toastapp/toastapp.vcxproj b/general/toaster/toastpkg/toastapp/toastapp.vcxproj index 9e71f3da..5deac4a6 100644 --- a/general/toaster/toastpkg/toastapp/toastapp.vcxproj +++ b/general/toaster/toastpkg/toastapp/toastapp.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{1C818755-28B2-4C84-8623-FF84F3326B64}</ProjectGuid> + <ProjectGuid>{A8A63599-6EC4-4103-93F2-67403B310ECE}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{42007D8E-51B7-469B-B5D0-45C7674BFFEF}</SampleGuid> + <SampleGuid>{52D1A92C-A8CF-4ED9-A4C5-DE0E54683CC9}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/toaster/toastpkg/toastapp/toastapp.vcxproj.Filters b/general/toaster/toastpkg/toastapp/toastapp.vcxproj.Filters index bcbb10b1..3bd997c3 100644 --- a/general/toaster/toastpkg/toastapp/toastapp.vcxproj.Filters +++ b/general/toaster/toastpkg/toastapp/toastapp.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{5B7E141F-3C1C-446C-B423-22D8F13BD05C}</UniqueIdentifier> + <UniqueIdentifier>{3CAB87A0-84A1-442D-A0DA-AFE6311FDF5F}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{21C18B76-71F9-4B0C-B377-B15E4821D9CD}</UniqueIdentifier> + <UniqueIdentifier>{5745867E-8275-4764-8224-38EDA6FF5215}</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>{67F5F556-F3BD-4452-88F3-806BDB94EB5F}</UniqueIdentifier> + <UniqueIdentifier>{A5E2F374-BB6F-4016-AAEA-BFBB7C4B7DE1}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/toaster/toastpkg/toastcd/tostx86.cat b/general/toaster/toastpkg/toastcd/tostx86.cat Binary files differindex 31450f2f..47a4fdf5 100644 --- a/general/toaster/toastpkg/toastcd/tostx86.cat +++ b/general/toaster/toastpkg/toastcd/tostx86.cat diff --git a/general/toaster/toastpkg/toastcd/tstamd64.cat b/general/toaster/toastpkg/toastcd/tstamd64.cat Binary files differindex f91fe53f..5d500130 100644 --- a/general/toaster/toastpkg/toastcd/tstamd64.cat +++ b/general/toaster/toastpkg/toastcd/tstamd64.cat diff --git a/general/toaster/toastpkg/toastco/tostrco2.vcxproj b/general/toaster/toastpkg/toastco/tostrco2.vcxproj index ee1a266f..e0cfe4d9 100644 --- a/general/toaster/toastpkg/toastco/tostrco2.vcxproj +++ b/general/toaster/toastpkg/toastco/tostrco2.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}</ProjectGuid> + <ProjectGuid>{2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{F4010EA2-CDEF-4E68-AF56-C0240162D712}</SampleGuid> + <SampleGuid>{E58D7499-1030-49A4-9FD8-CB60E7F71D05}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/toaster/toastpkg/toastco/tostrco2.vcxproj.Filters b/general/toaster/toastpkg/toastco/tostrco2.vcxproj.Filters index 5639c710..4766e098 100644 --- a/general/toaster/toastpkg/toastco/tostrco2.vcxproj.Filters +++ b/general/toaster/toastpkg/toastco/tostrco2.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{FF79EB36-D2F2-497B-9B3B-1F5D4BA911D4}</UniqueIdentifier> + <UniqueIdentifier>{0202E791-D56D-4726-BDAF-E96655EA47F7}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{A4BFE1CB-F5FD-4F98-8EA6-6B0F543535C6}</UniqueIdentifier> + <UniqueIdentifier>{C5D6053C-04B1-46D4-94A3-6DDCD2C1D19C}</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>{F4E6AFB3-5EF2-4D35-92BF-D0DAD16E87B5}</UniqueIdentifier> + <UniqueIdentifier>{ECD2A7C2-F1AA-4184-B6BE-7CD1E8BBBCAE}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/toaster/toastpkg/toastpkg.htm b/general/toaster/toastpkg/toastpkg.htm new file mode 100644 index 00000000..cd780261 --- /dev/null +++ b/general/toaster/toastpkg/toastpkg.htm @@ -0,0 +1,186 @@ +<HTML> +<HEAD> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows- +1252"> +<META NAME="Generator" CONTENT="Microsoft Word 97"> +<TITLE>Toaster Installation Package</TITLE> +</HEAD> +<BODY LINK="#0000ff"> + +<FONT FACE="Verdana" SIZE=5><H2>Toaster Installation Package</H2> +</FONT><FONT FACE="Verdana" SIZE=2> + + +<H3>SUMMARY</H3></FONT><FONT FACE="Verdana" SIZE=2><P> +This document discusses the different approaches that end users take when adding new hardware to their computer, and describes an approach that addresses these scenarios in a consistent, robust manner that works cooperatively with Plug and Play in Windows 2000 and Windows XP. It also outlines the mechanisms provided to facilitate additional vendor requirements such as the installation of value-added software. + +<H3>INTRODUCTION</H3></FONT><FONT FACE="Verdana" SIZE=2><P> +The installation of software to support an instance of a given device (known as "device installation" or "driver installation") is done in a device-centric fashion in Windows operating systems. A device INF that matches up with one of the device's hardware or compatible IDs is used to identify the required driver file(s), registry modifications, etc., that are needed to make the device fully operational. This INF, along with the files copied thereby and a catalog that contains the digital signatures of the INF and these other files, constitute what is known as a "driver package". + +<p> +Because device installation is done for a specific instance of a device, the "natural" method of adding devices to a computer running a Plug and Play operating system is by plugging in the device first, letting Plug and Play find the device and automatically initiate an installation for that device. The device installation may then proceed using a driver package supplied with the OS, or a "3rd-party" driver package (supplied via CD-ROM, the Internet, or some other distribution mechanism). When the device installation is initiated by the addition of hardware, this is termed a "hardware-first" device +installation. + +<p> +Users may, however, take an alternate approach to adding hardware to their computer. In this scenario, they first run a setup program (perhaps launched as an autorun application when the vendor-supplied CD-ROM is inserted). This setup program may perform installation activities, and then prompt the user to insert their hardware. Upon the hardware's insertion, the vendor-supplied driver package (which was "pre-installed" by the setup program) is then found by Plug and Play, and the installation proceeds as in the hardware-first scenario. When the device installation is initiated by running a setup program, this is termed a "software-first" device installation. This approach to adding new hardware is just as valid as the hardware-first scenario, and some vendors may even instruct their users (via documentation that ships with the hardware) that this is the preferred method. + +<p> +Vendors must support the hardware-first scenario (by providing a driver package that may be supplied to the "Found New Hardware" wizard with no +"pre-configuration" performed by a setup program or other mechanism). Vendors may optionally support the software-first scenario as well, but the +actual installation of the device instance is done by Plug and Play upon the device's arrival, as described above. + +<p> +Vendors may also wish to perform additional activities as part of the device installation. For example, the vendor may want to allow the user to optionally install one or more applications that ship with the device (e.g., a scanner that ships with an image processing application). Such software is termed "value-added software". Value-added software is distinct from the files that comprise the driver package because, unlike the core driver files, the device does not require value-added software to function properly. In the previous example of a scanner, for instance, perhaps the user already has an image processing application that they prefer. The user should be given the option of whether or not they want to install any value-added software. Additional activities (such as allowing the user to select value-added software offerings) may be accomplished by using a vendor-supplied +device-specific co-installer. + + +<H3>INTRODUCTION TO THE TOASTER INSTALLATION SAMPLE</H3></FONT><FONT FACE="Verdana" SIZE=2><P> +This sample contains <B>inf, toastapp, toastcd, toastco, </B> and<B> toastva</B> directories. The following summary describes the directories and key files. +<P> + +<I>inf</I> +<BLOCKQUOTE> +This directory contains the device INF (<B>toastpkg.inf</B>) that is used in device installation of toaster devices enumerated by the toaster bus enumerator. It registers a device-specific co-installer (<B>tostrco2.dll</B>) that provides additional functionality during the installation. + +<p> +Also contained in this directory is the <B>autorun.inf</B> file that would be placed in the root of the vendor's setup media (e.g., CD-ROM). This INF will launch the <B>toastva.exe</B> application (described below) when the media is inserted in an autorun-capable drive, or when the user double-clicks on the drive icon in Explorer. Additionally, this INF illustrates the [DeviceInstall] section that is a new feature introduced in Windows XP for +autorun INF files: + +<BLOCKQUOTE> +<p> +[DeviceInstall] +<p> +DriverPath=\ +</BLOCKQUOTE> + +<p> +The DriverPath entry in a [DeviceInstall] section indicates to the Found New Hardware and Update Driver wizards that Plug and Play should search for +device INFs in the specified directory only. This provides a performance improvement for media layouts that contain many subdirectories, since the default +behavior is for Plug and Play to recursively search the entire CD. Additionally, specifying no DriverPath entry in this section indicates that the CD contains no drivers, thus Plug and Play can quickly determine that it can ignore this media. Absence of the [DeviceInstall] section will cause the media to be treated as it was in previous versions of Windows (e.g., as in Windows Me and Windows 2000, the entire media will be searched recursively for applicable INFs). +</BLOCKQUOTE> + +<I>toastapp</I> <BLOCKQUOTE> +This directory contains the source code for the <B>toastapp.exe</B> program that is used as value-added software that may optionally be installed by the user as part of device installation. This program is installed via the InstallShield(tm) (Microsoft Installer-based) setup program in the <I>toastcd\ToastApp</I> directory. +</BLOCKQUOTE> + +<I>toastcd</I> <BLOCKQUOTE> +This directory contains the CD image that would be used by the vendor to distribute the toaster package. In the root of the image, we have the +<B>autorun.inf</B> which launches either the x86 or ia64 version of <B>toastva.exe</B> (depending on platform). Also in the root we have the device INF, +<B>toastpkg.inf</B>, and the two associated catalogs, <B>tostx86.cat</B> and <B>tostia64.cat</B>, for the x86 and ia64 platforms respectively. Finally, +in the root we also have the zero-length tag file <B>toastpkg.tag</B>, which is used to identify the media in case it must be prompted for. This tagfile is +referenced in the <I>SourceDisksNames</I> sections of <B>toastpkg.inf</B>: + +<BLOCKQUOTE> +<p> +[SourceDisksNames.x86] +<p> +1 = %DiskId1%, toastpkg.tag,,\i386 +<p> +[SourceDisksNames.ia64] +<p> +1 = %DiskId1%, toastpkg.tag,,\ia64 +</BLOCKQUOTE> + +<p> +The i386 and ia64 subdirectories contain the driver files that, along with the INF and CAT, constitute the driver package. These files are +<B>toaster.sys</B>, <B>tostrcls.dll</B>, and <B>tostrco2.dll</B>. Their corresponding debug (.PDB) files are located there as well, although +these aren�t installed. Additionally, as mentioned above, the <B>toastva.exe</B> program (and its .PDB file) is located here. Note that this +is not part of the driver package�it is merely used to facilitate software-first installation. Since this executable is not part of the driver +package, it may be modified without affecting the digital signature of the package. + +<p> +Finally, the <I>ToastApp</I> subdirectory contains the <B>setup.exe</B> program that installs the value-added software package, <B>toastapp.exe</B>. This +<B>setup.exe</B> is a standalone package that contains the files it installs within this single binary. This is meant to represent an example of the kind +of software that might be supplied to a vendor by an ISV for distribution with that vendor's hardware. While this particular setup program was authored +with InstallShield(tm), other installation methods are equally valid. For example, the setup program could have been written using C/C++, directly +leveraging the Microsoft Installer (MSI) application programming interfaces (API). + +<p> +The <B>tostrco2.dll</B> module is constructed so that there is no requirement on how the value-added software is installed--it simply creates a process to initiate the setup program, then waits for that process to terminate before continuing. For the sample, the description of the value-added software offerings and details of launching the value-added setup application are hard-coded, but in a real-world scenario, the value-added software supplied might be listed in some sort of data file (perhaps an INF file) and the value-added software selection page would be completely data driven, using the information contained in that data file. This would be advantageous, for example, because a vendor could submit just their core driver package for Windows Logo testing without any value-added software (and without this data file). The vendor could then construct setup media containing the core driver package plus value-added software as they see fit. The contents of their setup media could be modified at any time by adding or removing value-added software, and no changes to the core driver package would be required (hence, no need to re-submit for Windows Logo testing). This works because the data file containing details about the +value-added software offerings isn't a part of the driver package, and thus can be changed without affecting that package. A co-installer DLL written +to accommodate such a scheme could have default behavior that would not display the value-added software selection page in the absence of this data file. +</BLOCKQUOTE> + +<I>toastco</I> <BLOCKQUOTE> +This directory contains the co-installer, <B>tostrco2.dll</B>, which is used during device installation of toaster devices enumerated by the toaster bus enumerator. This co-installer supplies a finish-install wizard page that allows the user to select the value-added software, if any, that they wish to install. It does not supply a finish-install wizard page if the user has previously responded to the wizard page (whether or not they opted to install value-added software) so that the user isn't prompted multiple times in the case where they plug in multiple toasters (or the same toaster is plugged into multiple ports, which will appear to Plug and Play as different instances of that device). + +<p> +This DLL also supplies the same value-added software selection page for use by the <B>toastva.exe</B> setup program. This avoids code duplication and ensures a consistent user experience for the hardware-first and software-first scenarios. + +<p> +Finally, this co-installer performs the same function as its version 1 counterpart (in the <I>coinstaller</I> directory under the main toaster directory). It provides a friendly name for the device that incorporates its serial number. However, this version retrieves the friendly name template from the INF, and since the template is stored in the [Strings] section, it may be localized for other languages. + +<p> +The reason this co-installer�s filename includes version number is to illustrate the technique that must be used when updating the driver for a device that may already have a previous version of the co-installer installed. If the name is not changed, then the old co-installer will be loaded early-on during the processing of DIF codes, and the updated version won�t be able to �get in the loop� to perform its new actions when installing the device. Thus, co-installers should include a version number in their filename, so that the new version can be copied and can participate in the device installation. + </BLOCKQUOTE> + +<I>toastva</I> <BLOCKQUOTE> +This directory contains the autorun installation application, <B>toastva.exe</B>, which is launched when the user inserts the vendor-provided CD-ROM. This application is used to "pre-install" the necessary INF and catalog, along with any value-added software the user chooses. In addition, it uses the <B>UpdateDriverForPlugAndPlayDevices</B> API to update the existing installed drivers for any toasters that may already be present. Examples of scenarios where this would apply are: +<OL> +<LI> +The user previously plugged in a toaster, and there was no in-box support (i.e., no supporting driver was included with Windows) for it. The user didn't supply a vendor provided driver package at that time (perhaps because they didn't have the media), so no driver was installed for the device (this is sometimes referred to as a "null driver install"). +<LI> +The user previously plugged in a toaster, and there was in-box support for it (perhaps using an older or reduced-functionality driver). +<LI> +The user previously plugged in a toaster, and at that time supplied an older version of the driver provided by the vendor. +</UL> +<P> +In all the above cases, the <B>UpdateDriverForPlugAndPlayDevices</B> API will seek out any toaster device instances matching the specified hardware or compatible ID, and determine whether the specified driver package is "better" (i.e., lower rank or newer). If so, the device instance will be updated with the specified driver package. +</BLOCKQUOTE> + +<H3>BUILDING THE SAMPLE</H3></FONT><FONT FACE="Verdana" +SIZE=2><P> +To build the Toaster Installation Sample components, you must first set up the DDK environment on your host machine. The �Installation and Release Notes� +topic in the Windows XP DDK has a complete description on how to do this. + +<P> +Run the build �cZ command in the <I>toastpkg</I> directory to build <B>tostrco2.dll</B>, <B>toastapp.exe</B>, and <B>toastva.exe</B>. Run the build �cZ +command in the <I>classinstaller</I> and <I>func</I> subdirectories of the main <I>Toaster</I> directory (parent of the <I>toastpkg</I> directory) to build +<B>tostrcls.dll</B> and <B>toaster.sys</B>. The <I>toastcd</I> directory contains all these components already built with full debugging information. The +reason is so that the sample could be digitally signed (thus exactly reproducing the ideal user experience). + +<P> +To experiment with certain behaviors of this package (e.g., <B>toastva.exe</B> launched via CD autorun), it is necessary to copy the entire contents of the <I>toastcd</I> tree onto a writeable CD. +<P> + +<H3>RUNNING THE SAMPLE</H3></FONT><FONT FACE="Verdana" SIZE=2><P> +The sample can be run in two different ways, corresponding to the hardware-first and software-first scenarios. +<P> +<B>Hardware-First Device Installation Walk-Through</B> +<P> +Simulate the plugging in of a toaster by typing the following at a command prompt (see the documentation for the toaster sample driver for more information on setting up the toaster bus enumerator and using the "enum" application to simulate plugging and unplugging of toaster devices): + +<BLOCKQUOTE> +<P> +C:\>enum -p 1 +</BLOCKQUOTE> + +<P> +Since there is no in-box driver for this device, the Found New Hardware wizard will appear, prompting for a driver package. If you constructed the setup image on autorun-capable media (e.g., writeable CD or DVD), you may insert that media in the drive, and Windows XP will automatically initiate a driver search on that media. On Windows 2000, you must click "Next" to initiate the driver search on that media. If you constructed the setup image in a directory on your hard disk, then you must click the "Install from a list or specific location (Advanced)" radio button, then click "Next". On the next page, click the "Include this location in the search:" checkbox, and type the path to the directory. Clicking "Next" will then initiate a driver search in the directory you specified. + +<P> +The install will proceed using the <B>toastpkg.inf </B>file in the root of the install location. The co-installer, <B>tostrco2.dll</B>, will assign the device a friendly name during <B>DIF_INSTALLDEVICE</B>, and will supply a value-add software selection wizard page in response to <B>DIF_NEWDEVICEWIZARD_FINISHINSTALL</B>. This page will only be supplied if the user hasn�t been given the option previously of selecting value-added software (of if they�ve since uninstalled said software). This allows subsequent toasters to be installed server-side, without any user interaction whatsoever (even if a non-admin user or no user is logged in). + +<P> +<B>Software-First Device Installation Walk-Through</B> +<P> +If you constructed the setup image on auto-run capable media (e.g., writeable CD or DVD), you can simply insert the media, and the <B>toastva.exe</B> program will automatically launch. Note that <B>toastva.exe</B> suppresses itself when invoked while a device installation is in progress, which is why this application doesn�t appear during the hardware-first scenario described above. + +<P> +After the Welcome page, the wizard will attempt to update the driver for any existing toaster devices (via the <B>UpdateDriverForPlugAndPlayDevices</B>) API. +If there aren�t any, it will instead �pre-install� the INF using the <B>SetupCopyOEMInf</B> API so that Plug and Play will automatically find a match when +the hardware is subsequently inserted. <B>SetupCopyOEMInf</B> also stores away information that allows Plug and Play to know where the INF came from, thus allowing the Found New Hardware wizard to prompt for media in the correct location if it ever needs to. In this scenario, it is presumed that the user will plug in their toaster upon completion of the wizard, when they�re instructed to do so. As such, they should never actually be prompted to reinsert the CD, since they wouldn�t have removed it. However, if they had removed it, Plug and Play would prompt them to reinsert it. It is possible to �pre-install� all the driver files as well so that the user would never be prompted, even if they did remove the CD. The Windows XP DDK has a discussion of this technique in the section titled �Writing a Device Installation Application� in the Device Installation chapter. + +<P> +Next, the wizard displays the same value-add software selection page as the user would receive if they�d performed a hardware-first install, as described above. After clicking �Next� on this page, any selected applications are installed (the wizard is hidden while these setup processes run), then the Finish wizard page appears. If the wizard didn�t find any devices during its call to <B>UpdateDriverForPlugAndPlayDevices</B>, it prompts the user to plug in their hardware now. When the user does plug in the hardware (i.e., by typing �enum �p 1� as described above), then the install will proceed without requiring any user interaction. + +<H3>FEEDBACK</H3> + <P>We welcome your comments, problem reports and wish-list requests. Please + submit them by pointing your Internet browser to <A + href="http://www.microsoft.com/whdc/default.mspx">http://www.microsoft.com/whdc/default.mspx</A>. +</P> + + +<P> +<FONT FACE="MS Sans Serif" SIZE=1><P>© 2005 Microsoft Corporation</FONT><FONT FACE="Verdana" SIZE=2> </P></FONT></BODY> +</HTML> diff --git a/general/toaster/toastpkg/toastpkg.sln b/general/toaster/toastpkg/toastpkg.sln index 13fee6ef..7fd13435 100644 --- a/general/toaster/toastpkg/toastpkg.sln +++ b/general/toaster/toastpkg/toastpkg.sln @@ -3,19 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toastapp", "Toastapp", "{BFAE4A6A-CD41-4052-AC38-EAC4DB8494DF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toastapp", "Toastapp", "{9A41588C-FCFB-4217-9153-99D10B0829EB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toastco", "Toastco", "{4C142C9D-56A8-44C0-84F1-D4ABBFA3E9F8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toastco", "Toastco", "{F540D936-4986-46C1-94C2-EB4E7172BBEA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toastva", "Toastva", "{47FE1DB3-FA82-4F24-96B1-C6798AA08C61}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toastva", "Toastva", "{E02E6DD1-0612-4CEE-A1F2-566FA71FB390}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toastapp", "toastapp\toastapp.vcxproj", "{1C818755-28B2-4C84-8623-FF84F3326B64}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toastapp", "toastapp\toastapp.vcxproj", "{A8A63599-6EC4-4103-93F2-67403B310ECE}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tostrco2", "toastco\tostrco2.vcxproj", "{84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tostrco2", "toastco\tostrco2.vcxproj", "{2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toastva", "toastva\toastva.vcxproj", "{7A49D840-4E82-477B-8105-CF546E4FD034}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toastva", "toastva\toastva.vcxproj", "{85967D7E-7E0A-4DEC-950F-19C263C05B6A}" ProjectSection(ProjectDependencies) = postProject - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22} = {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22} + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19} = {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19} EndProjectSection EndProject Global @@ -26,37 +26,37 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1C818755-28B2-4C84-8623-FF84F3326B64}.Debug|Win32.ActiveCfg = Debug|Win32 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Debug|Win32.Build.0 = Debug|Win32 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Release|Win32.ActiveCfg = Release|Win32 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Release|Win32.Build.0 = Release|Win32 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Debug|x64.ActiveCfg = Debug|x64 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Debug|x64.Build.0 = Debug|x64 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Release|x64.ActiveCfg = Release|x64 - {1C818755-28B2-4C84-8623-FF84F3326B64}.Release|x64.Build.0 = Release|x64 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Debug|Win32.ActiveCfg = Debug|Win32 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Debug|Win32.Build.0 = Debug|Win32 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Release|Win32.ActiveCfg = Release|Win32 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Release|Win32.Build.0 = Release|Win32 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Debug|x64.ActiveCfg = Debug|x64 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Debug|x64.Build.0 = Debug|x64 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Release|x64.ActiveCfg = Release|x64 - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22}.Release|x64.Build.0 = Release|x64 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Debug|Win32.ActiveCfg = Debug|Win32 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Debug|Win32.Build.0 = Debug|Win32 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Release|Win32.ActiveCfg = Release|Win32 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Release|Win32.Build.0 = Release|Win32 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Debug|x64.ActiveCfg = Debug|x64 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Debug|x64.Build.0 = Debug|x64 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Release|x64.ActiveCfg = Release|x64 - {7A49D840-4E82-477B-8105-CF546E4FD034}.Release|x64.Build.0 = Release|x64 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Debug|Win32.ActiveCfg = Debug|Win32 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Debug|Win32.Build.0 = Debug|Win32 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Release|Win32.ActiveCfg = Release|Win32 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Release|Win32.Build.0 = Release|Win32 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Debug|x64.ActiveCfg = Debug|x64 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Debug|x64.Build.0 = Debug|x64 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Release|x64.ActiveCfg = Release|x64 + {A8A63599-6EC4-4103-93F2-67403B310ECE}.Release|x64.Build.0 = Release|x64 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Debug|Win32.ActiveCfg = Debug|Win32 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Debug|Win32.Build.0 = Debug|Win32 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Release|Win32.ActiveCfg = Release|Win32 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Release|Win32.Build.0 = Release|Win32 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Debug|x64.ActiveCfg = Debug|x64 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Debug|x64.Build.0 = Debug|x64 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Release|x64.ActiveCfg = Release|x64 + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19}.Release|x64.Build.0 = Release|x64 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Debug|Win32.ActiveCfg = Debug|Win32 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Debug|Win32.Build.0 = Debug|Win32 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Release|Win32.ActiveCfg = Release|Win32 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Release|Win32.Build.0 = Release|Win32 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Debug|x64.ActiveCfg = Debug|x64 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Debug|x64.Build.0 = Debug|x64 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Release|x64.ActiveCfg = Release|x64 + {85967D7E-7E0A-4DEC-950F-19C263C05B6A}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {1C818755-28B2-4C84-8623-FF84F3326B64} = {BFAE4A6A-CD41-4052-AC38-EAC4DB8494DF} - {84F11D30-54EE-479A-8F8A-7FBFA8E6BE22} = {4C142C9D-56A8-44C0-84F1-D4ABBFA3E9F8} - {7A49D840-4E82-477B-8105-CF546E4FD034} = {47FE1DB3-FA82-4F24-96B1-C6798AA08C61} + {A8A63599-6EC4-4103-93F2-67403B310ECE} = {9A41588C-FCFB-4217-9153-99D10B0829EB} + {2C6F3F5F-06F7-4F86-8914-DB04CFDD9B19} = {F540D936-4986-46C1-94C2-EB4E7172BBEA} + {85967D7E-7E0A-4DEC-950F-19C263C05B6A} = {E02E6DD1-0612-4CEE-A1F2-566FA71FB390} EndGlobalSection EndGlobal diff --git a/general/toaster/toastpkg/toastva/toastva.vcxproj b/general/toaster/toastpkg/toastva/toastva.vcxproj index 1a25ac8c..e9aa4432 100644 --- a/general/toaster/toastpkg/toastva/toastva.vcxproj +++ b/general/toaster/toastpkg/toastva/toastva.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{7A49D840-4E82-477B-8105-CF546E4FD034}</ProjectGuid> + <ProjectGuid>{85967D7E-7E0A-4DEC-950F-19C263C05B6A}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{2DF87D9A-363B-4C6B-9E31-BE2BF60898DF}</SampleGuid> + <SampleGuid>{D7B39220-AA74-4EA0-B07C-59CA1E85D809}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/toaster/toastpkg/toastva/toastva.vcxproj.Filters b/general/toaster/toastpkg/toastva/toastva.vcxproj.Filters index 8ae9e8e3..bc07fd8a 100644 --- a/general/toaster/toastpkg/toastva/toastva.vcxproj.Filters +++ b/general/toaster/toastpkg/toastva/toastva.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{C874EFAD-3886-466E-97CC-4A852797DC29}</UniqueIdentifier> + <UniqueIdentifier>{A355FE6D-8F54-4AE5-BB0A-8097742C6850}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{4A7A3632-2660-49C4-9B04-6BD51BEA6316}</UniqueIdentifier> + <UniqueIdentifier>{D196262B-5F82-4ABA-AC81-0469C32AA57A}</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>{CDCE6E71-5F53-4E60-99F1-ABD1D5819475}</UniqueIdentifier> + <UniqueIdentifier>{2A7EB223-FB84-4B57-A4F3-78C1D05435A6}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/toaster/umdf2/Package/package.VcxProj b/general/toaster/umdf2/Package/package.VcxProj deleted file mode 100644 index d03cefec..00000000 --- a/general/toaster/umdf2/Package/package.VcxProj +++ /dev/null @@ -1,91 +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="PropertySheets"> - <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset> - <ConfigurationType>Utility</ConfigurationType> - <DriverType>Package</DriverType> - <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> - <Configuration>Debug</Configuration> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Label="Globals"> - <ProjectGuid>{52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}</ProjectGuid> - <SampleGuid>{7F090110-1487-4DA8-8CEA-3C1A43F8C119}</SampleGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>true</UseDebugLibraries> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>false</UseDebugLibraries> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>true</UseDebugLibraries> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>false</UseDebugLibraries> - </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> - <DebuggerFlavor>DbgengRemoteDebugger</DebuggerFlavor> - <ImportToStore>False</ImportToStore> - <InstallMode>None</InstallMode> - <HardwareIdString /> - <CommandLine /> - <ScriptPath /> - <DeployFiles /> - <ScriptName /> - <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery> - <EnableVerifier>False</EnableVerifier> - <AllDrivers>False</AllDrivers> - <VerifyProjectOutput>True</VerifyProjectOutput> - <VerifyDrivers /> - <VerifyFlags>133563</VerifyFlags> - </PropertyGroup> - <ItemDefinitionGroup> - </ItemDefinitionGroup> - <ItemGroup> - <!--Inf Include="DriverInf.inv" /--> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\filter\generic\filterum.vcxproj"> - <Project>{A60F76D2-C512-4DA6-8C80-263F1B506267}</Project> - </ProjectReference> - <ProjectReference Include="..\func\simple\wdfsimpleum.vcxproj"> - <Project>{4867F54B-D8EF-45B0-984E-D571D987174A}</Project> - </ProjectReference> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/Package/package.VcxProj.Filters b/general/toaster/umdf2/Package/package.VcxProj.Filters deleted file mode 100644 index 8153ab30..00000000 --- a/general/toaster/umdf2/Package/package.VcxProj.Filters +++ /dev/null @@ -1,21 +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>{1B3C45DA-0194-4257-B308-970F7B2AB7C0}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{84FCFB7D-58FA-4617-9482-C1BD332BCC31}</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>{824C0178-16B0-4768-B411-CE9BDD79D690}</UniqueIdentifier> - </Filter> - <Filter Include="Driver Files"> - <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{9C6B14B3-304F-491F-B5F1-C14CA36EC7E8}</UniqueIdentifier> - </Filter> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/ReadMe.md b/general/toaster/umdf2/ReadMe.md deleted file mode 100644 index 8bd9dada..00000000 --- a/general/toaster/umdf2/ReadMe.md +++ /dev/null @@ -1,58 +0,0 @@ -Toaster Sample (UMDF Version 2) -=============================== - -The Toaster (UMDF version 2) sample is an iterative series of samples that demonstrate fundamental aspects of Windows driver development. - -The Toaster sample collection is comprised of driver projects (.vcxproj files) that are contained in the umdf2toaster.sln solution file. - -For related information, see the [Toaster Sample](http://code.msdn.microsoft.com/windowshardware/Toaster-7d256224). - -## Universal Compliant -This sample builds a Windows Universal driver. It uses only APIs and DDIs that are included in Windows Core. - -Related technologies --------------------- - -[User-Mode Driver Framework](http://msdn.microsoft.com/en-us/library/windows/hardware/ff560456) - -Run the sample --------------- - -The computer where you install the driver is called the *target computer* or the *test computer*. Typically this is a separate computer from where you develop and build the driver package. The computer where you develop and build the driver is called the *host computer*. - -The process of moving the driver package to the target computer and installing the driver is called *deploying the driver*. You can deploy a driver sample automatically or manually. - -### Automatic deployment (root enumerated) - -Before you automatically deploy a driver, you must provision the target computer. For instructions, see [Configuring a Computer for Driver Deployment, Testing, and Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/). - -1. On the host computer, in Visual Studio, in Solution Explorer, right click **package** (lower case), and choose **Properties**. Navigate to **Configuration Properties \> Driver Install \> Deployment**. -2. Check **Enable deployment**, and check **Remove previous driver versions before deployment**. For **Target Computer Name**, select the name of a target computer that you provisioned previously. Select **Hardware ID Driver Update**, and enter **root\\toaster** for the hardware ID. Click **OK**. -3. Because this solution contains many projects, you may find it easier to remove some of them before you build and deploy a driver package. To do so, right click **package** (lower case), and choose **Properties**. Navigate to **Common Properties-\>References** and click **Remove Reference** to remove projects you don't want. (You can add them back later by using **Add New Reference**.) Click **OK**. -4. On the **Build** menu, choose **Build Solution** or **Rebuild Solution** (if you removed references). -5. If you removed references and deployment does not succeed, try deleting the contents of the c:\\DriverTest\\Drivers folder on the target machine, and then retry deployment. - -### Manual deployment (root enumerated) - -Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the [DevCon](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544707) tool to the target computer. For instructions, see [Preparing a Computer for Manual Driver Deployment](http://msdn.microsoft.com/en-us/library/windows/hardware/dn265571). - -1. Copy all of the files in your driver package to a folder on the target computer (for example, c:\\Umdf2toaster). -2. On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter a command such as: - - **devcon install wdfsimpleum.inf root\\toaster** - -### View the root enumerated driver in Device Manager - -On the target computer, in a Command Prompt window, enter **devmgmt** to open Device Manager. In Device Manager, on the **View** menu, choose **Devices by type**. In the device tree, locate **Sample WDF Toaster Service + Filter** (for example, this might be under the **Toaster** node). - -In Device Manager, on the **View** menu, choose **Devices by connection**. Locate **Sample WDF Toaster Service + Filter** as a child of the root node of the device tree. - -Build the sample using MSBuild ------------------------------- - -As an alternative to building the driver sample in Visual Studio, you can build it in a Visual Studio Command Prompt window. In Visual Studio, on the **Tools** menu, choose **Visual Studio Command Prompt**. In the Visual Studio Command Prompt window, navigate to the folder that has the solution file, Umdf2toaster.sln. Use the MSBuild command to build the solution. Here is an example: - -**msbuild /p:configuration=”Win8 Release” /p:platform=”Win32” Umdf2toaster.sln** - -For more information about using MSBuild to build a driver package, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644). - diff --git a/general/toaster/umdf2/exe/enum/Enum.vcxproj b/general/toaster/umdf2/exe/enum/Enum.vcxproj deleted file mode 100644 index 822a36c7..00000000 --- a/general/toaster/umdf2/exe/enum/Enum.vcxproj +++ /dev/null @@ -1,171 +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>{6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}</ProjectGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> - <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{2F2E0D4F-031E-4B76-983A-ED7F18562A15}</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>Enum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetName>Enum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetName>Enum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetName>Enum</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="enum.c" /> - </ItemGroup> - <ItemGroup> - <Inf Exclude="@(Inf)" Include="*.inf" /> - <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </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/toaster/umdf2/exe/enum/Enum.vcxproj.Filters b/general/toaster/umdf2/exe/enum/Enum.vcxproj.Filters deleted file mode 100644 index c84e1e9f..00000000 --- a/general/toaster/umdf2/exe/enum/Enum.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>{58C64BCB-5021-4790-BBB0-C1AB7A443B79}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{17570C2B-4A49-4EB7-9BC8-219A1CDD870D}</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>{B5B13117-98BA-4E65-833F-2DB49A70E1DF}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <ClCompile Include="enum.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/exe/enum/enum.c b/general/toaster/umdf2/exe/enum/enum.c deleted file mode 100644 index ac285115..00000000 --- a/general/toaster/umdf2/exe/enum/enum.c +++ /dev/null @@ -1,317 +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: - - Enum.c - -Abstract: - This application simulates the plugin, unplug or ejection - of devices. - -Environment: - - usermode console application - -Revision History: - - Eliyas Yakub Oct 14, 1998 - - ---*/ - -#include <basetyps.h> -#include <stdlib.h> -#include <wtypes.h> -#include <setupapi.h> -#include <initguid.h> -#include <stdio.h> -#include <string.h> -#include <winioctl.h> -#include "public.h" -#include <dontuse.h> - -// -// Prototypes -// - -BOOLEAN -OpenBusInterface ( - _In_ HDEVINFO HardwareDeviceInfo, - _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData - ); - - - -#define USAGE \ -"Usage: Enum [-p SerialNo] Plugs in a device. SerialNo must be greater than zero.\n\ - [-u SerialNo or 0] Unplugs device(s) - specify 0 to unplug all \ - the devices enumerated so far.\n\ - [-e SerialNo or 0] Ejects device(s) - specify 0 to eject all \ - the devices enumerated so far.\n" - -BOOLEAN bPlugIn, bUnplug, bEject; -ULONG SerialNo; - -INT __cdecl -main( - _In_ ULONG argc, - _In_reads_(argc) PCHAR argv[] - ) -{ - HDEVINFO hardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA deviceInterfaceData; - - bPlugIn = bUnplug = bEject = FALSE; - - if(argc <3) { - goto usage; - } - - if(argv[1][0] == '-') { - if(tolower(argv[1][1]) == 'p') { - if(argv[2]) - SerialNo = (USHORT)atol(argv[2]); - bPlugIn = TRUE; - } - else if(tolower(argv[1][1]) == 'u') { - if(argv[2]) - SerialNo = (ULONG)atol(argv[2]); - bUnplug = TRUE; - } - else if(tolower(argv[1][1]) == 'e') { - if(argv[2]) - SerialNo = (ULONG)atol(argv[2]); - bEject = TRUE; - } - else { - goto usage; - } - } - else - goto usage; - - if(bPlugIn && 0 == SerialNo) - goto usage; - // - // Open a handle to the device interface information set of all - // present toaster bus enumerator interfaces. - // - - hardwareDeviceInfo = SetupDiGetClassDevs ( - (LPGUID)&GUID_DEVINTERFACE_BUSENUM_TOASTER, - NULL, // Define no enumerator (global) - NULL, // Define no - (DIGCF_PRESENT | // Only Devices present - DIGCF_DEVICEINTERFACE)); // Function class devices. - - if(INVALID_HANDLE_VALUE == hardwareDeviceInfo) - { - printf("SetupDiGetClassDevs failed: %x\n", GetLastError()); - return 0; - } - - deviceInterfaceData.cbSize = sizeof (SP_DEVICE_INTERFACE_DATA); - - if (SetupDiEnumDeviceInterfaces (hardwareDeviceInfo, - 0, // No care about specific PDOs - (LPGUID)&GUID_DEVINTERFACE_BUSENUM_TOASTER, - 0, // - &deviceInterfaceData)) { - - OpenBusInterface(hardwareDeviceInfo, &deviceInterfaceData); - } else if (ERROR_NO_MORE_ITEMS == GetLastError()) { - - printf( - "Error:Interface GUID_DEVINTERFACE_BUSENUM_TOASTER is not registered\n"); - } - - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return 0; -usage: - printf(USAGE); - exit(0); -} - -BOOLEAN -OpenBusInterface ( - _In_ HDEVINFO HardwareDeviceInfo, - _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData - ) -{ - HANDLE file; - PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL; - ULONG predictedLength = 0; - ULONG requiredLength = 0; - ULONG bytes; - BUSENUM_UNPLUG_HARDWARE unplug; - BUSENUM_EJECT_HARDWARE eject; - PBUSENUM_PLUGIN_HARDWARE hardware; - BOOLEAN bSuccess; - - // - // Allocate a function class device data structure to receive the - // information about this particular device. - // - - SetupDiGetDeviceInterfaceDetail ( - HardwareDeviceInfo, - DeviceInterfaceData, - NULL, // probing so no output buffer yet - 0, // probing so output buffer length of zero - &requiredLength, - NULL); // not interested in the specific dev-node - - if(ERROR_INSUFFICIENT_BUFFER != GetLastError()) { - printf("Error in SetupDiGetDeviceInterfaceDetail%d\n", - GetLastError()); - return FALSE; - } - - predictedLength = requiredLength; - - deviceInterfaceDetailData = malloc (predictedLength); - - if(deviceInterfaceDetailData) { - deviceInterfaceDetailData->cbSize = - sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA); - } else { - printf("Couldn't allocate %d bytes for device interface details.\n", predictedLength); - return FALSE; - } - - - if (! SetupDiGetDeviceInterfaceDetail ( - HardwareDeviceInfo, - DeviceInterfaceData, - deviceInterfaceDetailData, - predictedLength, - &requiredLength, - NULL)) { - printf("Error in SetupDiGetDeviceInterfaceDetail\n"); - free (deviceInterfaceDetailData); - return FALSE; - } - - printf("Opening %s\n", deviceInterfaceDetailData->DevicePath); - - file = CreateFile ( deviceInterfaceDetailData->DevicePath, - GENERIC_READ, // Only read access - 0, // FILE_SHARE_READ | FILE_SHARE_WRITE - NULL, // no SECURITY_ATTRIBUTES structure - OPEN_EXISTING, // No special create flags - 0, // No special attributes - NULL); // No template file - - if (INVALID_HANDLE_VALUE == file) { - printf("CreateFile failed: 0x%x", GetLastError()); - free (deviceInterfaceDetailData); - return FALSE; - } - - printf("Bus interface opened!!!\n"); - - // - // From this point on, we need to jump to the end of the routine for - // common clean-up. Keep track of whether we succeeded or failed, so - // we'll know what to return to the caller. - // - bSuccess = FALSE; - - // - // Enumerate Devices - // - - if(bPlugIn) { - - printf("SerialNo. of the device to be enumerated: %d\n", SerialNo); - - hardware = malloc (bytes = (sizeof (BUSENUM_PLUGIN_HARDWARE) + - BUS_HARDWARE_IDS_LENGTH)); - - if(hardware) { - hardware->Size = sizeof (BUSENUM_PLUGIN_HARDWARE); - hardware->SerialNo = SerialNo; - } else { - printf("Couldn't allocate %d bytes for busenum plugin hardware structure.\n", bytes); - goto End; - } - - // - // Allocate storage for the Device ID - // - - memcpy (hardware->HardwareIDs, - BUS_HARDWARE_IDS, - BUS_HARDWARE_IDS_LENGTH); - - if (!DeviceIoControl (file, - IOCTL_BUSENUM_PLUGIN_HARDWARE , - hardware, bytes, - NULL, 0, - &bytes, NULL)) { - free (hardware); - printf("PlugIn failed:0x%x\n", GetLastError()); - goto End; - } - - free (hardware); - } - - // - // Removes a device if given the specific Id of the device. Otherwise this - // ioctls removes all the devices that are enumerated so far. - // - - if(bUnplug) { - printf("Unplugging device(s)....\n"); - - unplug.Size = bytes = sizeof (unplug); - unplug.SerialNo = SerialNo; - if (!DeviceIoControl (file, - IOCTL_BUSENUM_UNPLUG_HARDWARE, - &unplug, bytes, - NULL, 0, - &bytes, NULL)) { - printf("Unplug failed: 0x%x\n", GetLastError()); - goto End; - } - } - - // - // Ejects a device if given the specific Id of the device. Otherwise this - // ioctls ejects all the devices that are enumerated so far. - // - - if(bEject) - { - printf("Ejecting Device(s)\n"); - - eject.Size = bytes = sizeof (eject); - eject.SerialNo = SerialNo; - if (!DeviceIoControl (file, - IOCTL_BUSENUM_EJECT_HARDWARE, - &eject, bytes, - NULL, 0, - &bytes, NULL)) { - printf("Eject failed: 0x%x\n", GetLastError()); - goto End; - } - } - - printf("Success!!!\n"); - bSuccess = TRUE; - -End: - CloseHandle(file); - free (deviceInterfaceDetailData); - return bSuccess; -} - - diff --git a/general/toaster/umdf2/exe/notify/notify.c b/general/toaster/umdf2/exe/notify/notify.c deleted file mode 100644 index 3362ce3d..00000000 --- a/general/toaster/umdf2/exe/notify/notify.c +++ /dev/null @@ -1,1244 +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: notify.c - - -Abstract: - - -Author: - - Eliyas Yakub Nov 23, 1999 - -Environment: - - User mode only. - -Revision History: - - Modified to use linked list for deviceInfo - instead of arrays. (5/12/2000) - ---*/ -#define UNICODE -#define _UNICODE -#define INITGUID - -// -// Annotation to indicate to prefast that this is nondriver user-mode code. -// -#include <DriverSpecs.h> -_Analysis_mode_(_Analysis_code_type_user_code_) - -#include <windows.h> -#include <stdlib.h> -#include <string.h> -#include <setupapi.h> -#include <dbt.h> -#include <winioctl.h> -#include <strsafe.h> -#include "public.h" -#include "notify.h" -#include <dontuse.h> - -BOOL -HandlePowerBroadcast( - HWND hWnd, - WPARAM wParam, - LPARAM lParam); - -// -// Global variables -// -HINSTANCE hInst; -HWND hWndList; -TCHAR szTitle[]=TEXT("Toaster Package Test Application"); -LIST_ENTRY ListHead; -HDEVNOTIFY hInterfaceNotification; -TCHAR OutText[500]; -UINT ListBoxIndex = 0; -GUID InterfaceGuid;// = GUID_DEVINTERFACE_TOASTER; -BOOLEAN Verbose= FALSE; - -_inline BOOLEAN -IsValid( - ULONG No - ) -{ - PLIST_ENTRY thisEntry; - PDEVICE_INFO deviceInfo; - - if(0==(No)) return TRUE; //special case - - for(thisEntry = ListHead.Flink; thisEntry != &ListHead; - thisEntry = thisEntry->Flink) - { - deviceInfo = CONTAINING_RECORD(thisEntry, DEVICE_INFO, ListEntry); - if((No) == deviceInfo->SerialNo) { - return TRUE; - } - } - return FALSE; -} - -VOID -Display( - _In_ LPWSTR pstrFormat, // @parm A printf style format string - ... // @parm | ... | Variable paramters based on <p pstrFormat> - ) -{ - HRESULT hr; - va_list va; - - va_start(va, pstrFormat); - // - // Truncation is acceptable. - // - hr = StringCbVPrintf(OutText, sizeof(OutText)-sizeof(WCHAR), pstrFormat, va); - va_end(va); - - if(FAILED(hr)){ - return; - } - - SendMessage(hWndList, LB_INSERTSTRING, ListBoxIndex, (LPARAM)OutText); - SendMessage(hWndList, LB_SETCURSEL, ListBoxIndex, 0); - ListBoxIndex++; - -} - -VOID -DisplayV( - _In_ LPWSTR pstrFormat, // @parm A printf style format string - ... // @parm | ... | Variable paramters based on <p pstrFormat> - ) -{ - va_list va; - - if (Verbose) - { - va_start(va, pstrFormat); - Display(pstrFormat, va); - va_end(va); - } -} -int PASCAL -WinMain ( - _In_ HINSTANCE hInstance, - _In_opt_ HINSTANCE hPrevInstance, - _In_ LPSTR lpCmdLine, - _In_ int nShowCmd - ) -{ - static TCHAR szAppName[]=TEXT("Toaster Notify"); - HWND hWnd; - MSG msg; - WNDCLASS wndclass; - - UNREFERENCED_PARAMETER( lpCmdLine ); - - InterfaceGuid = GUID_DEVINTERFACE_TOASTER; - hInst=hInstance; - - if (!hPrevInstance) - { - wndclass.style = CS_HREDRAW | CS_VREDRAW; - wndclass.lpfnWndProc = WndProc; - wndclass.cbClsExtra = 0; - wndclass.cbWndExtra = 0; - wndclass.hInstance = hInstance; - wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.hbrBackground= GetStockObject(WHITE_BRUSH); - wndclass.lpszMenuName = TEXT("GenericMenu"); - wndclass.lpszClassName= szAppName; - - RegisterClass(&wndclass); - } - - hWnd = CreateWindow (szAppName, - szTitle, - WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - NULL, - NULL, - hInstance, - NULL); - - ShowWindow (hWnd, nShowCmd); - UpdateWindow(hWnd); - - while (GetMessage (&msg, NULL, 0,0)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - return (0); -} - - -LRESULT -FAR PASCAL -WndProc ( - HWND hWnd, - UINT message, - WPARAM wParam, - LPARAM lParam - ) -{ - DWORD nEventType = (DWORD)wParam; - PDEV_BROADCAST_HDR p = (PDEV_BROADCAST_HDR) lParam; - DEV_BROADCAST_DEVICEINTERFACE filter; - - switch (message) - { - - case WM_COMMAND: - HandleCommands(hWnd, message, wParam, lParam); - return 0; - - case WM_CREATE: - - // - // Load and set the icon of the program - // - SetClassLongPtr(hWnd, GCLP_HICON, - (LONG_PTR)LoadIcon((HINSTANCE)lParam,MAKEINTRESOURCE(IDI_CLASS_ICON))); - - hWndList = CreateWindow (TEXT("listbox"), - NULL, - WS_CHILD|WS_VISIBLE|LBS_NOTIFY | - WS_VSCROLL | WS_BORDER, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - hWnd, - (HMENU)ID_EDIT, - hInst, - NULL); - - filter.dbcc_size = sizeof(filter); - filter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; - filter.dbcc_classguid = InterfaceGuid; - hInterfaceNotification = RegisterDeviceNotification(hWnd, &filter, 0); - - InitializeListHead(&ListHead); - EnumExistingDevices(hWnd); - - return 0; - - case WM_SIZE: - - MoveWindow(hWndList, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); - return 0; - - case WM_SETFOCUS: - SetFocus(hWndList); - return 0; - - case WM_DEVICECHANGE: - - // - // The DBT_DEVNODES_CHANGED broadcast message is sent - // everytime a device is added or removed. This message - // is typically handled by Device Manager kind of apps, - // which uses it to refresh window whenever something changes. - // The lParam is always NULL in this case. - // - if(DBT_DEVNODES_CHANGED == wParam) { - DisplayV(TEXT("Received DBT_DEVNODES_CHANGED broadcast message")); - return 0; - } - - // - // All the events we're interested in come with lParam pointing to - // a structure headed by a DEV_BROADCAST_HDR. This is denoted by - // bit 15 of wParam being set, and bit 14 being clear. - // - if((wParam & 0xC000) == 0x8000) { - - if (!p) - return 0; - - if (p->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) { - - HandleDeviceInterfaceChange(hWnd, nEventType, (PDEV_BROADCAST_DEVICEINTERFACE) p); - } else if (p->dbch_devicetype == DBT_DEVTYP_HANDLE) { - - HandleDeviceChange(hWnd, nEventType, (PDEV_BROADCAST_HANDLE) p); - } - } - return 0; - - case WM_POWERBROADCAST: - HandlePowerBroadcast(hWnd, wParam, lParam); - return 0; - - case WM_CLOSE: - Cleanup(hWnd); - UnregisterDeviceNotification(hInterfaceNotification); - return DefWindowProc(hWnd,message, wParam, lParam); - - case WM_DESTROY: - PostQuitMessage(0); - return 0; - } - return DefWindowProc(hWnd,message, wParam, lParam); - } - - -LRESULT -HandleCommands( - HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam - ) - -{ - PDIALOG_RESULT result = NULL; - - UNREFERENCED_PARAMETER( uMsg ); - UNREFERENCED_PARAMETER( lParam ); - - switch (wParam) { - - case IDM_OPEN: - Cleanup(hWnd); // close all open handles - EnumExistingDevices(hWnd); - break; - - case IDM_CLOSE: - Cleanup(hWnd); - break; - - case IDM_HIDE: - result = (PDIALOG_RESULT)DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc); - if(result && result->SerialNo && IsValid(result->SerialNo)) { - DWORD bytes; - PDEVICE_INFO deviceInfo = NULL; - PLIST_ENTRY thisEntry; - - // - // Find out the deviceInfo that matches this SerialNo. - // We need the deviceInfo to get the handle to the device. - // - for(thisEntry = ListHead.Flink; thisEntry != &ListHead; - thisEntry = thisEntry->Flink) - { - deviceInfo = CONTAINING_RECORD(thisEntry, DEVICE_INFO, ListEntry); - if(result->SerialNo == deviceInfo->SerialNo) { - break; - } - deviceInfo = NULL; - } - - // - // If found send I/O control - // - - if (deviceInfo && !DeviceIoControl (deviceInfo->hDevice, - IOCTL_TOASTER_DONT_DISPLAY_IN_UI_DEVICE, - NULL, 0, - NULL, 0, - &bytes, NULL)) { - MessageBox(hWnd, TEXT("Request Failed or Invalid Serial No"), - TEXT("Error"), MB_OK); - } - } - break; - case IDM_PLUGIN: - - result = (PDIALOG_RESULT)DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG), hWnd, DlgProc); - if(result) { - if(!result->SerialNo || !OpenBusInterface(result->SerialNo, result->DeviceId, PLUGIN)){ - MessageBox(hWnd, TEXT("Invalid Serial Number or OpenBusInterface Failed"), TEXT("Error"), MB_OK); - } - } - break; - case IDM_UNPLUG: - result = (PDIALOG_RESULT)DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc); - - if(result && IsValid(result->SerialNo)) { - if(!OpenBusInterface(result->SerialNo, NULL, UNPLUG)) { - MessageBox(hWnd, TEXT("Invalid Serial Number or OpenBusInterface Failed"), TEXT("Error"), MB_OK); - } - } - break; - case IDM_EJECT: - result = (PDIALOG_RESULT)DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc); - if(result && IsValid(result->SerialNo)) { - if(!OpenBusInterface(result->SerialNo, NULL, EJECT)) { - MessageBox(hWnd, TEXT("Invalid Serial Number or OpenBusInterface Failed"), TEXT("Error"), MB_OK); - } - } - break; - - case IDM_CLEAR: - SendMessage(hWndList, LB_RESETCONTENT, 0, 0); - ListBoxIndex = 0; - break; - - case IDM_IOCTL: - SendIoctlToFilterDevice(); - break; - - case IDM_VERBOSE: { - - HMENU hMenu = GetMenu(hWnd); - Verbose = !Verbose; - if(Verbose) { - CheckMenuItem(hMenu, (UINT)wParam, MF_CHECKED); - } else { - CheckMenuItem(hMenu, (UINT)wParam, MF_UNCHECKED); - } - } - break; - - case IDM_EXIT: - PostQuitMessage(0); - break; - - default: - break; - } - - if(result) { - HeapFree (GetProcessHeap(), 0, result); - } - return TRUE; -} - -INT_PTR CALLBACK -DlgProc( - HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam -) -{ - BOOL success; - PDIALOG_RESULT dialogResult = NULL; - - UNREFERENCED_PARAMETER( lParam ); - - switch(message) - { - case WM_INITDIALOG: - SetDlgItemText(hDlg, IDC_DEVICEID, BUS_HARDWARE_IDS); - return TRUE; - - case WM_COMMAND: - switch( wParam) - { - case ID_OK: - dialogResult = HeapAlloc(GetProcessHeap(), - HEAP_ZERO_MEMORY, - (sizeof(DIALOG_RESULT) + MAX_PATH * sizeof(WCHAR))); - if(dialogResult) { - dialogResult->DeviceId = (PWCHAR)((PCHAR)dialogResult + sizeof(DIALOG_RESULT)); - dialogResult->SerialNo = GetDlgItemInt(hDlg,IDC_SERIALNO, &success, FALSE ); - GetDlgItemText(hDlg, IDC_DEVICEID, dialogResult->DeviceId, MAX_PATH-1 ); - } - EndDialog(hDlg, (UINT_PTR)dialogResult); - return TRUE; - case ID_CANCEL: - EndDialog(hDlg, 0); - return TRUE; - - } - break; - - } - return FALSE; -} - - -BOOL -HandleDeviceInterfaceChange( - HWND hWnd, - DWORD evtype, - PDEV_BROADCAST_DEVICEINTERFACE dip - ) -{ - DEV_BROADCAST_HANDLE filter; - PDEVICE_INFO deviceInfo = NULL; - HRESULT hr; - - switch (evtype) - { - case DBT_DEVICEARRIVAL: - // - // New device arrived. Open handle to the device - // and register notification of type DBT_DEVTYP_HANDLE - // - - deviceInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO)); - if(!deviceInfo) - return FALSE; - - InitializeListHead(&deviceInfo->ListEntry); - InsertTailList(&ListHead, &deviceInfo->ListEntry); - - - if(!GetDeviceDescription(dip->dbcc_name, - (PBYTE)deviceInfo->DeviceName, - sizeof(deviceInfo->DeviceName), - &deviceInfo->SerialNo)) { - MessageBox(hWnd, TEXT("GetDeviceDescription failed"), TEXT("Error!"), MB_OK); - } - - Display(TEXT("New device Arrived (Interface Change Notification): %ws"), - deviceInfo->DeviceName); - - hr = StringCchCopy(deviceInfo->DevicePath, MAX_PATH, dip->dbcc_name); - if(FAILED(hr)){ - // DeviceInfo will be freed later by the cleanup routine. - break; - } - - deviceInfo->hDevice = CreateFile(dip->dbcc_name, - GENERIC_READ |GENERIC_WRITE, 0, NULL, - OPEN_EXISTING, 0, NULL); - if(deviceInfo->hDevice == INVALID_HANDLE_VALUE) { - Display(TEXT("Failed to open the device: %ws"), deviceInfo->DeviceName); - break; - } - - Display(TEXT("Opened handled to the device: %ws"), deviceInfo->DeviceName); - memset (&filter, 0, sizeof(filter)); //zero the structure - filter.dbch_size = sizeof(filter); - filter.dbch_devicetype = DBT_DEVTYP_HANDLE; - filter.dbch_handle = deviceInfo->hDevice; - - deviceInfo->hHandleNotification = - RegisterDeviceNotification(hWnd, &filter, 0); - break; - - case DBT_DEVICEREMOVECOMPLETE: - Display(TEXT("Remove Complete (Interface Change Notification)")); - break; - - // - // Device Removed. - // - - default: - Display(TEXT("Unknown (Interface Change Notification)")); - break; - } - return TRUE; -} - -BOOL -HandleDeviceChange( - HWND hWnd, - DWORD evtype, - PDEV_BROADCAST_HANDLE dhp - ) -{ - DEV_BROADCAST_HANDLE filter; - PDEVICE_INFO deviceInfo = NULL; - PLIST_ENTRY thisEntry; - - // - // Walk the list to get the deviceInfo for this device - // by matching the handle given in the notification. - // - for(thisEntry = ListHead.Flink; thisEntry != &ListHead; - thisEntry = thisEntry->Flink) - { - deviceInfo = CONTAINING_RECORD(thisEntry, DEVICE_INFO, ListEntry); - if(dhp->dbch_hdevnotify == deviceInfo->hHandleNotification) { - break; - } - deviceInfo = NULL; - } - - if(!deviceInfo) { - Display(TEXT("Error: spurious message, Event Type %x, Device Type %x"), - evtype, dhp->dbch_devicetype); - return FALSE; - } - - switch (evtype) - { - - case DBT_DEVICEQUERYREMOVE: - - Display(TEXT("Query Remove (Handle Notification)"), deviceInfo->DeviceName); - - // User is trying to disable, uninstall, or eject our device. - // Close the handle to the device so that the target device can - // get removed. Do not unregister the notification - // at this point, because we want to know whether - // the device is successfully removed or not. - // - if (deviceInfo->hDevice != INVALID_HANDLE_VALUE) { - - CloseHandle(deviceInfo->hDevice); - deviceInfo->hDevice = INVALID_HANDLE_VALUE; - Display(TEXT("Closed handle to device %ws"), deviceInfo->DeviceName ); - } - break; - - case DBT_DEVICEREMOVECOMPLETE: - - Display(TEXT("Remove Complete (Handle Notification):%ws"), - deviceInfo->DeviceName); - // - // Device is getting surprise removed. So close - // the handle to device and unregister the PNP notification. - // - - if (deviceInfo->hHandleNotification) { - UnregisterDeviceNotification(deviceInfo->hHandleNotification); - deviceInfo->hHandleNotification = NULL; - } - if (deviceInfo->hDevice != INVALID_HANDLE_VALUE) { - - CloseHandle(deviceInfo->hDevice); - deviceInfo->hDevice = INVALID_HANDLE_VALUE; - Display(TEXT("Closed handle to device %ws"), deviceInfo->DeviceName ); - } - // - // Unlink this deviceInfo from the list and free the memory - // - RemoveEntryList(&deviceInfo->ListEntry); - HeapFree (GetProcessHeap(), 0, deviceInfo); - - break; - - case DBT_DEVICEREMOVEPENDING: - - Display(TEXT("Remove Pending (Handle Notification):%ws"), - deviceInfo->DeviceName); - // - // Device is successfully removed so unregister the notification - // and free the memory. - // - if (deviceInfo->hHandleNotification) { - UnregisterDeviceNotification(deviceInfo->hHandleNotification); - deviceInfo->hHandleNotification = NULL; - deviceInfo->hDevice = INVALID_HANDLE_VALUE; - } - // - // Unlink this deviceInfo from the list and free the memory - // - RemoveEntryList(&deviceInfo->ListEntry); - HeapFree (GetProcessHeap(), 0, deviceInfo); - - break; - - case DBT_DEVICEQUERYREMOVEFAILED : - Display(TEXT("Remove failed (Handle Notification):%ws"), - deviceInfo->DeviceName); - // - // Remove failed. So reopen the device and register for - // notification on the new handle. But first we should unregister - // the previous notification. - // - if (deviceInfo->hHandleNotification) { - UnregisterDeviceNotification(deviceInfo->hHandleNotification); - deviceInfo->hHandleNotification = NULL; - } - deviceInfo->hDevice = CreateFile(deviceInfo->DevicePath, - GENERIC_READ | GENERIC_WRITE, - 0, NULL, OPEN_EXISTING, 0, NULL); - if(deviceInfo->hDevice == INVALID_HANDLE_VALUE) { - Display(TEXT("Failed to reopen the device: %ws"), - deviceInfo->DeviceName); - HeapFree (GetProcessHeap(), 0, deviceInfo); - break; - } - - // - // Register handle based notification to receive pnp - // device change notification on the handle. - // - memset (&filter, 0, sizeof(filter)); //zero the structure - filter.dbch_size = sizeof(filter); - filter.dbch_devicetype = DBT_DEVTYP_HANDLE; - filter.dbch_handle = deviceInfo->hDevice; - - deviceInfo->hHandleNotification = - RegisterDeviceNotification(hWnd, &filter, 0); - Display(TEXT("Reopened device %ws"), deviceInfo->DeviceName); - break; - - default: - Display(TEXT("Unknown (Handle Notification)"), deviceInfo->DeviceName); - break; - - } - return TRUE; -} - - -BOOLEAN -EnumExistingDevices( - HWND hWnd -) -{ - HDEVINFO hardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA deviceInterfaceData; - PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL; - ULONG predictedLength = 0; - ULONG requiredLength = 0; - DWORD error; - DEV_BROADCAST_HANDLE filter; - PDEVICE_INFO deviceInfo =NULL; - UINT i=0; - HRESULT hr; - - hardwareDeviceInfo = SetupDiGetClassDevs ( - (LPGUID)&InterfaceGuid, - NULL, // Define no enumerator (global) - NULL, // Define no - (DIGCF_PRESENT | // Only Devices present - DIGCF_DEVICEINTERFACE)); // Function class devices. - if(INVALID_HANDLE_VALUE == hardwareDeviceInfo) - { - goto Error; - } - - // - // Enumerate devices of toaster class - // - deviceInterfaceData.cbSize = sizeof(deviceInterfaceData); - - for(i=0; SetupDiEnumDeviceInterfaces (hardwareDeviceInfo, - 0, // No care about specific PDOs - (LPGUID)&InterfaceGuid, - i, // - &deviceInterfaceData); i++ ) { - - // - // Allocate a function class device data structure to - // receive the information about this particular device. - // - - // - // First find out required length of the buffer - // - if(deviceInterfaceDetailData) - { - HeapFree (GetProcessHeap(), 0, deviceInterfaceDetailData); - deviceInterfaceDetailData = NULL; - } - - if(!SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - NULL, // probing so no output buffer yet - 0, // probing so output buffer length of zero - &requiredLength, - NULL) && (error = GetLastError()) != ERROR_INSUFFICIENT_BUFFER) - { - goto Error; - } - predictedLength = requiredLength; - - deviceInterfaceDetailData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - predictedLength); - if (deviceInterfaceDetailData == NULL) { - goto Error; - } - deviceInterfaceDetailData->cbSize = - sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA); - - - if (! SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - deviceInterfaceDetailData, - predictedLength, - &requiredLength, - NULL)) { - goto Error; - } - - deviceInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DEVICE_INFO)); - if (deviceInfo == NULL) { - goto Error; - } - - InitializeListHead(&deviceInfo->ListEntry); - InsertTailList(&ListHead, &deviceInfo->ListEntry); - - // - // Get the device details such as friendly name and SerialNo - // - if(!GetDeviceDescription(deviceInterfaceDetailData->DevicePath, - (PBYTE)deviceInfo->DeviceName, - sizeof(deviceInfo->DeviceName), - &deviceInfo->SerialNo)){ - goto Error; - } - - Display(TEXT("Found device %ws"), deviceInfo->DeviceName ); - - hr = StringCchCopy(deviceInfo->DevicePath, MAX_PATH, deviceInterfaceDetailData->DevicePath); - if(FAILED(hr)){ - goto Error; - } - // - // Open an handle to the device. - // - deviceInfo->hDevice = CreateFile ( - deviceInterfaceDetailData->DevicePath, - GENERIC_READ | GENERIC_WRITE, - 0, - NULL, // no SECURITY_ATTRIBUTES structure - OPEN_EXISTING, // No special create flags - 0, // No special attributes - NULL); - - if (INVALID_HANDLE_VALUE == deviceInfo->hDevice) { - Display(TEXT("Failed to open the device: %ws"), deviceInfo->DeviceName); - continue; - } - - Display(TEXT("Opened handled to the device: %ws"), deviceInfo->DeviceName); - // - // Register handle based notification to receive pnp - // device change notification on the handle. - // - - memset (&filter, 0, sizeof(filter)); //zero the structure - filter.dbch_size = sizeof(filter); - filter.dbch_devicetype = DBT_DEVTYP_HANDLE; - filter.dbch_handle = deviceInfo->hDevice; - - deviceInfo->hHandleNotification = RegisterDeviceNotification(hWnd, &filter, 0); - - } - - if(deviceInterfaceDetailData) - HeapFree (GetProcessHeap(), 0, deviceInterfaceDetailData); - - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return 0; - -Error: - - MessageBox(hWnd, TEXT("EnumExisting Devices failed"), TEXT("Error!"), MB_OK); - if(deviceInterfaceDetailData) - HeapFree (GetProcessHeap(), 0, deviceInterfaceDetailData); - - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - Cleanup(hWnd); - return 0; -} - -BOOLEAN Cleanup(HWND hWnd) -{ - PDEVICE_INFO deviceInfo =NULL; - PLIST_ENTRY thisEntry; - - UNREFERENCED_PARAMETER( hWnd ); - - while (!IsListEmpty(&ListHead)) { - thisEntry = RemoveHeadList(&ListHead); - deviceInfo = CONTAINING_RECORD(thisEntry, DEVICE_INFO, ListEntry); - if (deviceInfo->hHandleNotification) { - UnregisterDeviceNotification(deviceInfo->hHandleNotification); - deviceInfo->hHandleNotification = NULL; - } - if (deviceInfo->hDevice != INVALID_HANDLE_VALUE && - deviceInfo->hDevice != NULL) { - CloseHandle(deviceInfo->hDevice); - deviceInfo->hDevice = INVALID_HANDLE_VALUE; - Display(TEXT("Closed handle to device %ws"), deviceInfo->DeviceName ); - } - HeapFree (GetProcessHeap(), 0, deviceInfo); - } - return TRUE; -} - - -BOOL -GetDeviceDescription( - _In_ LPTSTR DevPath, - _Out_writes_bytes_(OutBufferLen) PBYTE OutBuffer, - _In_ ULONG OutBufferLen, - _In_ PULONG SerialNo -) -{ - HDEVINFO hardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA deviceInterfaceData; - SP_DEVINFO_DATA deviceInfoData; - DWORD dwRegType, error; - - hardwareDeviceInfo = SetupDiCreateDeviceInfoList(NULL, NULL); - if(INVALID_HANDLE_VALUE == hardwareDeviceInfo) - { - goto Error; - } - - // - // Enumerate devices of toaster class - // - deviceInterfaceData.cbSize = sizeof(deviceInterfaceData); - - SetupDiOpenDeviceInterface (hardwareDeviceInfo, DevPath, - 0, // - &deviceInterfaceData); - - deviceInfoData.cbSize = sizeof(deviceInfoData); - if(!SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - NULL, // probing so no output buffer yet - 0, // probing so output buffer length of zero - NULL, - &deviceInfoData) && (error = GetLastError()) != ERROR_INSUFFICIENT_BUFFER) - { - goto Error; - } - // - // Get the friendly name for this instance, if that fails - // try to get the device description. - // - - if(!SetupDiGetDeviceRegistryProperty(hardwareDeviceInfo, &deviceInfoData, - SPDRP_FRIENDLYNAME, - &dwRegType, - OutBuffer, - OutBufferLen, - NULL)) - { - if(!SetupDiGetDeviceRegistryProperty(hardwareDeviceInfo, &deviceInfoData, - SPDRP_DEVICEDESC, - &dwRegType, - OutBuffer, - OutBufferLen, - NULL)){ - goto Error; - - } - - - } - - // - // Get the serial number of the device. The bus driver reports - // the device serial number as UINumber in the devcaps. - // - if(!SetupDiGetDeviceRegistryProperty(hardwareDeviceInfo, - &deviceInfoData, - SPDRP_UI_NUMBER, - &dwRegType, - (BYTE*) SerialNo, - sizeof(ULONG), - NULL)) { - Display(TEXT("SerialNo is not available for device: %ws"), OutBuffer ); - } - - - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return TRUE; - -Error: - - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return FALSE; -} - - - -BOOLEAN -OpenBusInterface ( - _In_ ULONG SerialNo, - _When_ (Action == PLUGIN, _In_) LPWSTR DeviceId, - _In_ USER_ACTION_TYPE Action - ) -{ - HANDLE hDevice=INVALID_HANDLE_VALUE; - PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL; - ULONG predictedLength = 0; - ULONG requiredLength = 0; - ULONG bytes; - BUSENUM_UNPLUG_HARDWARE unplug; - BUSENUM_EJECT_HARDWARE eject; - PBUSENUM_PLUGIN_HARDWARE hardware; - HDEVINFO hardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA deviceInterfaceData; - BOOLEAN status = FALSE; - HRESULT hr; - // - // Open a handle to the device interface information set of all - // present toaster bus enumerator interfaces. - // - - hardwareDeviceInfo = SetupDiGetClassDevs ( - (LPGUID)&GUID_DEVINTERFACE_BUSENUM_TOASTER, - NULL, // Define no enumerator (global) - NULL, // Define no - (DIGCF_PRESENT | // Only Devices present - DIGCF_DEVICEINTERFACE)); // Function class devices. - - if(INVALID_HANDLE_VALUE == hardwareDeviceInfo) - { - return FALSE; - } - - deviceInterfaceData.cbSize = sizeof (SP_DEVICE_INTERFACE_DATA); - - if (!SetupDiEnumDeviceInterfaces (hardwareDeviceInfo, - 0, // No care about specific PDOs - (LPGUID)&GUID_DEVINTERFACE_BUSENUM_TOASTER, - 0, // - &deviceInterfaceData)) { - goto Clean0; - } - - // - // Allocate a function class device data structure to receive the - // information about this particular device. - // - - SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - NULL, // probing so no output buffer yet - 0, // probing so output buffer length of zero - &requiredLength, - NULL);//not interested in the specific dev-node - - if(ERROR_INSUFFICIENT_BUFFER != GetLastError()) { - goto Clean0; - } - - - predictedLength = requiredLength; - - deviceInterfaceDetailData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - predictedLength); - - if(deviceInterfaceDetailData) { - deviceInterfaceDetailData->cbSize = - sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA); - } else { - goto Clean0; - } - - - if (! SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - deviceInterfaceDetailData, - predictedLength, - &requiredLength, - NULL)) { - goto Clean1; - } - - - hDevice = CreateFile ( deviceInterfaceDetailData->DevicePath, - GENERIC_READ, // Only read access - 0, // FILE_SHARE_READ | FILE_SHARE_WRITE - NULL, // no SECURITY_ATTRIBUTES structure - OPEN_EXISTING, // No special create flags - 0, // No special attributes - NULL); // No template file - - if (INVALID_HANDLE_VALUE == hDevice) { - goto Clean1; - } - - // - // Enumerate Devices - // - - if(Action == PLUGIN) { - int length = (int) (wcslen(DeviceId)+2)*sizeof(WCHAR); //in bytes - - bytes = sizeof (BUSENUM_PLUGIN_HARDWARE) + length; - hardware = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, bytes); - - if(hardware) { - memset(hardware, 0, bytes); - hardware->Size = sizeof (BUSENUM_PLUGIN_HARDWARE); - hardware->SerialNo = SerialNo; - } else { - goto Clean2; - } - - // - // copy the Device ID - // - hr = StringCchCopy(hardware->HardwareIDs, length/sizeof(WCHAR), DeviceId); - if (SUCCEEDED(hr) && DeviceIoControl (hDevice, - IOCTL_BUSENUM_PLUGIN_HARDWARE , - hardware, bytes, - NULL, 0, - &bytes, NULL)) { - status = TRUE; - } - - HeapFree (GetProcessHeap(), 0, hardware); - - } - - // - // Removes a device if given the specific Id of the device. Otherwise this - // ioctls removes all the devices that are enumerated so far. - // - - if(Action == UNPLUG) { - - unplug.Size = bytes = sizeof (unplug); - unplug.SerialNo = SerialNo; - if (DeviceIoControl (hDevice, - IOCTL_BUSENUM_UNPLUG_HARDWARE, - &unplug, bytes, - NULL, 0, - &bytes, NULL)) { - status = TRUE; - } - } - - // - // Ejects a device if given the specific Id of the device. Otherwise this - // ioctls ejects all the devices that are enumerated so far. - // - - if(Action == EJECT) - { - - eject.Size = bytes = sizeof (eject); - eject.SerialNo = SerialNo; - if (DeviceIoControl (hDevice, - IOCTL_BUSENUM_EJECT_HARDWARE, - &eject, bytes, - NULL, 0, - &bytes, NULL)) { - status = TRUE; - } - } - -Clean2: - CloseHandle(hDevice); -Clean1: - HeapFree (GetProcessHeap(), 0, deviceInterfaceDetailData); -Clean0: - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return status; -} - -BOOL -HandlePowerBroadcast( - HWND hWnd, - WPARAM wParam, - LPARAM lParam) -{ - BOOL fRet = TRUE; - - UNREFERENCED_PARAMETER( hWnd ); - UNREFERENCED_PARAMETER( lParam ); - - switch (wParam) - { - case PBT_APMQUERYSTANDBY: - DisplayV(TEXT("PBT_APMQUERYSTANDBY")); - break; - case PBT_APMQUERYSUSPEND: - DisplayV(TEXT("PBT_APMQUERYSUSPEND")); - break; - case PBT_APMSTANDBY : - DisplayV(TEXT("PBT_APMSTANDBY")); - break; - case PBT_APMSUSPEND : - DisplayV(TEXT("PBT_APMSUSPEND")); - break; - case PBT_APMQUERYSTANDBYFAILED: - DisplayV(TEXT("PBT_APMQUERYSTANDBYFAILED")); - break; - case PBT_APMRESUMESTANDBY: - DisplayV(TEXT("PBT_APMRESUMESTANDBY")); - break; - case PBT_APMQUERYSUSPENDFAILED: - DisplayV(TEXT("PBT_APMQUERYSUSPENDFAILED")); - break; - case PBT_APMRESUMESUSPEND: - DisplayV(TEXT("PBT_APMRESUMESUSPEND")); - break; - case PBT_APMBATTERYLOW: - DisplayV(TEXT("PBT_APMBATTERYLOW")); - break; - case PBT_APMOEMEVENT: - DisplayV(TEXT("PBT_APMOEMEVENT")); - break; - case PBT_APMRESUMEAUTOMATIC: - DisplayV(TEXT("PBT_APMRESUMEAUTOMATIC")); - break; - case PBT_APMRESUMECRITICAL: - DisplayV(TEXT("PBT_APMRESUMECRITICAL")); - break; - case PBT_APMPOWERSTATUSCHANGE: - DisplayV(TEXT("PBT_APMPOWERSTATUSCHANGE")); - break; - default: - DisplayV(TEXT("Default")); - break; - } - return fRet; -} - -void -SendIoctlToFilterDevice() -{ -#define IOCTL_CUSTOM_CODE CTL_CODE(FILE_DEVICE_UNKNOWN, 0, METHOD_BUFFERED, FILE_READ_DATA) - - HANDLE hControlDevice; - ULONG bytes; - - // - // Open handle to the control device. Please note that even - // a non-admin user can open handle to the device with - // FILE_READ_ATTRIBUTES | SYNCHRONIZE DesiredAccess and send IOCTLs if the - // IOCTL is defined with FILE_ANY_ACCESS. So for better security avoid - // specifying FILE_ANY_ACCESS in your IOCTL defintions. - // If the IOCTL is defined to have FILE_READ_DATA access rights, you can - // open the device with GENERIC_READ and call DeviceIoControl. - // If the IOCTL is defined to have FILE_WRITE_DATA access rights, you can - // open the device with GENERIC_WRITE and call DeviceIoControl. - // - hControlDevice = CreateFile ( TEXT("\\\\.\\ToasterFilter"), - GENERIC_READ, // Only read access - 0, // FILE_SHARE_READ | FILE_SHARE_WRITE - NULL, // no SECURITY_ATTRIBUTES structure - OPEN_EXISTING, // No special create flags - 0, // No special attributes - NULL); // No template file - - if (INVALID_HANDLE_VALUE == hControlDevice) { - Display(TEXT("Failed to open ToasterFilter device")); - } else { - if (!DeviceIoControl (hControlDevice, - IOCTL_CUSTOM_CODE, - NULL, 0, - NULL, 0, - &bytes, NULL)) { - Display(TEXT("Ioctl to ToasterFilter device failed")); - } else { - Display(TEXT("Ioctl to ToasterFilter device succeeded")); - } - CloseHandle(hControlDevice); - } - return; -} diff --git a/general/toaster/umdf2/exe/notify/notify.h b/general/toaster/umdf2/exe/notify/notify.h deleted file mode 100644 index 98db2918..00000000 --- a/general/toaster/umdf2/exe/notify/notify.h +++ /dev/null @@ -1,182 +0,0 @@ -/*++ -Copyright (c) 1990-2000 Microsoft Corporation All Rights Reserved - -Module Name: - - notify.h - -Abstract: - - -Author: - - Eliyas Yakub Nov 23, 1999 - -Environment: - - -Revision History: - - ---*/ - -#ifndef __NOTIFY_H -#define __NOTIFY_H - - -// -// Copied Macros from ntddk.h -// - -#define CONTAINING_RECORD(address, type, field) ((type *)( \ - (PCHAR)(address) - \ - (ULONG_PTR)(&((type *)0)->field))) - - -#define InitializeListHead(ListHead) (\ - (ListHead)->Flink = (ListHead)->Blink = (ListHead)) - -#define RemoveHeadList(ListHead) \ - (ListHead)->Flink;\ - {RemoveEntryList((ListHead)->Flink)} - -#define IsListEmpty(ListHead) \ - ((ListHead)->Flink == (ListHead)) - - -#define RemoveEntryList(Entry) {\ - PLIST_ENTRY _EX_Blink;\ - PLIST_ENTRY _EX_Flink;\ - _EX_Flink = (Entry)->Flink;\ - _EX_Blink = (Entry)->Blink;\ - _EX_Blink->Flink = _EX_Flink;\ - _EX_Flink->Blink = _EX_Blink;\ - } - -#define InsertTailList(ListHead,Entry) {\ - PLIST_ENTRY _EX_Blink;\ - PLIST_ENTRY _EX_ListHead;\ - _EX_ListHead = (ListHead);\ - _EX_Blink = _EX_ListHead->Blink;\ - (Entry)->Flink = _EX_ListHead;\ - (Entry)->Blink = _EX_Blink;\ - _EX_Blink->Flink = (Entry);\ - _EX_ListHead->Blink = (Entry);\ - } - -typedef struct _DEVICE_INFO -{ - HANDLE hDevice; // file handle - HDEVNOTIFY hHandleNotification; // notification handle - TCHAR DeviceName[MAX_PATH];// friendly name of device description - TCHAR DevicePath[MAX_PATH];// - ULONG SerialNo; // Serial number of the device. - LIST_ENTRY ListEntry; -} DEVICE_INFO, *PDEVICE_INFO; - - -typedef enum { - - PLUGIN = 1, - UNPLUG, - EJECT - -} USER_ACTION_TYPE; - -typedef struct _DIALOG_RESULT -{ - ULONG SerialNo; - PWCHAR DeviceId; -} DIALOG_RESULT, *PDIALOG_RESULT; - -#define ID_EDIT 1 - -#define IDM_OPEN 100 -#define IDM_CLOSE 101 -#define IDM_EXIT 102 -#define IDM_HIDE 103 -#define IDM_PLUGIN 104 -#define IDM_UNPLUG 105 -#define IDM_EJECT 106 -#define IDM_ENABLE 107 -#define IDM_DISABLE 108 -#define IDM_CLEAR 109 -#define IDM_IOCTL 110 -#define IDM_VERBOSE 111 - -#define IDD_DIALOG 115 -#define IDD_DIALOG1 116 -#define IDD_DIALOG2 117 -#define ID_OK 118 -#define ID_CANCEL 119 -#define IDC_SERIALNO 1000 -#define IDC_DEVICEID 1001 -#define IDC_STATIC -1 - -#define IDI_CLASS_ICON 200 - -LRESULT FAR PASCAL -WndProc ( - HWND hwnd, - UINT message, - WPARAM wParam, - LPARAM lParam - ); - -BOOLEAN EnumExistingDevices( - HWND hWnd - ); - -BOOL HandleDeviceInterfaceChange( - HWND hwnd, - DWORD evtype, - PDEV_BROADCAST_DEVICEINTERFACE dip - ); - -BOOL HandleDeviceChange( - HWND hwnd, - DWORD evtype, - PDEV_BROADCAST_HANDLE dhp - ); - -LRESULT -HandleCommands( - HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam - ); - -BOOLEAN Cleanup( - HWND hWnd - ); - -BOOL -GetDeviceDescription( - _In_ LPTSTR DevPath, - _Out_writes_bytes_(OutBufferLen) PBYTE OutBuffer, - _In_ ULONG OutBufferLen, - _In_ PULONG SerialNo - ); - -BOOLEAN -OpenBusInterface ( - _In_ ULONG SerialNo, - _When_ (Action == PLUGIN, _In_) LPWSTR DeviceId, - _In_ USER_ACTION_TYPE Action - ); - - -INT_PTR CALLBACK -DlgProc( - HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - -void -SendIoctlToFilterDevice(); - - -#endif - diff --git a/general/toaster/umdf2/exe/notify/notify.rc b/general/toaster/umdf2/exe/notify/notify.rc deleted file mode 100644 index eb15657f..00000000 --- a/general/toaster/umdf2/exe/notify/notify.rc +++ /dev/null @@ -1,77 +0,0 @@ -#include "windows.h" - -#include "notify.h" - - -GenericMenu MENU - { - POPUP "&File" - { - MENUITEM "Clear &Display", IDM_CLEAR - MENUITEM "&Verbose Trace", IDM_VERBOSE - MENUITEM "E&xit", IDM_EXIT - } - POPUP "&Bus" - { - MENUITEM "&PlugIn", IDM_PLUGIN - MENUITEM "&UnPlug (Surprise Removal)", IDM_UNPLUG - MENUITEM "&Eject", IDM_EJECT - } - POPUP "&Function" - { - MENUITEM "&Open", IDM_OPEN - MENUITEM "&Close", IDM_CLOSE - MENUITEM "&Hide", IDM_HIDE - - } - POPUP "Fil&ter" - { - MENUITEM "&Ioctl to Control Device", IDM_IOCTL - } - } - - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog for plug in -// - -IDD_DIALOG DIALOG DISCARDABLE 0, 0, 289, 86 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Plug In Device" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",ID_OK,72,61,50,14,BS_NOTIFY - PUSHBUTTON "CANCEL",ID_CANCEL,170,60,50,14,BS_NOTIFY - LTEXT "Serial Number :",IDC_STATIC,18,13,55,8 - LTEXT "Device ID :",IDC_STATIC,20,35,55,8 - EDITTEXT IDC_SERIALNO,75,11,24,14,ES_NUMBER - EDITTEXT IDC_DEVICEID,76,32,200,14,ES_AUTOHSCROLL -END - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog for unplug/hide/enable/disable -// - -IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 232, 86 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Enter SerialNo of the device" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Serial Number :",IDC_STATIC,18,13,55,8 - EDITTEXT IDC_SERIALNO,75,11,24,14,ES_NUMBER - DEFPUSHBUTTON "OK",ID_OK,27,61,50,14,BS_NOTIFY - PUSHBUTTON "CANCEL",ID_CANCEL,121,60,50,14,BS_NOTIFY -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -IDI_CLASS_ICON ICON DISCARDABLE "TOASTER.ICO" - - diff --git a/general/toaster/umdf2/exe/notify/notify.vcxproj b/general/toaster/umdf2/exe/notify/notify.vcxproj deleted file mode 100644 index 9d65f2f7..00000000 --- a/general/toaster/umdf2/exe/notify/notify.vcxproj +++ /dev/null @@ -1,172 +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>{FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}</ProjectGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> - <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{83E3E107-0EC1-44A8-BA29-BFBB6C43DC53}</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>notify</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetName>notify</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetName>notify</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetName>notify</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="notify.c" /> - <ResourceCompile Include="notify.rc" /> - </ItemGroup> - <ItemGroup> - <Inf Exclude="@(Inf)" Include="*.inf" /> - <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </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/toaster/umdf2/exe/notify/notify.vcxproj.Filters b/general/toaster/umdf2/exe/notify/notify.vcxproj.Filters deleted file mode 100644 index ccccf66b..00000000 --- a/general/toaster/umdf2/exe/notify/notify.vcxproj.Filters +++ /dev/null @@ -1,27 +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>{26C90330-C836-4747-995F-76F38B79BDA9}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{04722C15-5D21-4294-B1A9-004CFAF38D17}</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>{600866EB-F078-4625-8B46-D93F60CD2380}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <ClCompile Include="notify.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ResourceCompile Include="notify.rc"> - <Filter>Resource Files</Filter> - </ResourceCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/exe/notify/toaster.ico b/general/toaster/umdf2/exe/notify/toaster.ico Binary files differdeleted file mode 100644 index 77ad2081..00000000 --- a/general/toaster/umdf2/exe/notify/toaster.ico +++ /dev/null diff --git a/general/toaster/umdf2/exe/toast/toast.c b/general/toaster/umdf2/exe/toast/toast.c deleted file mode 100644 index 4f0525c6..00000000 --- a/general/toaster/umdf2/exe/toast/toast.c +++ /dev/null @@ -1,343 +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: - - TOAST.C - -Abstract: - - Lists all the toaster device and interfaces present in the system - and opens the last interface to send an invalidate device Ioctl request - or read requests. - -Environment: - - usermode console application - -Revision History: - - Eliyas Yakub Nov 2, 1998 - - ---*/ - -#include <basetyps.h> -#include <stdlib.h> -#include <wtypes.h> -#include <setupapi.h> -#include <initguid.h> -#include <stdio.h> -#include <string.h> -#include <winioctl.h> -#include "public.h" -#include <conio.h> -#include <dontuse.h> - -#define USAGE \ -"Usage: Toast <-h> {-h option causes the device to hide from Device Manager UI}\n" - -BOOL PrintToasterDeviceInfo(); - -INT __cdecl -main( - _In_ ULONG argc, - _In_reads_(argc) PCHAR argv[] - ) -{ - HDEVINFO hardwareDeviceInfo; - SP_DEVICE_INTERFACE_DATA deviceInterfaceData; - PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL; - ULONG predictedLength = 0; - ULONG requiredLength = 0, bytes=0; - HANDLE file; - int i, ch; - char buffer[10]; - BOOL bHide = FALSE; - - if(argc == 2) { - if(argv[1][0] == '-') { - if(argv[1][1] == 'h' || argv[1][1] == 'H') { - bHide = TRUE; - } else { - printf(USAGE); - exit(0); - } - } - else { - printf(USAGE); - exit(0); - } - } - - - // - // Print a list of devices of Toaster Class - // - if(!PrintToasterDeviceInfo()) - { - printf("No toaster devices present\n"); - return 0; - } - - // - // Open a handle to the device interface information set of all - // present toaster class interfaces. - // - - hardwareDeviceInfo = SetupDiGetClassDevs ( - (LPGUID)&GUID_DEVINTERFACE_TOASTER, - NULL, // Define no enumerator (global) - NULL, // Define no - (DIGCF_PRESENT | // Only Devices present - DIGCF_DEVICEINTERFACE)); // Function class devices. - if(INVALID_HANDLE_VALUE == hardwareDeviceInfo) - { - printf("SetupDiGetClassDevs failed: %x\n", GetLastError()); - return 0; - } - - deviceInterfaceData.cbSize = sizeof (SP_DEVICE_INTERFACE_DATA); - - printf("\nList of Toaster Device Interfaces\n"); - printf("---------------------------------\n"); - - i = 0; - - // - // Enumerate devices of toaster class - // - - for(;;) { - if (SetupDiEnumDeviceInterfaces (hardwareDeviceInfo, - 0, // No care about specific PDOs - (LPGUID)&GUID_DEVINTERFACE_TOASTER, - i, // - &deviceInterfaceData)) { - - if(deviceInterfaceDetailData) { - free (deviceInterfaceDetailData); - deviceInterfaceDetailData = NULL; - } - - // - // Allocate a function class device data structure to - // receive the information about this particular device. - // - - // - // First find out required length of the buffer - // - - if(!SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - NULL, // probing so no output buffer yet - 0, // probing so output buffer length of zero - &requiredLength, - NULL)) { // not interested in the specific dev-node - if(ERROR_INSUFFICIENT_BUFFER != GetLastError()) { - printf("SetupDiGetDeviceInterfaceDetail failed %d\n", GetLastError()); - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return FALSE; - } - - } - - predictedLength = requiredLength; - - deviceInterfaceDetailData = malloc (predictedLength); - - if(deviceInterfaceDetailData) { - deviceInterfaceDetailData->cbSize = - sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA); - } else { - printf("Couldn't allocate %d bytes for device interface details.\n", predictedLength); - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - return FALSE; - } - - - if (! SetupDiGetDeviceInterfaceDetail ( - hardwareDeviceInfo, - &deviceInterfaceData, - deviceInterfaceDetailData, - predictedLength, - &requiredLength, - NULL)) { - printf("Error in SetupDiGetDeviceInterfaceDetail\n"); - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - free (deviceInterfaceDetailData); - return FALSE; - } - printf("%d) %s\n", ++i, - deviceInterfaceDetailData->DevicePath); - } - else if (ERROR_NO_MORE_ITEMS != GetLastError()) { - free (deviceInterfaceDetailData); - deviceInterfaceDetailData = NULL; - continue; - } - else - break; - - } - - - SetupDiDestroyDeviceInfoList (hardwareDeviceInfo); - - if(!deviceInterfaceDetailData) - { - printf("No device interfaces present\n"); - return 0; - } - - // - // Open the last toaster device interface - // - - printf("\nOpening the last interface:\n %s\n", - deviceInterfaceDetailData->DevicePath); - - file = CreateFile ( deviceInterfaceDetailData->DevicePath, - GENERIC_READ | GENERIC_WRITE, - 0, - NULL, // no SECURITY_ATTRIBUTES structure - OPEN_EXISTING, // No special create flags - 0, // No special attributes - NULL); - - if (INVALID_HANDLE_VALUE == file) { - printf("Error in CreateFile: %x", GetLastError()); - free (deviceInterfaceDetailData); - return 0; - } - - // - // Invalidate the Device State - // - - if(bHide) - { - if (!DeviceIoControl (file, - IOCTL_TOASTER_DONT_DISPLAY_IN_UI_DEVICE, - NULL, 0, - NULL, 0, - &bytes, NULL)) { - printf("Invalidate device request failed:0x%x\n", GetLastError()); - free (deviceInterfaceDetailData); - CloseHandle(file); - return 0; - } - printf("\nRequest to hide the device completed successfully\n"); - - } - - - // - // Read/Write to the toaster device. - // - - printf("\nPress 'q' to exit, any other key to read...\n"); - fflush(stdin); - ch = _getche(); - - while(tolower(ch) != 'q' ) - { - - if(!ReadFile(file, buffer, sizeof(buffer), &bytes, NULL)) - { - printf("Error in ReadFile: %x", GetLastError()); - break; - } - printf("Read Successful\n"); - ch = _getche(); - } - - free (deviceInterfaceDetailData); - CloseHandle(file); - return 0; -} - - - -BOOL -PrintToasterDeviceInfo() -{ - HDEVINFO hdi; - DWORD dwIndex=0; - SP_DEVINFO_DATA deid; - BOOL fSuccess=FALSE; - CHAR szCompInstanceId[MAX_PATH]; - CHAR szCompDescription[MAX_PATH]; - CHAR szFriendlyName[MAX_PATH]; - DWORD dwRegType; - BOOL fFound=FALSE; - - // get a list of all devices of class 'GUID_DEVCLASS_TOASTER' - hdi = SetupDiGetClassDevs(&GUID_DEVCLASS_TOASTER, NULL, NULL, - DIGCF_PRESENT); - - if (INVALID_HANDLE_VALUE != hdi) - { - - // enumerate over each device - while (deid.cbSize = sizeof(SP_DEVINFO_DATA), - SetupDiEnumDeviceInfo(hdi, dwIndex, &deid)) - { - dwIndex++; - - // the right thing to do here would be to call this function - // to get the size required to hold the instance ID and then - // to call it second time with a buffer large enough for that size. - // However, that would tend to obscure the control flow in - // the sample code. Lets keep things simple by keeping the - // buffer large enough. - - // get the device instance ID - fSuccess = SetupDiGetDeviceInstanceId(hdi, &deid, - szCompInstanceId, - MAX_PATH, NULL); - if (fSuccess) - { - // get the description for this instance - fSuccess = - SetupDiGetDeviceRegistryProperty(hdi, &deid, - SPDRP_DEVICEDESC, - &dwRegType, - (BYTE*) szCompDescription, - MAX_PATH, - NULL); - if (fSuccess) - { - memset(szFriendlyName, 0, MAX_PATH); - SetupDiGetDeviceRegistryProperty(hdi, &deid, - SPDRP_FRIENDLYNAME, - &dwRegType, - (BYTE*) szFriendlyName, - MAX_PATH, - NULL); - fFound = TRUE; - printf("Instance ID : %s\n", szCompInstanceId); - printf("Description : %s\n", szCompDescription); - printf("FriendlyName: %s\n\n", szFriendlyName); - } - } - } - - // release the device info list - SetupDiDestroyDeviceInfoList(hdi); - } - - if(fFound) - return TRUE; - else - return FALSE; -} - diff --git a/general/toaster/umdf2/exe/toast/toast.vcxproj b/general/toaster/umdf2/exe/toast/toast.vcxproj deleted file mode 100644 index 45a4ceb0..00000000 --- a/general/toaster/umdf2/exe/toast/toast.vcxproj +++ /dev/null @@ -1,171 +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>{9BF4F988-D8B7-4E73-BC77-6658D413212F}</ProjectGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> - <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{5A95B864-3AA6-41E5-AF06-4FB9836D4219}</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>toast</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetName>toast</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetName>toast</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetName>toast</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);setupapi.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="toast.c" /> - </ItemGroup> - <ItemGroup> - <Inf Exclude="@(Inf)" Include="*.inf" /> - <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </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/toaster/umdf2/exe/toast/toast.vcxproj.Filters b/general/toaster/umdf2/exe/toast/toast.vcxproj.Filters deleted file mode 100644 index b418a4e3..00000000 --- a/general/toaster/umdf2/exe/toast/toast.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>{74122CFE-AC0A-405A-887C-C84F0A71602A}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{BF44B779-EC06-4E53-8DA1-5B27378BE11C}</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>{92FCEB4A-CD44-4D16-8B54-1B192FADB341}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <ClCompile Include="toast.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/filter/generic/filter.c b/general/toaster/umdf2/filter/generic/filter.c deleted file mode 100644 index d245c2ba..00000000 --- a/general/toaster/umdf2/filter/generic/filter.c +++ /dev/null @@ -1,387 +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: - - filter.c - -Abstract: - - This module shows how to a write a generic filter driver. The driver demonstrates how - to support device I/O control requests through queues. All the I/O requests passed on to - the lower driver. This filter driver shows how to handle IRP postprocessing by forwarding - the requests with and without a completion routine. To forward with a completion routine - set the define FORWARD_REQUEST_WITH_COMPLETION to 1. - -Environment: - - User mode - ---*/ - -#include "filter.h" - - -#ifdef ALLOC_PRAGMA -#pragma alloc_text (INIT, DriverEntry) -#pragma alloc_text (PAGE, FilterEvtDeviceAdd) -#endif - - -NTSTATUS -DriverEntry( - IN PDRIVER_OBJECT DriverObject, - IN PUNICODE_STRING RegistryPath - ) -/*++ - -Routine Description: - - Installable driver initialization entry point. - This entry point is called directly by the I/O system. - -Arguments: - - DriverObject - pointer to the driver object - - RegistryPath - pointer to a unicode string representing the path, - to driver-specific key in the registry. - -Return Value: - - STATUS_SUCCESS if successful, - STATUS_UNSUCCESSFUL otherwise. - ---*/ -{ - WDF_DRIVER_CONFIG config; - NTSTATUS status; - WDFDRIVER hDriver; - - KdPrint(("Toaster Generic Filter Driver Sample - Driver Framework Edition.\n")); - - // - // Initiialize driver config to control the attributes that - // are global to the driver. Note that framework by default - // provides a driver unload routine. If you create any resources - // in the DriverEntry and want to be cleaned in driver unload, - // you can override that by manually setting the EvtDriverUnload in the - // config structure. In general xxx_CONFIG_INIT macros are provided to - // initialize most commonly used members. - // - - WDF_DRIVER_CONFIG_INIT( - &config, - FilterEvtDeviceAdd - ); - - // - // Create a framework driver object to represent our driver. - // - status = WdfDriverCreate(DriverObject, - RegistryPath, - WDF_NO_OBJECT_ATTRIBUTES, - &config, - &hDriver); - if (!NT_SUCCESS(status)) { - KdPrint( ("WdfDriverCreate failed with status 0x%x\n", status)); - } - - return status; -} - - -NTSTATUS -FilterEvtDeviceAdd( - IN WDFDRIVER Driver, - IN PWDFDEVICE_INIT DeviceInit - ) -/*++ -Routine Description: - - EvtDeviceAdd is called by the framework in response to AddDevice - call from the PnP manager. Here you can query the device properties - using WdfFdoInitWdmGetPhysicalDevice/IoGetDeviceProperty and based - on that, decide to create a filter device object and attach to the - function stack. If you are not interested in filtering this particular - instance of the device, you can just return STATUS_SUCCESS without creating - a framework device. - -Arguments: - - Driver - Handle to a framework driver object created in DriverEntry - - DeviceInit - Pointer to a framework-allocated WDFDEVICE_INIT structure. - -Return Value: - - NTSTATUS - ---*/ -{ - WDF_OBJECT_ATTRIBUTES deviceAttributes; - PFILTER_EXTENSION filterExt; - NTSTATUS status; - WDFDEVICE device; - WDF_IO_QUEUE_CONFIG ioQueueConfig; - - PAGED_CODE (); - - UNREFERENCED_PARAMETER(Driver); - - // - // Tell the framework that you are filter driver. Framework - // takes care of inherting all the device flags & characterstics - // from the lower device you are attaching to. - // - WdfFdoInitSetFilter(DeviceInit); - - // - // Specify the size of device extension where we track per device - // context. - // - - WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&deviceAttributes, FILTER_EXTENSION); - - // - // Create a framework device object.This call will inturn create - // a WDM deviceobject, attach to the lower stack and set the - // appropriate flags and attributes. - // - status = WdfDeviceCreate(&DeviceInit, &deviceAttributes, &device); - if (!NT_SUCCESS(status)) { - KdPrint( ("WdfDeviceCreate failed with status code 0x%x\n", status)); - return status; - } - - filterExt = FilterGetData(device); - - // - // Configure the default queue to be Parallel. - // - WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&ioQueueConfig, - WdfIoQueueDispatchParallel); - - // - // Framework by default creates non-power managed queues for - // filter drivers. - // - ioQueueConfig.EvtIoDeviceControl = FilterEvtIoDeviceControl; - - status = WdfIoQueueCreate(device, - &ioQueueConfig, - WDF_NO_OBJECT_ATTRIBUTES, - WDF_NO_HANDLE // pointer to default queue - ); - if (!NT_SUCCESS(status)) { - KdPrint( ("WdfIoQueueCreate failed 0x%x\n", status)); - return status; - } - - return status; -} - -VOID -FilterEvtIoDeviceControl( - IN WDFQUEUE Queue, - IN WDFREQUEST Request, - IN size_t OutputBufferLength, - IN size_t InputBufferLength, - IN ULONG IoControlCode - ) -/*++ - -Routine Description: - - This routine is the dispatch routine for internal device control requests. - -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 - ---*/ -{ - PFILTER_EXTENSION filterExt; - NTSTATUS status = STATUS_SUCCESS; - WDFDEVICE device; - - UNREFERENCED_PARAMETER(OutputBufferLength); - UNREFERENCED_PARAMETER(InputBufferLength); - - KdPrint(("Entered FilterEvtIoDeviceControl\n")); - - device = WdfIoQueueGetDevice(Queue); - - filterExt = FilterGetData(device); - - switch (IoControlCode) { - - // - // Put your cases for handling IOCTLs here - // - - default: - status = STATUS_SUCCESS; - } - - if (!NT_SUCCESS(status)) { - WdfRequestComplete(Request, status); - return; - } - - // - // Forward the request down. WdfDeviceGetIoTarget returns - // the default target, which represents the device attached to us below in - // the stack. - // -#if FORWARD_REQUEST_WITH_COMPLETION - // - // Use this routine to forward a request if you are interested in post - // processing the IRP. - // - FilterForwardRequestWithCompletionRoutine(Request, - WdfDeviceGetIoTarget(device)); -#else - FilterForwardRequest(Request, WdfDeviceGetIoTarget(device)); -#endif - - return; -} - -VOID -FilterForwardRequest( - IN WDFREQUEST Request, - IN WDFIOTARGET Target - ) -/*++ -Routine Description: - - Passes a request on to the lower driver. - ---*/ -{ - WDF_REQUEST_SEND_OPTIONS options; - BOOLEAN ret; - NTSTATUS status; - - // - // We are not interested in post processing the IRP so - // fire and forget. - // - WDF_REQUEST_SEND_OPTIONS_INIT(&options, - WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET); - - ret = WdfRequestSend(Request, Target, &options); - - if (ret == FALSE) { - status = WdfRequestGetStatus (Request); - KdPrint( ("WdfRequestSend failed: 0x%x\n", status)); - WdfRequestComplete(Request, status); - } - - return; -} - -#if FORWARD_REQUEST_WITH_COMPLETION - -VOID -FilterForwardRequestWithCompletionRoutine( - IN WDFREQUEST Request, - IN WDFIOTARGET Target - ) -/*++ -Routine Description: - - This routine forwards the request to a lower driver with - a completion so that when the request is completed by the - lower driver, it can regain control of the request and look - at the result. - ---*/ -{ - BOOLEAN ret; - NTSTATUS status; - - // - // The following funciton essentially copies the content of - // current stack location of the underlying IRP to the next one. - // - WdfRequestFormatRequestUsingCurrentType(Request); - - WdfRequestSetCompletionRoutine(Request, - FilterRequestCompletionRoutine, - WDF_NO_CONTEXT); - - ret = WdfRequestSend(Request, - Target, - WDF_NO_SEND_OPTIONS); - - if (ret == FALSE) { - status = WdfRequestGetStatus (Request); - KdPrint( ("WdfRequestSend failed: 0x%x\n", status)); - WdfRequestComplete(Request, status); - } - - return; -} - -VOID -FilterRequestCompletionRoutine( - IN WDFREQUEST Request, - IN WDFIOTARGET Target, - PWDF_REQUEST_COMPLETION_PARAMS CompletionParams, - IN WDFCONTEXT Context - ) -/*++ - -Routine Description: - - Completion Routine - -Arguments: - - Target - Target handle - Request - Request handle - Params - request completion params - Context - Driver supplied context - - -Return Value: - - VOID - ---*/ -{ - UNREFERENCED_PARAMETER(Target); - UNREFERENCED_PARAMETER(Context); - - WdfRequestComplete(Request, CompletionParams->IoStatus.Status); - - return; -} - -#endif //FORWARD_REQUEST_WITH_COMPLETION - - - - diff --git a/general/toaster/umdf2/filter/generic/filter.h b/general/toaster/umdf2/filter/generic/filter.h deleted file mode 100644 index e9042c29..00000000 --- a/general/toaster/umdf2/filter/generic/filter.h +++ /dev/null @@ -1,85 +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: - - filter.h - -Abstract: - - Contains structure definitions and function prototypes for a generic filter driver. - -Environment: - - User mode - ---*/ - -#include <windows.h> -#include <winioctl.h> -#pragma warning( disable: 4201 ) // nonstandard extension used : nameless struct/union -#include <ntstatus.h> -#include <devpropdef.h> -#include <wudfwdm.h> -#include <wdf.h> - -#if !defined(_FILTER_H_) -#define _FILTER_H_ - - -#define DRIVERNAME "Generic.sys: " - -// -// Change the following define to 1 if you want to forward -// the request with a completion routine. -// -#define FORWARD_REQUEST_WITH_COMPLETION 0 - - -typedef struct _FILTER_EXTENSION -{ - WDFDEVICE WdfDevice; - // More context data here - -}FILTER_EXTENSION, *PFILTER_EXTENSION; - - -WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(FILTER_EXTENSION, - FilterGetData) - -DRIVER_INITIALIZE DriverEntry; -EVT_WDF_DRIVER_DEVICE_ADD FilterEvtDeviceAdd; -EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL FilterEvtIoDeviceControl; - -VOID -FilterForwardRequest( - IN WDFREQUEST Request, - IN WDFIOTARGET Target - ); - -#if FORWARD_REQUEST_WITH_COMPLETION - -VOID -FilterForwardRequestWithCompletionRoutine( - IN WDFREQUEST Request, - IN WDFIOTARGET Target - ); - -VOID -FilterRequestCompletionRoutine( - IN WDFREQUEST Request, - IN WDFIOTARGET Target, - PWDF_REQUEST_COMPLETION_PARAMS CompletionParams, - IN WDFCONTEXT Context - ); - -#endif //FORWARD_REQUEST_WITH_COMPLETION - -#endif - diff --git a/general/toaster/umdf2/filter/generic/filter.rc b/general/toaster/umdf2/filter/generic/filter.rc deleted file mode 100644 index 0c108f44..00000000 --- a/general/toaster/umdf2/filter/generic/filter.rc +++ /dev/null @@ -1,12 +0,0 @@ -#include <windows.h> -#include <filter.h> -#include <ntverp.h> - -#define VER_FILETYPE VFT_DLL -#define VER_FILESUBTYPE VFT_UNKNOWN -#define VER_FILEDESCRIPTION_STR "UMDF 2.0 Filter Driver for the Toaster Stack" -#define VER_INTERNALNAME_STR DRIVERNAME -#define VER_ORIGINALFILENAME_STR DRIVERNAME - -#include "common.ver" - diff --git a/general/toaster/umdf2/filter/generic/filterum.inx b/general/toaster/umdf2/filter/generic/filterum.inx deleted file mode 100644 index 3e7013ae..00000000 --- a/general/toaster/umdf2/filter/generic/filterum.inx +++ /dev/null @@ -1,98 +0,0 @@ -;/*++ -; -;Copyright (c) Microsoft Corporation. All rights reserved. -; -;Module Name: -; -; filterum.INF -; -;--*/ - -[Version] -Signature="$WINDOWS NT$" -Class=TOASTER -ClassGuid={B85B7C50-6A01-11d2-B841-00C04FAD5171} -Provider=%MSFT% -DriverVer=06/16/1999,5.00.2064 -CatalogFile=wudf.cat - -[DestinationDirs] -DefaultDestDir = 12 - -; ================= Class section ===================== - -[ClassInstall32] -Addreg=ToasterClassReg - -[ToasterClassReg] -HKR,,,0,%ClassName% -HKR,,Icon,,100 -HKR,,DeviceCharacteristics,0x10001,0x100 ;Use same security checks on relative opens -HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)" ;Allow generic all access to system and built-in Admin. - ;This one overrides the security set by the driver - -;***************************************** -; Toaster Device Install Section -;***************************************** - -[Manufacturer] -%StdMfg%=Standard,NT$ARCH$ - - -; For XP and later -[Standard.NT$ARCH$] -%WdfSimpleDevice.DeviceDesc%=Toaster_Device, root\toaster - -[Toaster_Device.NT] -CopyFiles=UMDriverCopy - -; ---------------- file copy -[UMDriverCopy] -wdfsimpleum.dll,,,0x00004000 ; COPYFLG_IN_USE_RENAME -filterum.dll,,,0x00004000 ; COPYFLG_IN_USE_RENAME - -[DestinationDirs] -UMDriverCopy=12,UMDF ; copy to drivers/umdf - -[SourceDisksNames] -1 = %DiskId1%,,,"" - -[SourceDisksFiles] -wdfsimpleum.dll = 1,, -filterum.dll = 1,, - -;-------------- Service installation - -[Toaster_Device.NT.Services] -AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall - -[WUDFRD_ServiceInstall] -DisplayName = %WudfRdDisplayName% -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %12%\WUDFRd.sys - -;-------------- WDF specific section ------------- -[Toaster_Device.NT.Wdf] -UmdfService=wdfsimpleum, wdfsimple_Install -UmdfService=filterum, filter_Install -UmdfServiceOrder=wdfsimpleum, filterum - -[wdfsimple_Install] -UmdfLibraryVersion=$UMDFVERSION$ -ServiceBinary=%12%\UMDF\wdfsimpleum.dll - -[filter_Install] -UmdfLibraryVersion=$UMDFVERSION$ -ServiceBinary=%12%\UMDF\filterum.dll - -[Strings] -SPSVCINST_ASSOCSERVICE= 0x00000002 -MSFT = "Microsoft" -StdMfg = "(Standard system devices)" -DiskId1 = "WDF Sample Toaster Installation Disk #1" -WdfSimpleDevice.DeviceDesc = "Sample WDF Toaster Service + Filter" -ClassName = "Toaster" -WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector" - diff --git a/general/toaster/umdf2/filter/generic/filterum.vcxproj b/general/toaster/umdf2/filter/generic/filterum.vcxproj deleted file mode 100644 index d1f340e4..00000000 --- a/general/toaster/umdf2/filter/generic/filterum.vcxproj +++ /dev/null @@ -1,188 +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>{A60F76D2-C512-4DA6-8C80-263F1B506267}</ProjectGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR> - <SupportsPackaging>false</SupportsPackaging> - <RequiresPackageProject>true</RequiresPackageProject> - <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> - <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{0B7A9ABA-5822-49BC-84D3-571A2C7F009A}</SampleGuid> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</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"> - <Inf Include=".\filterum.inx"> - <Architecture>$(InfArch)</Architecture> - <SpecifyArchitecture>true</SpecifyArchitecture> - <CopyOutput>.\$(IntDir)\filterum.inf</CopyOutput> - </Inf> - </ItemGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <TargetName>filterum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetName>filterum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetName>filterum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetName>filterum</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ClCompile> - <TreatWarningAsError>true</TreatWarningAsError> - <WarningLevel>Level4</WarningLevel> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <ClCompile> - <TreatWarningAsError>true</TreatWarningAsError> - <WarningLevel>Level4</WarningLevel> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <TreatWarningAsError>true</TreatWarningAsError> - <WarningLevel>Level4</WarningLevel> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <TreatWarningAsError>true</TreatWarningAsError> - <WarningLevel>Level4</WarningLevel> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </ResourceCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="filter.c" /> - </ItemGroup> - <ItemGroup> - <Inf Exclude="@(Inf)" Include="*.inf" /> - <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </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/toaster/umdf2/filter/generic/filterum.vcxproj.Filters b/general/toaster/umdf2/filter/generic/filterum.vcxproj.Filters deleted file mode 100644 index e36af926..00000000 --- a/general/toaster/umdf2/filter/generic/filterum.vcxproj.Filters +++ /dev/null @@ -1,34 +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>{DD0D84E8-FA6D-4F21-A94F-490114347147}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{D308818F-2345-4AAC-AE3A-51BD7F250DE2}</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>{79C52444-6CA6-4417-BC6A-85DD2B63D65C}</UniqueIdentifier> - </Filter> - <Filter Include="Driver Files"> - <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{D5C7C2FC-CFB2-4B65-879D-EE3C6847D48D}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <FilesToPackage Include=".\Debug\\filterum.inf"> - <Filter>Driver Files</Filter> - </FilesToPackage> - <Inf Include=".\filterum.inx"> - <Filter>Driver Files</Filter> - </Inf> - </ItemGroup> - <ItemGroup> - <ClCompile Include="filter.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/func/featured/power.c b/general/toaster/umdf2/func/featured/power.c deleted file mode 100644 index 60b5df78..00000000 --- a/general/toaster/umdf2/func/featured/power.c +++ /dev/null @@ -1,385 +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: - - Power.C - -Abstract: - - Implements callbacks to manager power transition, wait-wake and selective - suspend. - -Environment: - - Kernel mode - ---*/ - -#include "toaster.h" - -#ifdef ALLOC_PRAGMA -#pragma alloc_text(PAGE, ToasterEvtDeviceD0Exit) -#pragma alloc_text(PAGE, ToasterEvtDeviceArmWakeFromS0) -#pragma alloc_text(PAGE, ToasterEvtDeviceArmWakeFromSx) -#pragma alloc_text(PAGE, ToasterEvtDeviceWakeFromS0Triggered) -#pragma alloc_text(PAGE, DbgDevicePowerString) -#endif // ALLOC_PRAGMA - - -NTSTATUS -ToasterEvtDeviceD0Entry( - IN WDFDEVICE Device, - IN WDF_POWER_DEVICE_STATE RecentPowerState - ) -/*++ -Routine Description: - - EvtDeviceD0Entry event is called to program the device to goto - D0, which is the working state. The framework calls the driver's - EvtDeviceD0Entry callback when the Power manager sends an - IRP_MN_SET_POWER-DevicePower request to the driver stack. The Power manager - sends this request when the power policy manager of this device stack - (probaby the FDO) requests a change in D-state by calling PoRequestPowerIrp. - - This function is not marked pageable because this function is in the - device power up path. When a function is marked pagable and the code - section is paged out, it will generate a page fault which could impact - the fast resume behavior because the client driver will have to wait - until the system drivers can service this page fault. - -Arguments: - - Device - handle to a framework device object. - - RecentPowerState - WDF_POWER_DEVICE_STATE-typed enumerator that identifies the - device power state that the device was in before this transition - to D0. - -Return Value: - - NTSTATUS - A failure here will indicate a fatal error in the driver. - The Framework will attempt to tear down the stack. - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - UNREFERENCED_PARAMETER(RecentPowerState); - - KdPrint(("ToasterEvtDeviceD0Entry - coming from %s\n", - DbgDevicePowerString(RecentPowerState))); - - return STATUS_SUCCESS; -} - -NTSTATUS -ToasterEvtDeviceD0Exit( - IN WDFDEVICE Device, - IN WDF_POWER_DEVICE_STATE PowerState - ) -/*++ -Routine Description: - - EvtDeviceD0Entry event is called to program the device to goto - D1, D2 or D3, which are the low-power states. The framework calls the - driver's EvtDeviceD0Exit callback when the Power manager sends an - IRP_MN_SET_POWER-DevicePower request to the driver stack. The Power manager - sends this request when the power policy manager of this device stack - (probaby the FDO) requests a change in D-state by calling PoRequestPowerIrp. - -Arguments: - - Device - handle to a framework device object. - - DeviceState - WDF_POWER_DEVICE_STATE-typed enumerator that identifies the - device power state that the power policy owner (probably the - FDO) has decided is appropriate. - -Return Value: - - NTSTATUS - A failure here will indicate a fatal error in the driver. - The Framework will attempt to tear down the stack. ---*/ -{ - UNREFERENCED_PARAMETER(Device); - UNREFERENCED_PARAMETER(PowerState); - - PAGED_CODE(); - - KdPrint(("ToasterEvtDeviceD0Exit %s\n", - DbgDevicePowerString(PowerState))); - - return STATUS_SUCCESS; -} - -NTSTATUS -ToasterEvtDeviceArmWakeFromS0( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceArmWakeFromS0 is called when the Framework arms the device for - wake from S0. If there is any device-specific initialization - that needs to be done to arm internal wake signals, or to route internal - interrupt signals to the wake logic, it should be done here. The device - will be moved out of the D0 state soon after this callback is invoked. - - This function is pageable and it will run at PASSIVE_LEVEL. - -Arguments: - - Device - Handle to a Framework device object. - -Return Value: - - NTSTATUS - Failure will result in the device remaining in the D0 state. - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - PAGED_CODE(); - - KdPrint(( "--> ToasterEvtDeviceArmWakeFromS0\n")); - - KdPrint(( "<-- ToasterEvtDeviceArmWakeFromS0\n")); - - return STATUS_SUCCESS; -} - -NTSTATUS -ToasterEvtDeviceArmWakeFromSx( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceArmWakeFromSx is called when the Framework arms the device for - wake from Sx. If there is any device-specific initialization - that needs to be done to arm internal wake signals, or to route internal - interrupt signals to the wake logic, it should be done here. The device - will be moved out of the D0 state soon after this callback is invoked. - - This function is pageable and it will run at PASSIVE_LEVEL. - -Arguments: - - Device - Handle to a Framework device object. - -Return Value: - - NTSTATUS - Failure will result in the device remaining in the D0 state. - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - PAGED_CODE(); - - KdPrint(( "--> ToasterEvtDeviceArmWakeFromSx\n")); - - KdPrint(( "<-- ToasterEvtDeviceArmWakeFromSx\n")); - - return STATUS_SUCCESS; -} - -VOID -ToasterEvtDeviceDisarmWakeFromS0( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceDisarmWakeFromS0 reverses anything done in EvtDeviceArmWakeFromS0. - - This function is not marked pageable because this function is in the - device power up path. When a function is marked pagable and the code - section is paged out, it will generate a page fault which could impact - the fast resume behavior because the client driver will have to wait - until the system drivers can service this page fault. - -Arguments: - - Device - Handle to a Framework device object. - -Return Value: - - VOID. - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - KdPrint(( "--> ToasterEvtDeviceDisarmWakeFromS0\n")); - - KdPrint(( "<-- ToasterEvtDeviceDisarmWakeFromS0\n")); - - return ; -} - -VOID -ToasterEvtDeviceDisarmWakeFromSx( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceDisarmWakeFromSx reverses anything done in EvtDeviceArmWakeFromSx. - - This function will run at PASSIVE_LEVEL. - - This function is not marked pageable because this function is in the - device power up path. When a function is marked pagable and the code - section is paged out, it will generate a page fault which could impact - the fast resume behavior because the client driver will have to wait - until the system drivers can service this page fault. - -Arguments: - - Device - Handle to a Framework device object. - -Return Value: - - VOID. - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - KdPrint(( "--> ToasterEvtDeviceDisarmWakeFromSx\n")); - - KdPrint(( "<-- ToasterEvtDeviceDisarmWakeFromSx\n")); - - return ; -} - -VOID -ToasterEvtDeviceWakeFromS0Triggered( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceWakeFromS0Triggered will be called whenever the device triggers its - wake signal after being armed for wake. - - This function is pageable and runs at PASSIVE_LEVEL. - -Arguments: - - Device - Handle to a Framework device object. - -Return Value: - - VOID - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - PAGED_CODE(); - - KdPrint(( "--> ToasterEvtDeviceWakeFromS0Triggered\n")); - - - KdPrint(( "<-- ToasterEvtDeviceWakeFromS0Triggered\n")); - -} - -VOID -ToasterEvtDeviceWakeFromSxTriggered( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceWakeFromSxTriggered will be called whenever the device triggers its - wake signal after being armed for wake. - - This function runs at PASSIVE_LEVEL. - - This function is not marked pageable because this function is in the - device power up path. When a function is marked pagable and the code - section is paged out, it will generate a page fault which could impact - the fast resume behavior because the client driver will have to wait - until the system drivers can service this page fault. - -Arguments: - - Device - Handle to a Framework device object. - -Return Value: - - VOID - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - KdPrint(( "--> ToasterEvtDeviceWakeFromSxTriggered\n")); - - KdPrint(( "<-- ToasterEvtDeviceWakeFromSxTriggered\n")); - -} - -PCHAR -DbgDevicePowerString( - IN WDF_POWER_DEVICE_STATE Type - ) -/*++ - -New Routine Description: - DbgDevicePowerString converts the device power state code of a power IRP to a - text string that is helpful when tracing the execution of power IRPs. - -Parameters Description: - Type - Type specifies the device power state code of a power IRP. - -Return Value Description: - DbgDevicePowerString returns a pointer to a string that represents the - text description of the incoming device power state code. - ---*/ -{ - PAGED_CODE(); - - switch (Type) - { - case WdfPowerDeviceInvalid: - return "WdfPowerDeviceInvalid"; - case WdfPowerDeviceD0: - return "WdfPowerDeviceD0"; - case WdfPowerDeviceD1: - return "WdfPowerDeviceD1"; - case WdfPowerDeviceD2: - return "WdfPowerDeviceD2"; - case WdfPowerDeviceD3: - return "WdfPowerDeviceD3"; - case WdfPowerDeviceD3Final: - return "WdfPowerDeviceD3Final"; - case WdfPowerDevicePrepareForHibernation: - return "WdfPowerDevicePrepareForHibernation"; - case WdfPowerDeviceMaximum: - return "WdfPowerDeviceMaximum"; - default: - return "UnKnown Device Power State"; - } -} - - - - diff --git a/general/toaster/umdf2/func/featured/toaster.c b/general/toaster/umdf2/func/featured/toaster.c deleted file mode 100644 index c25eebd4..00000000 --- a/general/toaster/umdf2/func/featured/toaster.c +++ /dev/null @@ -1,862 +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 featured version of the toaster function driver. This version - shows how to register for PNP and Power events, handle create & close - file requests. - -Environment: - - Kernel mode - ---*/ - -#include "toaster.h" - -#ifdef ALLOC_PRAGMA -#pragma alloc_text (INIT, DriverEntry) -#pragma alloc_text (PAGE, ToasterEvtDeviceAdd) -#pragma alloc_text (PAGE, ToasterEvtDeviceFileCreate) -#pragma alloc_text (PAGE, ToasterEvtFileClose) -#pragma alloc_text (PAGE, ToasterEvtDevicePrepareHardware) -#pragma alloc_text (PAGE, ToasterEvtDeviceReleaseHardware) -#pragma alloc_text (PAGE, ToasterEvtDeviceContextCleanup) -#pragma alloc_text (PAGE, ToasterEvtIoDeviceControl) -#pragma alloc_text (PAGE, ToasterEvtIoRead) -#pragma alloc_text (PAGE, ToasterEvtIoWrite) -#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 specifies the other entry - points in the function driver, such as ToasterAddDevice and ToasterUnload. - -Parameters Description: - - DriverObject - represents the instance of the function driver that is loaded - into memory. DriverEntry must initialize members of DriverObject before it - returns to the caller. 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(("WDF Toaster Function Driver Sample - Featured version\n")); - - // - // Initiialize driver config to control the attributes that - // are global to the driver. Note that framework by default - // provides a driver unload routine. If you create any resources - // in the DriverEntry and want to be cleaned in driver unload, - // you can override that by manually setting the EvtDriverUnload 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 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; - WDF_PNPPOWER_EVENT_CALLBACKS pnpPowerCallbacks; - WDF_OBJECT_ATTRIBUTES fdoAttributes; - WDFDEVICE device; - WDF_FILEOBJECT_CONFIG fileConfig; - WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS idleSettings; - WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS wakeSettings; - WDF_POWER_POLICY_EVENT_CALLBACKS powerPolicyCallbacks; - WDF_IO_QUEUE_CONFIG queueConfig; - //PFDO_DATA fdoData; - WDFQUEUE queue; - - UNREFERENCED_PARAMETER(Driver); - - PAGED_CODE(); - - KdPrint(("ToasterEvtDeviceAdd called\n")); - - // - // Initialize the pnpPowerCallbacks structure. Callback events for PNP - // and Power are specified here. If you don't supply any callbacks, - // the Framework will take appropriate default actions based on whether - // DeviceInit is initialized to be an FDO, a PDO or a filter device - // object. - // - - WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&pnpPowerCallbacks); - - // - // Register PNP callbacks. - // - pnpPowerCallbacks.EvtDevicePrepareHardware = ToasterEvtDevicePrepareHardware; - pnpPowerCallbacks.EvtDeviceReleaseHardware = ToasterEvtDeviceReleaseHardware; - pnpPowerCallbacks.EvtDeviceSelfManagedIoInit = ToasterEvtDeviceSelfManagedIoInit; - - // - // Register Power callbacks. - // - pnpPowerCallbacks.EvtDeviceD0Entry = ToasterEvtDeviceD0Entry; - pnpPowerCallbacks.EvtDeviceD0Exit = ToasterEvtDeviceD0Exit; - - - WdfDeviceInitSetPnpPowerEventCallbacks(DeviceInit, &pnpPowerCallbacks); - - // - // Register power policy event callbacks so that we would know when to - // arm/disarm the hardware to handle wait-wake and when the wake event - // is triggered by the hardware. - // - WDF_POWER_POLICY_EVENT_CALLBACKS_INIT(&powerPolicyCallbacks); - - // - // This group of three callbacks allows this sample driver to manage - // arming the device for wake from the S0 or Sx state. We don't really - // differentiate between S0 and Sx state.. - // - powerPolicyCallbacks.EvtDeviceArmWakeFromS0 = ToasterEvtDeviceArmWakeFromS0; - powerPolicyCallbacks.EvtDeviceDisarmWakeFromS0 = ToasterEvtDeviceDisarmWakeFromS0; - powerPolicyCallbacks.EvtDeviceWakeFromS0Triggered = ToasterEvtDeviceWakeFromS0Triggered; - powerPolicyCallbacks.EvtDeviceArmWakeFromSx = ToasterEvtDeviceArmWakeFromSx; - powerPolicyCallbacks.EvtDeviceDisarmWakeFromSx = ToasterEvtDeviceDisarmWakeFromSx; - powerPolicyCallbacks.EvtDeviceWakeFromSxTriggered = ToasterEvtDeviceWakeFromSxTriggered; - - // - // Register the power policy callbacks. - // - WdfDeviceInitSetPowerPolicyEventCallbacks(DeviceInit, &powerPolicyCallbacks); - - // - // Initialize WDF_FILEOBJECT_CONFIG_INIT struct to tell the - // framework whether you are interested in handling Create, Close and - // Cleanup requests that gets genereate when an application or another - // kernel component opens an handle to the device. If you don't register, - // the framework default behaviour would be complete these requests - // with STATUS_SUCCESS. A driver might be interested in registering these - // events if it wants to do security validation and also wants to maintain - // per handle (fileobject) context. - // - - WDF_FILEOBJECT_CONFIG_INIT( - &fileConfig, - ToasterEvtDeviceFileCreate, - ToasterEvtFileClose, - WDF_NO_EVENT_CALLBACK // not interested in Cleanup - ); - - WdfDeviceInitSetFileObjectConfig(DeviceInit, - &fileConfig, - WDF_NO_OBJECT_ATTRIBUTES); - - // - // Now specify the size of device extension where we track per device - // context. Along with setting the context type as shown below, you should also - // specify the WDF_DECLARE_CONTEXT_TYPE_WITH_NAME in header to specify the - // accessor function name. - // - WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&fdoAttributes, FDO_DATA); - - // - // Set a context cleanup routine to cleanup any resources that are not - // parent to this device. This cleanup will be called in the context of - // pnp remove-device when the framework deletes the device object. - // - fdoAttributes.EvtCleanupCallback = ToasterEvtDeviceContextCleanup; - - // - // DeviceInit is completely initialized. So call the framework to create the - // device and attach it to the lower stack. - // - status = WdfDeviceCreate(&DeviceInit, &fdoAttributes, &device); - if (!NT_SUCCESS(status)) { - KdPrint( ("WdfDeviceCreate failed with Status code 0x%x\n", status)); - return status; - } - - // - // Get the device context by using accessor function specified in - // the WDF_DECLARE_CONTEXT_TYPE_WITH_NAME macro for FDO_DATA. - // - //fdoData = ToasterFdoGetData(device); - - // - // Tell the Framework that this device will need an interface so that - // application can find our device and talk to it. - // - status = WdfDeviceCreateDeviceInterface( - device, - (LPGUID) &GUID_DEVINTERFACE_TOASTER, - NULL - ); - - 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. - // In case a specific handler is not specified for one of these, - // 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 request 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 - // configure-fowarded using WdfDeviceConfigureRequestDispatching. - // - WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&queueConfig, - WdfIoQueueDispatchParallel); // EvtIoCancel - - 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(device, - &queueConfig, - WDF_NO_OBJECT_ATTRIBUTES, - &queue - ); - __analysis_assume(queueConfig.EvtIoStop == 0); - - if (!NT_SUCCESS (status)) { - - KdPrint( ("WdfIoQueueCreate failed 0x%x\n", status)); - return status; - } - - // - // Set the idle power policy to put the device to Dx if the device is not used - // for the specified IdleTimeout time. Since this is a virtual device we - // tell the framework that we cannot wake ourself if we sleep in S0. Only - // way the device can be brought to D0 is if the device recieves an I/O from - // the system. - // - WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(&idleSettings, IdleCannotWakeFromS0); - idleSettings.IdleTimeout = 60000; // 60 secs idle timeout - status = WdfDeviceAssignS0IdleSettings(device, &idleSettings); - if (!NT_SUCCESS(status)) { - KdPrint( ("WdfDeviceAssignS0IdleSettings failed 0x%x\n", status)); - return status; - } - - // - // Set the wait-wake policy. - // - - WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT(&wakeSettings); - status = WdfDeviceAssignSxWakeSettings(device, &wakeSettings); - if (!NT_SUCCESS(status)) { - // - // We are probably enumerated on a bus that doesn't support Sx-wake. - // Let us not fail the device add just because we aren't able to support - // wait-wake. I will let the user of this sample decide how important it's - // to support wait-wake for their hardware and return appropriate status. - // - KdPrint( ("WdfDeviceAssignSxWakeSettings failed 0x%x\n", status)); - status = STATUS_SUCCESS; - } - - return status; -} - -NTSTATUS -ToasterEvtDevicePrepareHardware( - WDFDEVICE Device, - WDFCMRESLIST ResourcesRaw, - WDFCMRESLIST ResourcesTranslated - ) -/*++ - -Routine Description: - - EvtDevicePrepareHardware event callback performs operations that are - necessary to make the driver's device operational. The framework calls the - driver's EvtDevicePrepareHardware callback when the PnP manager sends an - IRP_MN_START_DEVICE request to the driver stack. - - Specifically, most drivers will use this callback to map resources. USB - drivers may use it to get device descriptors, config descriptors and to - select configs. - - Some drivers may choose to download firmware to a device in this callback, - but that is usually only a good choice if the device firmware won't be - destroyed by a D0 to D3 transition. If firmware will be gone after D3, - then firmware downloads should be done in EvtDeviceD0Entry, not here. - -Arguments: - - Device - Handle to a framework device object. - - ResourcesRaw - Handle to a collection of framework resource objects. - This collection identifies the raw (bus-relative) hardware - resources that have been assigned to the device. - - ResourcesTranslated - Handle to a collection of framework resource objects. - This collection identifies the translated (system-physical) - hardware resources that have been assigned to the device. - The resources appear from the CPU's point of view. - Use this list of resources to map I/O space and - device-accessible memory into virtual address space - -Return Value: - - WDF status code - ---*/ -{ - //PFDO_DATA fdoData; - NTSTATUS status = STATUS_SUCCESS; - ULONG i; - PCM_PARTIAL_RESOURCE_DESCRIPTOR descriptor; - - //fdoData = ToasterFdoGetData(Device); - - UNREFERENCED_PARAMETER(Device); - UNREFERENCED_PARAMETER(ResourcesRaw); - - KdPrint(("ToasterEvtDevicePrepareHardware called\n")); - - PAGED_CODE(); - // - // Get the number item that are currently in Resources collection and - // iterate thru as many times to get more information about the each items - // - for (i=0; i < WdfCmResourceListGetCount(ResourcesTranslated); i++) { - - descriptor = WdfCmResourceListGetDescriptor(ResourcesTranslated, i); - - switch(descriptor->Type) { - - case CmResourceTypePort: - - KdPrint(("I/O Port: (%x) Length: (%d)\n", - descriptor->u.Port.Start.LowPart, - descriptor->u.Port.Length)); - break; - - case CmResourceTypeMemory: - - KdPrint(("Memory: (%x) Length: (%d)\n", - descriptor->u.Memory.Start.LowPart, - descriptor->u.Memory.Length)); - break; - case CmResourceTypeInterrupt: - - KdPrint(("Interrupt level: 0x%0x, Vector: 0x%0x, Affinity: 0x%0Ix\n", - descriptor->u.Interrupt.Level, - descriptor->u.Interrupt.Vector, - descriptor->u.Interrupt.Affinity)); - break; - - default: - break; - } - - } - - return status; - -} - -NTSTATUS -ToasterEvtDeviceReleaseHardware( - IN WDFDEVICE Device, - IN WDFCMRESLIST ResourcesTranslated - ) -/*++ - -Routine Description: - - EvtDeviceReleaseHardware is called by the framework whenever the PnP manager - is revoking ownership of our resources. This may be in response to either - IRP_MN_STOP_DEVICE or IRP_MN_REMOVE_DEVICE. The callback is made before - passing down the IRP to the lower driver. - - In this callback, do anything necessary to free those resources. - -Arguments: - - Device - Handle to a framework device object. - - ResourcesTranslated - Handle to a collection of framework resource objects. - This collection identifies the translated (system-physical) - hardware resources that have been assigned to the device. - The resources appear from the CPU's point of view. - Use this list of resources to map I/O space and - device-accessible memory into virtual address space - -Return Value: - - NTSTATUS - Failures will be logged, but not acted on. - ---*/ -{ - //PFDO_DATA fdoData; - - UNREFERENCED_PARAMETER(Device); - UNREFERENCED_PARAMETER(ResourcesTranslated); - - KdPrint(("ToasterEvtDeviceReleaseHardware called\n")); - - PAGED_CODE(); - - //fdoData = ToasterFdoGetData(Device); - // - // Unmap any I/O ports, registers that you mapped in PrepareHardware. - // Disconnecting from the interrupt will be done automatically by the framework. - // - return STATUS_SUCCESS; -} - -NTSTATUS -ToasterEvtDeviceSelfManagedIoInit( - IN WDFDEVICE Device - ) -/*++ - -Routine Description: - - EvtDeviceSelfManagedIoInit is called it once for each device, - after the framework has called the driver's EvtDeviceD0Entry - callback function for the first time. The framework does not - call the EvtDeviceSelfManagedIoInit callback function again for - that device, unless the device is removed and reconnected, or - the drivers are reloaded. - - The EvtDeviceSelfManagedIoInit callback function must initialize - the self-managed I/O operations that the driver will handle - for the device. - - This function is not marked pageable because this function is in the - device power up path. When a function is marked pagable and the code - section is paged out, it will generate a page fault which could impact - the fast resume behavior because the client driver will have to wait - until the system drivers can service this page fault. - -Arguments: - - Device - Handle to a framework device object. - -Return Value: - - NTSTATUS - Failures will result in the device stack being torn down. - ---*/ -{ - UNREFERENCED_PARAMETER(Device); - - KdPrint(("ToasterEvtDeviceSelfManagedIoInit called\n")); - - return STATUS_SUCCESS; -} - - -VOID -ToasterEvtDeviceContextCleanup( - IN WDFOBJECT Device - ) -/*++ - -Routine Description: - - EvtDeviceContextCleanup event callback must perform any operations that are - necessary before the specified device is removed. The framework calls - the driver's EvtDeviceContextCleanup callback when the device is deleted in response - to IRP_MN_REMOVE_DEVICE request. - -Arguments: - - Device - Handle to a framework device object. - -Return Value: - - None - ---*/ -{ - //PFDO_DATA fdoData; - UNREFERENCED_PARAMETER(Device); - KdPrint( ("ToasterEvtDeviceContextCleanup called\n")); - - PAGED_CODE(); - - //fdoData = ToasterFdoGetData((WDFDEVICE)Device); - - return; -} - -VOID -ToasterEvtDeviceFileCreate ( - IN WDFDEVICE Device, - IN WDFREQUEST Request, - IN WDFFILEOBJECT FileObject - ) -/*++ - -Routine Description: - - The framework calls a driver's EvtDeviceFileCreate callback - when the framework receives an IRP_MJ_CREATE request. - The system sends this request when a user application opens the - device to perform an I/O operation, such as reading or writing to a device. - This callback is called in the context of the thread - that created the IRP_MJ_CREATE request. - -Arguments: - - Device - Handle to a framework device object. - FileObject - Pointer to fileobject that represents the open handle. - CreateParams - Parameters for create - -Return Value: - - None - ---*/ -{ - //PFDO_DATA fdoData; - - UNREFERENCED_PARAMETER(FileObject); - UNREFERENCED_PARAMETER(Device); - - KdPrint( ("ToasterEvtDeviceFileCreate %p\n", Device)); - - PAGED_CODE (); - - // - // Get the device context given the device handle. - // - //fdoData = ToasterFdoGetData(Device); - - WdfRequestComplete(Request, STATUS_SUCCESS); - - return; -} - - -VOID -ToasterEvtFileClose ( - IN WDFFILEOBJECT FileObject - ) - -/*++ - -Routine Description: - - EvtFileClose is called when all the handles represented by the FileObject - is closed and all the references to FileObject is removed. This callback - may get called in an arbitrary thread context instead of the thread that - called CloseHandle. If you want to delete any per FileObject context that - must be done in the context of the user thread that made the Create call, - you should do that in the EvtDeviceCleanp callback. - -Arguments: - - FileObject - Pointer to fileobject that represents the open handle. - -Return Value: - - None - ---*/ -{ - //PFDO_DATA fdoData; - UNREFERENCED_PARAMETER(FileObject); - PAGED_CODE (); - - //fdoData = ToasterFdoGetData(WdfFileObjectGetDevice(FileObject)); - - KdPrint( ("ToasterEvtFileClose\n")); - - return; -} - - - -VOID -ToasterEvtIoRead ( - WDFQUEUE Queue, - WDFREQUEST Request, - size_t Length - ) -/*++ - -Routine Description: - - Performs read to 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. - 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 bytesCopied =0; - WDFMEMORY memory; - - UNREFERENCED_PARAMETER(Length); - UNREFERENCED_PARAMETER(Queue); - - 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; - WDFMEMORY memory; - - UNREFERENCED_PARAMETER(Queue); - - 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 to transfer data to the hw - // 3) Or you can get the buffer pointer from the memory handle - // by calling WdfMemoryGetBuffer to transfer data to the hw. - // - } - - WdfRequestCompleteWithInformation(Request, status, Length); - -} - - -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: - - None - ---*/ -{ - NTSTATUS status= STATUS_SUCCESS; - WDF_DEVICE_STATE deviceState; - WDFDEVICE hDevice = WdfIoQueueGetDevice(Queue); - - - UNREFERENCED_PARAMETER(OutputBufferLength); - UNREFERENCED_PARAMETER(InputBufferLength); - - KdPrint(("ToasterEvtIoDeviceControl called\n")); - - PAGED_CODE(); - - switch (IoControlCode) { - - case IOCTL_TOASTER_DONT_DISPLAY_IN_UI_DEVICE: - // - // This is just an example on how to hide your device in the - // device manager. Please remove this code when you adapt - // this sample for your hardware. - // - WDF_DEVICE_STATE_INIT(&deviceState); - deviceState.DontDisplayInUI = WdfTrue; - WdfDeviceSetDeviceState( - hDevice, - &deviceState - ); - break; - - default: - status = STATUS_INVALID_DEVICE_REQUEST; - } - - // - // Complete the Request. - // - WdfRequestCompleteWithInformation(Request, status, (ULONG_PTR) 0); - -} - - diff --git a/general/toaster/umdf2/func/featured/toaster.rc b/general/toaster/umdf2/func/featured/toaster.rc deleted file mode 100644 index e9ba2ea8..00000000 --- a/general/toaster/umdf2/func/featured/toaster.rc +++ /dev/null @@ -1,12 +0,0 @@ -#include <windows.h> - -#include <ntverp.h> - -#define VER_FILETYPE VFT_DLL -#define VER_FILESUBTYPE VFT_UNKNOWN -#define VER_FILEDESCRIPTION_STR "WDF UMDF2 Toaster Device Driver" -#define VER_INTERNALNAME_STR "wdftoaster.dll" -#define VER_ORIGINALFILENAME_STR "wdftoaster.dll" - -#include "common.ver" - diff --git a/general/toaster/umdf2/func/featured/wdffeaturedum.inx b/general/toaster/umdf2/func/featured/wdffeaturedum.inx deleted file mode 100644 index feae7a33..00000000 --- a/general/toaster/umdf2/func/featured/wdffeaturedum.inx +++ /dev/null @@ -1,98 +0,0 @@ -;/*++ -; -;Copyright (c) Microsoft Corporation. All rights reserved. -; -;Module Name: -; wdffeatured.INF -; -;Abstract: -; INF file for installing the UMDF2 Toaster Driver -; -;Installation Notes: -; Using Devcon: Type "devcon install wdffeaturedum.inf root\toaster" to install -; -;--*/ - -[Version] -Signature="$WINDOWS NT$" -Class=TOASTER -ClassGuid={B85B7C50-6A01-11d2-B841-00C04FAD5171} -Provider=%MSFT% -DriverVer=03/20/2003,5.00.3788 -CatalogFile=wudf.cat - -[DestinationDirs] -DefaultDestDir = 12 - -; ================= Class section ===================== - -[ClassInstall32] -Addreg=ToasterClassReg - -[ToasterClassReg] -HKR,,,0,%ClassName% -HKR,,Icon,,100 -HKR,,DeviceCharacteristics,0x10001,0x100 ;Use same security checks on relative opens -HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)" ;Allow generic all access to system and built-in Admin. - ;This one overrides the security set by the driver - -[SourceDisksNames] -1 = %DiskId1%,,,"" - -[SourceDisksFiles] -wdffeaturedum.dll = 1,, - -;***************************************** -; Toaster Install Section -;***************************************** - -[Manufacturer] -%StdMfg%=Standard,NT$ARCH$ - -; -; Hw Id is root\toaster -; -[Standard.NT$ARCH$] -%Toaster.DeviceDesc%=Toaster_Device, root\toaster - -;---------------- copy files - -[Toaster_Device.NT] -CopyFiles=UMDriverCopy - -[UMDriverCopy] -wdffeaturedum.dll,,,0x00004000 ; COPYFLG_IN_USE_RENAME - -[DestinationDirs] -UMDriverCopy=12,UMDF ; copy to drivers\umdf - -;-------------- Service installation -[Toaster_Device.NT.Services] -AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall - -[WUDFRD_ServiceInstall] -DisplayName = %WudfRdDisplayName% -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %12%\WUDFRd.sys - -;-------------- WDF specific section ------------- -[Toaster_Device.NT.Wdf] -UmdfService=wdffeaturedum, Toaster_Install -UmdfServiceOrder=wdffeaturedum - -[Toaster_Install] -UmdfLibraryVersion=$UMDFVERSION$ -ServiceBinary=%12%\UMDF\wdffeaturedum.dll - -[Strings] -SPSVCINST_ASSOCSERVICE= 0x00000002 -MSFT = "Microsoft" -StdMfg = "(Standard system devices)" -DiskId1 = "WDF Sample Toaster Installation Disk #1" -Toaster.DeviceDesc = "Sample UMDF Toaster Driver - featured" -Toaster.SVCDESC = "Sample WDF Toaster Service" -ClassName = "Toaster" -WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector" - diff --git a/general/toaster/umdf2/func/featured/wdffeaturedum.vcxproj b/general/toaster/umdf2/func/featured/wdffeaturedum.vcxproj deleted file mode 100644 index 1af04c81..00000000 --- a/general/toaster/umdf2/func/featured/wdffeaturedum.vcxproj +++ /dev/null @@ -1,180 +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>{99A6009E-6137-462F-89C4-6931045895B1}</ProjectGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR> - <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> - <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{3E5FB5B1-CA59-4675-AAF8-93039F74CF02}</SampleGuid> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</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"> - <Inf Include=".\wdffeaturedum.inx"> - <Architecture>$(InfArch)</Architecture> - <SpecifyArchitecture>true</SpecifyArchitecture> - <CopyOutput>.\$(IntDir)\wdffeaturedum.inf</CopyOutput> - </Inf> - </ItemGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <TargetName>wdffeaturedum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetName>wdffeaturedum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetName>wdffeaturedum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetName>wdffeaturedum</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="power.c" /> - <ClCompile Include="toaster.c" /> - <ResourceCompile Include="toaster.rc" /> - </ItemGroup> - <ItemGroup> - <Inf Exclude="@(Inf)" Include="*.inf" /> - <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </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/toaster/umdf2/func/featured/wdffeaturedum.vcxproj.Filters b/general/toaster/umdf2/func/featured/wdffeaturedum.vcxproj.Filters deleted file mode 100644 index ad344822..00000000 --- a/general/toaster/umdf2/func/featured/wdffeaturedum.vcxproj.Filters +++ /dev/null @@ -1,42 +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>{180B07F2-6C79-44F0-9765-749A2975BA1F}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{025585BB-48DE-4F3B-A929-D58821892D58}</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>{A90CE102-D7E8-46E0-B8D8-D1A57A6CDE82}</UniqueIdentifier> - </Filter> - <Filter Include="Driver Files"> - <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{20EB3DBD-A818-46EE-A8B4-6A507F202B60}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <FilesToPackage Include=".\Debug\\wdffeaturedum.inf"> - <Filter>Driver Files</Filter> - </FilesToPackage> - <Inf Include=".\wdffeaturedum.inx"> - <Filter>Driver Files</Filter> - </Inf> - </ItemGroup> - <ItemGroup> - <ClCompile Include="power.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="toaster.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ResourceCompile Include="toaster.rc"> - <Filter>Resource Files</Filter> - </ResourceCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/func/shared/toaster.h b/general/toaster/umdf2/func/shared/toaster.h deleted file mode 100644 index 006166e7..00000000 --- a/general/toaster/umdf2/func/shared/toaster.h +++ /dev/null @@ -1,118 +0,0 @@ -/*++ - -Copyright (c) 1990-2000 Microsoft Corporation All Rights Reserved - -Module Name: - - Toaster.h - -Abstract: - - Header file for the toaster driver modules. - -Environment: - - User mode - ---*/ - - -#if !defined(_TOASTER_H_) -#define _TOASTER_H_ - -#include <windows.h> -#include <winioctl.h> -#pragma warning( disable: 4201 ) // nonstandard extension used : nameless struct/union -#include <ntstatus.h> -#include <devpropdef.h> -#include <wudfwdm.h> -#include <wdf.h> -#include <initguid.h> -#include "..\inc\driver.h" -#include "..\inc\public.h" - -#define TOASTER_POOL_TAG (ULONG) 'saoT' - -// -// The device extension for the device object -// -typedef struct _FDO_DATA -{ - - WDFWMIINSTANCE WmiDeviceArrivalEvent; - - BOOLEAN WmiPowerDeviceEnableRegistered; - -} 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_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/toaster/umdf2/func/simple/toaster.c b/general/toaster/umdf2/func/simple/toaster.c deleted file mode 100644 index 6ed215db..00000000 --- a/general/toaster/umdf2/func/simple/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")); - - // - // Initiialize 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/toaster/umdf2/func/simple/wdfsimpleum.inx b/general/toaster/umdf2/func/simple/wdfsimpleum.inx deleted file mode 100644 index 6edb9388..00000000 --- a/general/toaster/umdf2/func/simple/wdfsimpleum.inx +++ /dev/null @@ -1,97 +0,0 @@ -;/*++ -; -;Copyright (c) Microsoft Corporation. All rights reserved. -; -;Module Name: -; wdfsimpleum.INF -; -;Abstract: -; INF file for installing the UMDF2 Toaster Driver -; -;Installation Notes: -; Using Devcon: Type "devcon install wdfsimpleum.inf root\toaster" to install -; -;--*/ - -[Version] -Signature="$WINDOWS NT$" -Class=TOASTER -ClassGuid={B85B7C50-6A01-11d2-B841-00C04FAD5171} -Provider=%MSFT% -DriverVer=03/20/2003,5.00.3788 -CatalogFile=wudf.cat - -[DestinationDirs] -DefaultDestDir = 12 - -; ================= Class section ===================== - -[ClassInstall32] -Addreg=ToasterClassReg - -[ToasterClassReg] -HKR,,,0,%ClassName% -HKR,,Icon,,100 -HKR,,DeviceCharacteristics,0x10001,0x100 ;Use same security checks on relative opens -HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)" ;Allow generic all access to system and built-in Admin. - ;This one overrides the security set by the driver - -[SourceDisksNames] -1 = %DiskId1%,,,"" - -[SourceDisksFiles] -wdfsimpleum.dll = 1,, - -;***************************************** -; Toaster Install Section -;***************************************** - -[Manufacturer] -%StdMfg%=Standard,NT$ARCH$ - -; -; Hw Id is root\toaster -; -[Standard.NT$ARCH$] -%Toaster.DeviceDesc%=Toaster_Device, root\toaster - -;---------------- copy files - -[Toaster_Device.NT] -CopyFiles=UMDriverCopy - -[UMDriverCopy] -wdfsimpleum.dll,,,0x00004000 ; COPYFLG_IN_USE_RENAME - -[DestinationDirs] -UMDriverCopy=12,UMDF ; copy to drivers\umdf - -;-------------- Service installation -[Toaster_Device.NT.Services] -AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall - -[WUDFRD_ServiceInstall] -DisplayName = %WudfRdDisplayName% -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %12%\WUDFRd.sys - -;-------------- WDF specific section ------------- -[Toaster_Device.NT.Wdf] -UmdfService=wdfsimpleum, Toaster_Install -UmdfServiceOrder=wdfsimpleum - -[Toaster_Install] -UmdfLibraryVersion=$UMDFVERSION$ -ServiceBinary=%12%\UMDF\wdfsimpleum.dll - -[Strings] -SPSVCINST_ASSOCSERVICE= 0x00000002 -MSFT = "Microsoft" -StdMfg = "(Standard system devices)" -DiskId1 = "WDF Sample Toaster Installation Disk #1" -Toaster.DeviceDesc = "Sample UMDF Toaster Driver - simple" -ClassName = "Toaster" -WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector" - diff --git a/general/toaster/umdf2/func/simple/wdfsimpleum.vcxproj b/general/toaster/umdf2/func/simple/wdfsimpleum.vcxproj deleted file mode 100644 index 5420719a..00000000 --- a/general/toaster/umdf2/func/simple/wdfsimpleum.vcxproj +++ /dev/null @@ -1,180 +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>{4867F54B-D8EF-45B0-984E-D571D987174A}</ProjectGuid> - <RootNamespace>$(MSBuildProjectName)</RootNamespace> - <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR> - <SupportsPackaging>false</SupportsPackaging> - <RequiresPackageProject>true</RequiresPackageProject> - <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> - <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{04436AEB-A589-41DD-A088-A1503096D2D8}</SampleGuid> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>False</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</ConfigurationType> - </PropertyGroup> - <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetVersion>Windows10</TargetVersion> - <UseDebugLibraries>True</UseDebugLibraries> - <DriverTargetPlatform>Universal</DriverTargetPlatform> - <DriverType>UMDF</DriverType> - <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset> - <ConfigurationType>DynamicLibrary</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"> - <Inf Include=".\wdfsimpleum.inx"> - <Architecture>$(InfArch)</Architecture> - <SpecifyArchitecture>true</SpecifyArchitecture> - <CopyOutput>.\$(IntDir)\wdfsimpleum.inf</CopyOutput> - </Inf> - </ItemGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <TargetName>wdfsimpleum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <TargetName>wdfsimpleum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <TargetName>wdfsimpleum</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <TargetName>wdfsimpleum</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Link> - <AdditionalDependencies>%(AdditionalDependencies);$(SDK_LIB_PATH)\mincore.lib</AdditionalDependencies> - </Link> - <ResourceCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </ResourceCompile> - <ClCompile> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - <ExceptionHandling> - </ExceptionHandling> - </ClCompile> - <Midl> - <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\..\inc;..\shared</AdditionalIncludeDirectories> - </Midl> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="toaster.c" /> - </ItemGroup> - <ItemGroup> - <Inf Exclude="@(Inf)" Include="*.inf" /> - <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> - </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/toaster/umdf2/func/simple/wdfsimpleum.vcxproj.Filters b/general/toaster/umdf2/func/simple/wdfsimpleum.vcxproj.Filters deleted file mode 100644 index 6054e358..00000000 --- a/general/toaster/umdf2/func/simple/wdfsimpleum.vcxproj.Filters +++ /dev/null @@ -1,34 +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>{00F8EE65-92A7-4127-B44C-E8F26A2136D5}</UniqueIdentifier> - </Filter> - <Filter Include="Header Files"> - <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{77C5B494-74A7-4FE1-97B8-0B859BE75D43}</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>{9769E294-A7B6-4585-9CA6-AFDEA3DCA9F4}</UniqueIdentifier> - </Filter> - <Filter Include="Driver Files"> - <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{18744B3D-F47A-476E-9BF7-FE6592698961}</UniqueIdentifier> - </Filter> - </ItemGroup> - <ItemGroup> - <FilesToPackage Include=".\Debug\\wdfsimpleum.inf"> - <Filter>Driver Files</Filter> - </FilesToPackage> - <Inf Include=".\wdfsimpleum.inx"> - <Filter>Driver Files</Filter> - </Inf> - </ItemGroup> - <ItemGroup> - <ClCompile Include="toaster.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/general/toaster/umdf2/inc/driver.h b/general/toaster/umdf2/inc/driver.h deleted file mode 100644 index b1073363..00000000 --- a/general/toaster/umdf2/inc/driver.h +++ /dev/null @@ -1,69 +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 - ); - -#endif - diff --git a/general/toaster/umdf2/inc/public.h b/general/toaster/umdf2/inc/public.h deleted file mode 100644 index 0628f95f..00000000 --- a/general/toaster/umdf2/inc/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/toaster/umdf2/umdf2toaster.sln b/general/toaster/umdf2/umdf2toaster.sln deleted file mode 100644 index 27a7c11c..00000000 --- a/general/toaster/umdf2/umdf2toaster.sln +++ /dev/null @@ -1,123 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0 -MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Package", "Package", "{DE39E506-CDA6-472B-AA38-CFD787389792}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notify", "Notify", "{6A99D8D7-8707-44E7-8952-C08DA9607026}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exe", "Exe", "{812F37C3-6174-45B1-BAE8-8A1D22588B5A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Toast", "Toast", "{C76A23DC-DCC1-457B-A57C-FC050E0E28E0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Enum", "Enum", "{29F16893-9AB9-45AC-AF5B-4E933C2E6A95}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Simple", "Simple", "{5652F0ED-6624-49EC-9DB9-B5A3F7253FA3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Func", "Func", "{2C164544-0A50-43A5-A42C-B7B25D777B4E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Featured", "Featured", "{0213881B-B2CC-453E-BBCA-95EE52FEA9C1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Generic", "Generic", "{F2D765A7-8801-482C-924A-0B647DEAE5D5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Filter", "Filter", "{870F719A-95BC-485D-9787-2634A3C2652F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "Package\package.VcxProj", "{52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "notify", "exe\notify\notify.vcxproj", "{FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toast", "exe\toast\toast.vcxproj", "{9BF4F988-D8B7-4E73-BC77-6658D413212F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Enum", "exe\enum\Enum.vcxproj", "{6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wdfsimpleum", "func\simple\wdfsimpleum.vcxproj", "{4867F54B-D8EF-45B0-984E-D571D987174A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wdffeaturedum", "func\featured\wdffeaturedum.vcxproj", "{99A6009E-6137-462F-89C4-6931045895B1}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filterum", "filter\generic\filterum.vcxproj", "{A60F76D2-C512-4DA6-8C80-263F1B506267}" -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 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Debug|Win32.ActiveCfg = Debug|Win32 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Debug|Win32.Build.0 = Debug|Win32 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Release|Win32.ActiveCfg = Release|Win32 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Release|Win32.Build.0 = Release|Win32 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Debug|x64.ActiveCfg = Debug|x64 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Debug|x64.Build.0 = Debug|x64 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Release|x64.ActiveCfg = Release|x64 - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5}.Release|x64.Build.0 = Release|x64 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Debug|Win32.ActiveCfg = Debug|Win32 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Debug|Win32.Build.0 = Debug|Win32 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Release|Win32.ActiveCfg = Release|Win32 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Release|Win32.Build.0 = Release|Win32 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Debug|x64.ActiveCfg = Debug|x64 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Debug|x64.Build.0 = Debug|x64 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Release|x64.ActiveCfg = Release|x64 - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76}.Release|x64.Build.0 = Release|x64 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Debug|Win32.Build.0 = Debug|Win32 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Release|Win32.ActiveCfg = Release|Win32 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Release|Win32.Build.0 = Release|Win32 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Debug|x64.ActiveCfg = Debug|x64 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Debug|x64.Build.0 = Debug|x64 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Release|x64.ActiveCfg = Release|x64 - {9BF4F988-D8B7-4E73-BC77-6658D413212F}.Release|x64.Build.0 = Release|x64 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Debug|Win32.ActiveCfg = Debug|Win32 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Debug|Win32.Build.0 = Debug|Win32 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Release|Win32.ActiveCfg = Release|Win32 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Release|Win32.Build.0 = Release|Win32 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Debug|x64.ActiveCfg = Debug|x64 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Debug|x64.Build.0 = Debug|x64 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Release|x64.ActiveCfg = Release|x64 - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69}.Release|x64.Build.0 = Release|x64 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Debug|Win32.ActiveCfg = Debug|Win32 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Debug|Win32.Build.0 = Debug|Win32 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Release|Win32.ActiveCfg = Release|Win32 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Release|Win32.Build.0 = Release|Win32 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Debug|x64.ActiveCfg = Debug|x64 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Debug|x64.Build.0 = Debug|x64 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Release|x64.ActiveCfg = Release|x64 - {4867F54B-D8EF-45B0-984E-D571D987174A}.Release|x64.Build.0 = Release|x64 - {99A6009E-6137-462F-89C4-6931045895B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {99A6009E-6137-462F-89C4-6931045895B1}.Debug|Win32.Build.0 = Debug|Win32 - {99A6009E-6137-462F-89C4-6931045895B1}.Release|Win32.ActiveCfg = Release|Win32 - {99A6009E-6137-462F-89C4-6931045895B1}.Release|Win32.Build.0 = Release|Win32 - {99A6009E-6137-462F-89C4-6931045895B1}.Debug|x64.ActiveCfg = Debug|x64 - {99A6009E-6137-462F-89C4-6931045895B1}.Debug|x64.Build.0 = Debug|x64 - {99A6009E-6137-462F-89C4-6931045895B1}.Release|x64.ActiveCfg = Release|x64 - {99A6009E-6137-462F-89C4-6931045895B1}.Release|x64.Build.0 = Release|x64 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Debug|Win32.ActiveCfg = Debug|Win32 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Debug|Win32.Build.0 = Debug|Win32 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Release|Win32.ActiveCfg = Release|Win32 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Release|Win32.Build.0 = Release|Win32 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Debug|x64.ActiveCfg = Debug|x64 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Debug|x64.Build.0 = Debug|x64 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Release|x64.ActiveCfg = Release|x64 - {A60F76D2-C512-4DA6-8C80-263F1B506267}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {52EEA7C4-68B9-4AE9-B3EC-881A49E9E1E5} = {DE39E506-CDA6-472B-AA38-CFD787389792} - {FEBBDE46-4BD4-462D-87BD-8FDC8C1ECB76} = {6A99D8D7-8707-44E7-8952-C08DA9607026} - {9BF4F988-D8B7-4E73-BC77-6658D413212F} = {C76A23DC-DCC1-457B-A57C-FC050E0E28E0} - {6E1593D4-08A1-45E4-A77F-AF34AC6F0D69} = {29F16893-9AB9-45AC-AF5B-4E933C2E6A95} - {4867F54B-D8EF-45B0-984E-D571D987174A} = {5652F0ED-6624-49EC-9DB9-B5A3F7253FA3} - {99A6009E-6137-462F-89C4-6931045895B1} = {0213881B-B2CC-453E-BBCA-95EE52FEA9C1} - {A60F76D2-C512-4DA6-8C80-263F1B506267} = {F2D765A7-8801-482C-924A-0B647DEAE5D5} - {6A99D8D7-8707-44E7-8952-C08DA9607026} = {812F37C3-6174-45B1-BAE8-8A1D22588B5A} - {C76A23DC-DCC1-457B-A57C-FC050E0E28E0} = {812F37C3-6174-45B1-BAE8-8A1D22588B5A} - {29F16893-9AB9-45AC-AF5B-4E933C2E6A95} = {812F37C3-6174-45B1-BAE8-8A1D22588B5A} - {5652F0ED-6624-49EC-9DB9-B5A3F7253FA3} = {2C164544-0A50-43A5-A42C-B7B25D777B4E} - {0213881B-B2CC-453E-BBCA-95EE52FEA9C1} = {2C164544-0A50-43A5-A42C-B7B25D777B4E} - {F2D765A7-8801-482C-924A-0B647DEAE5D5} = {870F719A-95BC-485D-9787-2634A3C2652F} - EndGlobalSection -EndGlobal diff --git a/general/tracing/SystemTraceControl/SystemTraceControl.sln b/general/tracing/SystemTraceControl/SystemTraceControl.sln index 4e74108b..c67a9a92 100644 --- a/general/tracing/SystemTraceControl/SystemTraceControl.sln +++ b/general/tracing/SystemTraceControl/SystemTraceControl.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SystemTraceControl", "SystemTraceControl.vcxproj", "{BBB08463-9C86-4690-B95B-106B49DD46E2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SystemTraceControl", "SystemTraceControl.vcxproj", "{968DA402-7888-42A5-B2C3-676B80134771}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +13,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Debug|Win32.ActiveCfg = Debug|Win32 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Debug|Win32.Build.0 = Debug|Win32 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Release|Win32.ActiveCfg = Release|Win32 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Release|Win32.Build.0 = Release|Win32 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Debug|x64.ActiveCfg = Debug|x64 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Debug|x64.Build.0 = Debug|x64 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Release|x64.ActiveCfg = Release|x64 - {BBB08463-9C86-4690-B95B-106B49DD46E2}.Release|x64.Build.0 = Release|x64 + {968DA402-7888-42A5-B2C3-676B80134771}.Debug|Win32.ActiveCfg = Debug|Win32 + {968DA402-7888-42A5-B2C3-676B80134771}.Debug|Win32.Build.0 = Debug|Win32 + {968DA402-7888-42A5-B2C3-676B80134771}.Release|Win32.ActiveCfg = Release|Win32 + {968DA402-7888-42A5-B2C3-676B80134771}.Release|Win32.Build.0 = Release|Win32 + {968DA402-7888-42A5-B2C3-676B80134771}.Debug|x64.ActiveCfg = Debug|x64 + {968DA402-7888-42A5-B2C3-676B80134771}.Debug|x64.Build.0 = Debug|x64 + {968DA402-7888-42A5-B2C3-676B80134771}.Release|x64.ActiveCfg = Release|x64 + {968DA402-7888-42A5-B2C3-676B80134771}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj b/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj index 556e6d7d..a40899b5 100644 --- a/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj +++ b/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{BBB08463-9C86-4690-B95B-106B49DD46E2}</ProjectGuid> + <ProjectGuid>{968DA402-7888-42A5-B2C3-676B80134771}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{E8A8798D-133D-48CA-B07A-E8D8A7C82C30}</SampleGuid> + <SampleGuid>{E2000ABD-F961-4FA7-A959-005FC6E3451F}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj.Filters b/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj.Filters index bc043bf7..1d664bf1 100644 --- a/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj.Filters +++ b/general/tracing/SystemTraceControl/SystemTraceControl.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{C2A52F8F-D414-40D4-998E-62C57FFF543E}</UniqueIdentifier> + <UniqueIdentifier>{4EF85DAA-B6CF-4318-A2C6-C468645C29C1}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{CF32093A-DFB7-4C18-B086-1F1DB68AA8F4}</UniqueIdentifier> + <UniqueIdentifier>{23309F83-06E8-4B91-ACAA-F7132B6276A2}</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>{C370B48B-D85C-4319-911D-CC6D213BB287}</UniqueIdentifier> + <UniqueIdentifier>{EA06C1A4-65B4-4551-9760-BEDD786ACB50}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj b/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj index 38a37c6d..122b9938 100644 --- a/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj +++ b/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{71F967BF-4410-49F0-A9D9-A0968791E7C3}</ProjectGuid> + <ProjectGuid>{0AA897A5-DD5B-4C2F-826C-46C4C8261641}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{D1927512-3AD6-432A-B43A-993734933EA0}</SampleGuid> + <SampleGuid>{77776F12-8749-4CD8-BCB8-45AFB9EF64A4}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj.Filters b/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj.Filters index b3a19f20..5b94af02 100644 --- a/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj.Filters +++ b/general/tracing/evntdrv/Eventdrv/Eventdrv.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{FF39F92A-78D6-4DC4-8C57-61B8235F689E}</UniqueIdentifier> + <UniqueIdentifier>{653669AD-2AB5-4E15-A1E3-F56E6B5D988D}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{7D82ACC1-5CB5-4731-9F63-C6ECF120023F}</UniqueIdentifier> + <UniqueIdentifier>{EFAB409C-D315-4FC3-91AB-3AD0C028C1E7}</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>{C4F65E57-AD43-415D-A828-20341B0A35CA}</UniqueIdentifier> + <UniqueIdentifier>{65A4753A-3174-490A-8A34-C3F655C95643}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{42E3A915-3C68-4861-986D-5BECD364D878}</UniqueIdentifier> + <UniqueIdentifier>{B7FEA61C-954A-4DA6-B0DB-65F77FD5396E}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/tracing/evntdrv/eventdrv.sln b/general/tracing/evntdrv/eventdrv.sln index f7556ef7..c6e89bde 100644 --- a/general/tracing/evntdrv/eventdrv.sln +++ b/general/tracing/evntdrv/eventdrv.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Eventdrv", "Eventdrv", "{622DAC05-C30E-4BEE-B268-690B1B0DA989}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Eventdrv", "Eventdrv", "{17F2C037-F5B1-4C73-A09B-EA70DCF80BC5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Evntctrl", "Evntctrl", "{90152226-E1D1-482C-9AB8-701B24BA34A1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Evntctrl", "Evntctrl", "{1BDAAB5F-D67B-419D-857C-2A921360552B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Eventdrv", "Eventdrv\Eventdrv.vcxproj", "{71F967BF-4410-49F0-A9D9-A0968791E7C3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Eventdrv", "Eventdrv\Eventdrv.vcxproj", "{0AA897A5-DD5B-4C2F-826C-46C4C8261641}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "evntctrl", "evntctrl\evntctrl.vcxproj", "{09705E95-23AF-44BE-AD49-703F2A469DB0}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "evntctrl", "evntctrl\evntctrl.vcxproj", "{6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Debug|Win32.ActiveCfg = Debug|Win32 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Debug|Win32.Build.0 = Debug|Win32 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Release|Win32.ActiveCfg = Release|Win32 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Release|Win32.Build.0 = Release|Win32 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Debug|x64.ActiveCfg = Debug|x64 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Debug|x64.Build.0 = Debug|x64 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Release|x64.ActiveCfg = Release|x64 - {71F967BF-4410-49F0-A9D9-A0968791E7C3}.Release|x64.Build.0 = Release|x64 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Debug|Win32.ActiveCfg = Debug|Win32 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Debug|Win32.Build.0 = Debug|Win32 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Release|Win32.ActiveCfg = Release|Win32 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Release|Win32.Build.0 = Release|Win32 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Debug|x64.ActiveCfg = Debug|x64 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Debug|x64.Build.0 = Debug|x64 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Release|x64.ActiveCfg = Release|x64 - {09705E95-23AF-44BE-AD49-703F2A469DB0}.Release|x64.Build.0 = Release|x64 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Debug|Win32.ActiveCfg = Debug|Win32 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Debug|Win32.Build.0 = Debug|Win32 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Release|Win32.ActiveCfg = Release|Win32 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Release|Win32.Build.0 = Release|Win32 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Debug|x64.ActiveCfg = Debug|x64 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Debug|x64.Build.0 = Debug|x64 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Release|x64.ActiveCfg = Release|x64 + {0AA897A5-DD5B-4C2F-826C-46C4C8261641}.Release|x64.Build.0 = Release|x64 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Debug|Win32.ActiveCfg = Debug|Win32 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Debug|Win32.Build.0 = Debug|Win32 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Release|Win32.ActiveCfg = Release|Win32 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Release|Win32.Build.0 = Release|Win32 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Debug|x64.ActiveCfg = Debug|x64 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Debug|x64.Build.0 = Debug|x64 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Release|x64.ActiveCfg = Release|x64 + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {71F967BF-4410-49F0-A9D9-A0968791E7C3} = {622DAC05-C30E-4BEE-B268-690B1B0DA989} - {09705E95-23AF-44BE-AD49-703F2A469DB0} = {90152226-E1D1-482C-9AB8-701B24BA34A1} + {0AA897A5-DD5B-4C2F-826C-46C4C8261641} = {17F2C037-F5B1-4C73-A09B-EA70DCF80BC5} + {6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D} = {1BDAAB5F-D67B-419D-857C-2A921360552B} EndGlobalSection EndGlobal diff --git a/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj b/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj index 91610949..7d1f8cc6 100644 --- a/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj +++ b/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{09705E95-23AF-44BE-AD49-703F2A469DB0}</ProjectGuid> + <ProjectGuid>{6D8C5584-FF3C-4C12-BE99-64A3A63CFA2D}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{4CB0AEF6-22DB-46DE-B86C-BA8FA83720FF}</SampleGuid> + <SampleGuid>{9B65A1F6-8697-49A7-B65C-CCFC5E769D1C}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj.Filters b/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj.Filters index fc9905ff..055f3f38 100644 --- a/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj.Filters +++ b/general/tracing/evntdrv/evntctrl/evntctrl.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{CBA4CFF0-1A7A-4894-AC68-18D38BD5EABB}</UniqueIdentifier> + <UniqueIdentifier>{732FEB8C-759C-4315-8FE6-91C32E227CB8}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{6EB53DDD-D4F4-4C46-9218-63E8B1F46F74}</UniqueIdentifier> + <UniqueIdentifier>{1EB4D098-5821-4C5A-9534-1C28B7B0D2A4}</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>{479AEB6E-676D-4829-891B-3C82EADD4F94}</UniqueIdentifier> + <UniqueIdentifier>{0D82C9BE-D601-4B17-BE82-6F426FC0EACF}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/tracing/evntdrv/evntdrv.htm b/general/tracing/evntdrv/evntdrv.htm new file mode 100644 index 00000000..0d89619d --- /dev/null +++ b/general/tracing/evntdrv/evntdrv.htm @@ -0,0 +1,189 @@ +<html> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=Generator content="Microsoft Word 12 (filtered)"> +<title>Eventdrv</title> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {margin:0in; + margin-bottom:.0001pt; + font-size:12.0pt; + font-family:"Times New Roman","serif";} +.MsoChpDefault + {font-size:10.0pt;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in;} +div.Section1 + {page:Section1;} +--> +</style> + +<meta http-equiv=Content-Language content=en-us> +</head> + +<body lang=EN-US> + +<div class=Section1> + +<div style='left:12px;position:absolute;top:-30px'> + +<div u1:shape="_x0000_s1030"> + +<p class=MsoNormal> </p> + +<p class=MsoNormal><b><span lang=EN style='font-size:16.0pt'>Eventdrv<u2:p></u2:p></span></b></p> + +<p class=MsoNormal><b><span lang=EN style='font-size:14.0pt'>Summary</span></b></p> + +<u2:p></u2:p> + +<p class=MsoNormal><span lang=EN>Eventdrv is a sample kernel mode trace +provider/driver. The driver does not control any hardware; it simply generates +trace events. It is designed to demonstrate the use of ETW tracing in a driver.<u2:p></u2:p></span></p> + +<p class=MsoNormal><span lang=EN>Eventdrv registers as a provider by calling +the EtwRegister API. If successful, it logs a StartEvent event with the +device�s name, the length of the name, and the status code. Then, when it +receives a DeviceIOControl call, it logs a SampleEventA event. Finally, when +the driver gets unloaded, it logs an UnloadEvent event with a pointer to the +device object.<u2:p> Note that Windows Pre-Processor (WPP) Tracing tools such +as TraceView.exe cannot be used to start/stop and view traces.</u2:p></span></p> + +<p class=MsoNormal><span lang=EN> <u2:p></u2:p></span></p> + +<p class=MsoNormal><b><span lang=EN style='font-size:14.0pt'>Using the Sample</span></b></p> + +<u2:p></u2:p> + +<p class=MsoNormal><span lang=EN style='font-size:14.0pt'> </span><span +lang=EN>To test the Eventdrv event tracing provider, use the following +procedure:<u2:p></u2:p></span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'><span lang=EN +style='color:black'>1.</span> <span lang=EN>Build the Eventdrv sample +driver (in evntdrv\Eventdrv) by using the -cZg switch.</span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>2. +Install the manifest located in the evntdrv\Eventdrv folder by using the +following command:</p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'> +wevtutil im evntdrv.xml<br> +<br> +Installing the manifest will create registry keys which allows tools to be able +to find the resource and message file(s) which contains event provider +information. Search MSDN for further details on the wevtutil tool.</p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>3<span lang=EN +style='color:black'>.</span> <span lang=EN>Build the evntctrl executable +file (in evntdrv\evntctrl) by using the -cZg switch. Evntctrl sends IOCTLs to +Eventdrv, which then generates trace messages when it receives the IOCTLs.</span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>4<span lang=EN +style='color:black'>.</span> Make a folder in the system directory called +ETWD<span lang=EN>riverSample. For example, C:\ETWDriverSample. Copy <u2:p>Eventdrv.sys +and evntctrl.exe to this folder. Also, copy Tracelog.exe from the tools\tracing +folder in the Driver Kit to this folder. This directory must be created because +the path to the resource file specified in the manifest evntdrv.xml points to +the %systemroot%\ETWDriverSample folder. If this folder is not created and the +Evntdrv.sys binary is not copied, decoding tools will not be able to find the +event information to decode the trace file. </u2:p></span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>5<span lang=EN +style='color:black'>.</span> <span lang=EN>Use Tracelog to start a trace +session that is called �TestEventdrv�. The following command starts the trace +session and creates a trace log file, Eventdrv.etl, in the local directory.<br> +<br> +Tracelog -start TestEventdrv -guid #<span style='color:black'>b5a0bda9-50fe-4d0e-a83d-bae3f58c94d6 +-f Eventdrv.etl</span></span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>6<span lang=EN +style='color:black'>.</span> <span lang=EN>To generate trace messages, run +Evntctrl.exe. This executable file is built in step 3. Each time you type a +character other than Q or q, Evntctrl sends an IOCTL to the driver that signals +it to generate trace messages. To stop Evntctrl, type Q or q.</span></p> + +<u2:p></u2:p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>7<span lang=EN +style='color:black'>.</span> <span lang=EN>To stop the trace session, use +the following Tracelog command:<br> +<br> +tracelog -stop TestEventdrv</span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>8<span lang=EN +style='color:black'>.</span> <span lang=EN>To display the trace messages +in the Tracedrv.etl file, use Tracerpt. Type the following <br> +command:<br> +<br> +tracerpt Eventdrv.etl</span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'> +This creates two files: summary.txt and dumpfile.xml. Dumpfile.xml will contain +the event information in an XML format. For additional options, do tracerpt /?.</p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'>9. <span +lang=EN> To uninstall the manifest, use the following command:</span></p> + +<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in'> +wevtutil um evntdrv.xml<span lang=EN><br> + </span></p> + +<u2:p></u2:p> + +<p class=MsoNormal><b><span lang=EN style='font-size:14.0pt'>Limitations</span></b></p> + +<u2:p></u2:p> + +<p class=MsoNormal><span lang=EN>Eventdrv is designed for Windows Vista and +later versions of Windows.<br> +This sample driver should not be used in a production environment.</span></p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal><b><span lang=EN style='font-size:14.0pt'>File List</span></b></p> + +<u2:p></u2:p> + +<p class=MsoNormal><b><span lang=EN>Eventdrv<br> +</span></b><span lang=EN>Drvioctl.h<br> +Evntdrv.c<br> +Evntdrv.xml<br> +Makefile<br> +Makefile.inc<br> +Sources<u2:p></u2:p></span></p> + +<p class=MsoNormal><b><u><span lang=EN>Evntctrl</span></u></b><br> +<span lang=EN>Install.c<u><br> +</u>Install.h<u><br> +</u>Makefile<u><br> +</u>Sources<u><br> +</u>Tracectl.c</span></p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal><b><span lang=EN style='font-size:14.0pt'>Location</span></b></p> + +<p class=MsoNormal><span lang=EN>The files that comprise Eventdrv are included +in the Windows Driver Kit in the \src\general\tracing\evntdrv folder.</span></p> + +<p class=MsoNormal> </p> + +</div> + +</div> + +</div> + +<u2:p></u2:p> +</body> + +</html> diff --git a/general/tracing/tracedriver/tracectl/tracectl.vcxproj b/general/tracing/tracedriver/tracectl/tracectl.vcxproj index e1e21430..36d8f30e 100644 --- a/general/tracing/tracedriver/tracectl/tracectl.vcxproj +++ b/general/tracing/tracedriver/tracectl/tracectl.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{72739B3A-9B9B-41EE-9B0E-E73482470A03}</ProjectGuid> + <ProjectGuid>{3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{707AFE5D-65EB-4AED-967A-114E753D1037}</SampleGuid> + <SampleGuid>{3DEA2D5B-55CB-46FF-BA56-6FC217FF19AD}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/tracing/tracedriver/tracectl/tracectl.vcxproj.Filters b/general/tracing/tracedriver/tracectl/tracectl.vcxproj.Filters index 49a76abb..1482e22e 100644 --- a/general/tracing/tracedriver/tracectl/tracectl.vcxproj.Filters +++ b/general/tracing/tracedriver/tracectl/tracectl.vcxproj.Filters @@ -3,15 +3,15 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{162117FB-9571-483E-8BDC-60E6A31AD53D}</UniqueIdentifier> + <UniqueIdentifier>{F36F2396-6719-4C9E-AF20-5AD2738A351E}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{ECB2DAEF-8542-46F3-84A4-AB8FC5EDC817}</UniqueIdentifier> + <UniqueIdentifier>{27EB4DB8-FEAE-4B53-A49E-FB8F17DD47A0}</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>{CD34668D-32E2-4A6E-8DC5-7CCC09E3FC35}</UniqueIdentifier> + <UniqueIdentifier>{39E92D32-6DE6-4B95-A5B0-D7DCB33A2256}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/tracing/tracedriver/tracedrv.htm b/general/tracing/tracedriver/tracedrv.htm new file mode 100644 index 00000000..0d3dc032 --- /dev/null +++ b/general/tracing/tracedriver/tracedrv.htm @@ -0,0 +1,1052 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 14"> +<meta name=Originator content="Microsoft Word 14"> +<link rel=File-List href="tracedrv_files/filelist.xml"> +<title>TraceDrv</title> +<link rel=themeData href="tracedrv_files/themedata.thmx"> +<link rel=colorSchemeMapping href="tracedrv_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:Zoom>114</w:Zoom> + <w:SpellingState>Clean</w:SpellingState> + <w:GrammarState>Clean</w:GrammarState> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SplitPgBreakAndParaMark/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:SimSun; + panose-1:2 1 6 0 3 1 1 1 1 1; + mso-font-alt:\5B8B\4F53; + mso-font-charset:134; + mso-generic-font-family:auto; + mso-font-pitch:variable; + mso-font-signature:3 680460288 22 0 262145 0;} +@font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-pitch:variable; + mso-font-signature:-536870145 1107305727 0 0 415 0;} +@font-face + {font-family:Cambria; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:0; + mso-generic-font-family:roman; + mso-font-pitch:variable; + mso-font-signature:-536870145 1073743103 0 0 415 0;} +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-520081665 -1073717157 41 0 66047 0;} +@font-face + {font-family:Verdana; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-1593833729 1073750107 16 0 415 0;} +@font-face + {font-family:"MS Sans Serif"; + mso-font-alt:"Times New Roman"; + mso-font-charset:0; + mso-generic-font-family:auto; + mso-font-pitch:auto; + mso-font-signature:0 0 0 0 0 0;} +@font-face + {font-family:"\@SimSun"; + panose-1:2 1 6 0 3 1 1 1 1 1; + mso-font-charset:134; + mso-generic-font-family:auto; + mso-font-pitch:variable; + mso-font-signature:3 680460288 22 0 262145 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast;} +h1 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 1 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + font-weight:bold;} +h2 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:2; + font-size:18.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + font-weight:bold;} +h3 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 3 Char"; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + mso-outline-level:3; + font-size:13.5pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + font-weight:bold;} +p.MsoCommentText, li.MsoCommentText, div.MsoCommentText + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Comment Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast;} +a:link, span.MsoHyperlink + {mso-style-noshow:yes; + mso-style-priority:99; + color:blue; + text-decoration:underline; + text-underline:single;} +a:visited, span.MsoHyperlinkFollowed + {mso-style-noshow:yes; + mso-style-priority:99; + color:blue; + text-decoration:underline; + text-underline:single;} +p + {mso-style-noshow:yes; + mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast;} +p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Comment Subject Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast; + font-weight:bold;} +p.MsoAcetate, li.MsoAcetate, div.MsoAcetate + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Balloon Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast;} +span.Heading1Char + {mso-style-name:"Heading 1 Char"; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 1"; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-hansi-font-family:Cambria; + color:#365F91; + font-weight:bold;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-hansi-font-family:Cambria; + color:#4F81BD; + font-weight:bold;} +span.Heading3Char + {mso-style-name:"Heading 3 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 3"; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-hansi-font-family:Cambria; + color:#4F81BD; + font-weight:bold;} +span.CommentTextChar + {mso-style-name:"Comment Text Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Comment Text";} +span.CommentSubjectChar + {mso-style-name:"Comment Subject Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Comment Subject"; + font-weight:bold;} +span.BalloonTextChar + {mso-style-name:"Balloon Text Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Balloon Text"; + font-family:"Tahoma","sans-serif"; + mso-ascii-font-family:Tahoma; + mso-hansi-font-family:Tahoma; + mso-bidi-font-family:Tahoma;} +p.msochpdefault, li.msochpdefault, div.msochpdefault + {mso-style-name:msochpdefault; + mso-style-unhide:no; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:SimSun; + mso-fareast-theme-font:minor-fareast;} +span.SpellE + {mso-style-name:""; + mso-spl-e:yes;} +span.GramE + {mso-style-name:""; + mso-gram-e:yes;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} +@page WordSection1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.WordSection1 + {page:WordSection1;} + /* List Definitions */ + @list l0 + {mso-list-id:19862898; + mso-list-template-ids:-1324955294;} +@list l0:level1 + {mso-level-start-at:9; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1 + {mso-list-id:446238000; + mso-list-template-ids:845686190;} +@list l1:level1 + {mso-level-start-at:7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2 + {mso-list-id:1103259907; + mso-list-template-ids:-601314756;} +@list l2:level1 + {mso-level-start-at:6; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3 + {mso-list-id:1166091645; + mso-list-template-ids:-1494308952;} +@list l3:level1 + {mso-level-start-at:5; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4 + {mso-list-id:1815415268; + mso-list-template-ids:467859314;} +@list l4:level1 + {mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +ol + {margin-bottom:0in;} +ul + {margin-bottom:0in;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="1026"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'> + +<div class=WordSection1> + +<h2><span class=SpellE><span style='font-family:"Verdana","sans-serif"; +mso-fareast-font-family:"Times New Roman"'>Tracedrv</span></span><span +style='font-family:"Verdana","sans-serif";mso-fareast-font-family:"Times New Roman"'> +</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h2> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>SUMMARY</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<p class=MsoNormal><span class=SpellE>Tracedrv</span> is a sample driver +instrumented for software tracing. The driver does not control any hardware; it +simply generates trace messages. It is designed to show how to use WPP software +tracing macros in a driver. </p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal><span class=SpellE>Tracedrv</span> initializes tracing (by +using WPP_INIT_TRACING) and, when it receives a <span class=SpellE>DeviceIOControl</span> +call, it starts a thread that logs 100 trace messages. The WPP software tracing +directives, calls, and macros in the code are accompanied by comments that explain +their purpose.</p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal>While examining <span class=SpellE>Tracedrv</span>, read the +"WPP Software Tracing" section of the Windows Driver Development Kit +(DDK) documentation (in Driver Development Tools, Tools for Software Tracing, +WPP Software Tracing). This section includes a reference section that describes +the directives, macros, and calls required for WPP software tracing. It also +includes "Sample WPP Software Tracing Code," a section that uses the <span +class=SpellE>Tracedrv</span> sample to demonstrate the use of the WPP software +tracing elements.</p> + +<p class=MsoNormal> </p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>USING THE SAMPLE</span><span style='mso-fareast-font-family: +"Times New Roman"'><o:p></o:p></span></h3> + +<p class=MsoNormal>To test the <span class=SpellE>Tracedrv</span> event tracing +provider, use the following procedure. The tools used in this procedure are +included in the DDK and located in the \tools\tracing subdirectory. For more +information about the tracing tools, see the "Tools for Software +Tracing" section of the WDK documentation.</p> + +<ol style='margin-top:0in' start=1 type=1> + <li class=MsoNormal style='margin-bottom:12.0pt;mso-list:l4 level1 lfo1; + tab-stops:list .5in'><span style='mso-fareast-font-family:"Times New Roman"'>Build + the <span class=SpellE>Tracedrv</span> sample driver and the <span + class=SpellE>Tracectl</span> executable file.<o:p></o:p></span></li> + <ol style='margin-top:0in' start=1 type=1> + <li class=MsoNormal style='margin-bottom:12.0pt;mso-list:l4 level2 lfo1; + tab-stops:list 1.0in'>Click tracedrv.sln to open the sample.<span + style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='margin-bottom:12.0pt;mso-list:l4 level2 lfo1; + tab-stops:list 1.0in'>Right click project "<span class=SpellE>tracectl</span>", + select Properties, <span class=SpellE>goto</span> Linker -> Manifest + File, make sure "<span style='mso-fareast-font-family:SimSun'>Generate + Manifest</span>" is "No".<span style='mso-fareast-font-family: + "Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='margin-bottom:12.0pt;mso-list:l4 level2 lfo1; + tab-stops:list 1.0in'>You can press "F7" or choose Build->Build + Solution.<span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></li> + </ol> + <li class=MsoNormal style='margin-bottom:12.0pt;mso-list:l4 level1 lfo1; + tab-stops:list .5in'><span style='mso-fareast-font-family:"Times New Roman"'>Copy<i> + </i>the <i>Tracectl.exe </i>file that was created in step 1 from the <span + class=SpellE>Tracectl</span> directory (\<span class=SpellE>src</span>\general\tracing\<span + class=SpellE>tracedrv</span>\<span class=SpellE>tracectl</span>\<i>platform</i>) + to the <span class=SpellE>Tracedrv</span> directory (\<span class=SpellE>src</span>\general\tracing\<span + class=SpellE>tracedrv</span>\<span class=SpellE>tracedrv</span>\<i>platform</i>).<o:p></o:p></span></li> + <li class=MsoNormal style='mso-list:l4 level1 lfo1;tab-stops:list .5in'><span + style='mso-fareast-font-family:"Times New Roman"'>Use <span class=SpellE>Tracepdb</span> + to create a trace message format (TMF) file and a trace message control + (TMC) file from the <i>Tracedrv.pdb</i> file. <span class=SpellE>Tracepdb</span> + is located in the \bin\<i>platform</i> subdirectory of the WDK. The PDB + file that is used in this command is created by the Build utility in step + 1. From the \tools\tracing\<i>platform</i> subdirectory, type the + following command: <o:p></o:p></span></li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span class=SpellE><span +class=GramE><span style='font-size:10.0pt;font-family:"Courier New"'>tracepdb</span></span></span><span +style='font-size:10.0pt;font-family:"Courier New"'> -f <path>\tracedrv.pdb</span></p> + +<ol style='margin-top:0in' start=5 type=1> + <li class=MsoNormal style='mso-list:l3 level1 lfo2;tab-stops:list .5in'><span + style='mso-fareast-font-family:"Times New Roman"'>Create a control GUID + file for <span class=SpellE>Tracedrv</span> by opening a text file, adding + the following content, and saving the file as <span class=SpellE>Tracedrv.ctl</span>. + <o:p></o:p></span></li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'> +d58c126f-b309-11d1-969e-0000f875a5bc</span></p> + +<ol style='margin-top:0in' start=6 type=1> + <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><span + style='mso-fareast-font-family:"Times New Roman"'>Use <span class=SpellE>Tracelog</span> + to start a trace session that is called "<span class=SpellE>TestTracedrv</span>". + <span class=SpellE>Tracelog</span> is located in the \tools\tracing\<i>platform</i> + subdirectory of the DDK. The <span class=SpellE><i>Tracedrv.ctl</i></span> + file that is used in this command was created in step 4. The following + command starts a trace session and creates a trace log file, <span + class=SpellE><i>tracedrv.etl</i></span>, in the local directory.<o:p></o:p></span></li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'> <span class=SpellE><span +class=GramE>tracelog</span></span> -start <span class=SpellE>TestTracedrv</span> +-<span class=SpellE>guid</span> <span class=SpellE>tracedrv.ctl</span> -f <span +class=SpellE>tracedrv.etl</span> -flag 1</span></p> + +<p style='margin-left:.5in'><b>Note:</b> Without the <b>-flag</b> parameter, <span +class=SpellE>Tracedrv</span> will not generate any trace messages.</p> + +<ol style='margin-top:0in' start=7 type=1> + <li class=MsoNormal style='margin-bottom:12.0pt;mso-list:l1 level1 lfo4; + tab-stops:list .5in'><span style='mso-fareast-font-family:"Times New Roman"'>To + generate trace messages, run <i>Tracectl.exe</i>. This executable file is + built in step 2. Each time you type a character, other than <b>Q</b> or <b>q</b>, + <span class=SpellE>Tracectl</span> sends an IOCTL to the driver that + signals it to generate trace messages. To stop <span class=SpellE>Tracectl</span>, + type <b>Q</b> or <b>q</b>.<o:p></o:p></span></li> + <li class=MsoNormal style='mso-list:l1 level1 lfo4;tab-stops:list .5in'><span + style='mso-fareast-font-family:"Times New Roman"'>To stop the trace + session, use the following <span class=SpellE>Tracelog</span> command.<o:p></o:p></span></li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'> <span class=SpellE><span +class=GramE>tracelog</span></span> -stop <span class=SpellE>TestTracedrv</span></span></p> + +<ol style='margin-top:0in' start=9 type=1> + <li class=MsoNormal style='mso-list:l0 level1 lfo5;tab-stops:list .5in'><span + style='mso-fareast-font-family:"Times New Roman"'>To display the trace + messages in the <span class=SpellE><i>Tracedrv.etl</i></span> file, use <span + class=SpellE>Tracefmt</span>. <span class=SpellE>Tracefmt</span> is + located in the \tools\tracing subdirectory of the DDK. The TMF file used + in this command was created by <span class=SpellE>Tracepdb</span> in step + 3. Type the following command: <o:p></o:p></span></li> +</ol> + +<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; +font-family:"Courier New"'> <span class=SpellE><span +class=GramE>tracefmt</span></span> <span class=SpellE>tracedrv.etl</span> -p +<Path to TMF file> -o <span class=SpellE>Tracedrv.out</span></span></p> + +<p>The resulting <span class=SpellE><i>Tracedrv.out</i></span> file is a +human-readable text file of the <span class=SpellE>Tracedrv</span> trace +messages. To interpret the trace messages, in the <span class=SpellE><i>Tracedrv.c</i></span> +file, search for the <span class=SpellE><b>DoTraceMessage</b></span> macros.</p> + +<p class=MsoNormal style='margin-left:.5in'> </p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>LIMITATIONS</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<p class=MsoNormal>This sample driver should not be used in a production +environment. </p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal><span class=SpellE>Tracedrv</span> is designed for +Windows XP and later versions of Windows. It does not demonstrate how to +add WPP software tracing to a Windows 2000 driver. (For information about +adding WPP software tracing to a Windows 2000 driver, see the Tracing FAQ +topic in the Windows WDK documentation.)</p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal>Also, because it is not a Plug and Play driver, <span +class=SpellE>Tracedrv</span> does not demonstrate tracing in a Plug and Play +environment. </p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal><span class=SpellE>Tracedrv</span> demonstrates the basic +elements required for software tracing. It does not demonstrate more advanced +tracing techniques, such as writing customized tracing calls (variations of <span +class=SpellE><b>DoTraceMessage</b></span>), or the use of WMI calls for +software tracing. </p> + +<p class=MsoNormal> </p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>FILE LIST</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<p class=MsoNormal><span class=SpellE>drvioctl.h</span></p> + +<p class=MsoNormal><span class=SpellE><span class=GramE>makefile</span></span></p> + +<p class=MsoNormal><span class=GramE>sources</span></p> + +<p class=MsoNormal><span class=SpellE>tracedrv.c</span></p> + +<p class=MsoNormal><span class=SpellE>tracedrv.ctl</span></p> + +<p class=MsoNormal><span class=SpellE>tracedrv.rc</span></p> + +<p class=MsoNormal> </p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>LOCATION</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<p class=MsoNormal>The files that comprise <span class=SpellE>Tracedrv</span> +are included in the Windows DDK in the \<span class=SpellE>src</span>\general\tracing\<span +class=SpellE>tracedrv</span> directory.</p> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'> </span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<h3><span style='font-family:"Verdana","sans-serif";mso-fareast-font-family: +"Times New Roman"'>FEEDBACK</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3> + +<p><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'>We welcome +your comments, problem reports, and wish-list requests. Please submit them by +visiting the <a href="http://go.microsoft.com/fwlink/?linkid=8704&clcid=0x409">Windows +DDK Web site</a>. </span></p> + +<p align=center style='text-align:center'><span style='font-size:10.0pt; +font-family:"Verdana","sans-serif"'><a +href="../../../../../INF/Readmes%20-%20Post%20WinHEC%202000/ChkInf.htm#top">Top +of page</a> </span></p> + +<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624 + style='width:6.5in;mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-padding-alt: + 0in 0in 0in 0in'> + <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes; + height:1.5pt'> + <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'> + <p class=MsoNormal><span style='font-size:2.0pt'> </span></p> + </td> + </tr> +</table> + +<p><span style='font-size:7.5pt;font-family:"MS Sans Serif"'>� Microsoft +Corporation 2005</span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'> +</span></p> + +</div> + +</body> + +</html> diff --git a/general/tracing/tracedriver/tracedrv.sln b/general/tracing/tracedriver/tracedrv.sln index b75b8638..6ad93c59 100644 --- a/general/tracing/tracedriver/tracedrv.sln +++ b/general/tracing/tracedriver/tracedrv.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tracectl", "Tracectl", "{F3C08B55-33D7-458F-BE79-6878512FF1B1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tracectl", "Tracectl", "{6924D03F-364D-445C-975D-882FB14B0058}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tracedrv", "Tracedrv", "{93C02447-AFF7-40E8-AED1-849588063150}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tracedrv", "Tracedrv", "{C8CBD4D8-1015-4418-87FD-AC97AFF374CA}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tracectl", "tracectl\tracectl.vcxproj", "{72739B3A-9B9B-41EE-9B0E-E73482470A03}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tracectl", "tracectl\tracectl.vcxproj", "{3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tracedrv", "tracedrv\tracedrv.vcxproj", "{959FDB65-EF62-4ED3-8856-326B5AD4BB41}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tracedrv", "tracedrv\tracedrv.vcxproj", "{19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,28 +19,28 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Debug|Win32.ActiveCfg = Debug|Win32 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Debug|Win32.Build.0 = Debug|Win32 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Release|Win32.ActiveCfg = Release|Win32 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Release|Win32.Build.0 = Release|Win32 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Debug|x64.ActiveCfg = Debug|x64 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Debug|x64.Build.0 = Debug|x64 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Release|x64.ActiveCfg = Release|x64 - {72739B3A-9B9B-41EE-9B0E-E73482470A03}.Release|x64.Build.0 = Release|x64 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Debug|Win32.ActiveCfg = Debug|Win32 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Debug|Win32.Build.0 = Debug|Win32 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Release|Win32.ActiveCfg = Release|Win32 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Release|Win32.Build.0 = Release|Win32 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Debug|x64.ActiveCfg = Debug|x64 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Debug|x64.Build.0 = Debug|x64 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Release|x64.ActiveCfg = Release|x64 - {959FDB65-EF62-4ED3-8856-326B5AD4BB41}.Release|x64.Build.0 = Release|x64 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Debug|Win32.Build.0 = Debug|Win32 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Release|Win32.ActiveCfg = Release|Win32 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Release|Win32.Build.0 = Release|Win32 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Debug|x64.ActiveCfg = Debug|x64 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Debug|x64.Build.0 = Debug|x64 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Release|x64.ActiveCfg = Release|x64 + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6}.Release|x64.Build.0 = Release|x64 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Debug|Win32.ActiveCfg = Debug|Win32 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Debug|Win32.Build.0 = Debug|Win32 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Release|Win32.ActiveCfg = Release|Win32 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Release|Win32.Build.0 = Release|Win32 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Debug|x64.ActiveCfg = Debug|x64 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Debug|x64.Build.0 = Debug|x64 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Release|x64.ActiveCfg = Release|x64 + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {72739B3A-9B9B-41EE-9B0E-E73482470A03} = {F3C08B55-33D7-458F-BE79-6878512FF1B1} - {959FDB65-EF62-4ED3-8856-326B5AD4BB41} = {93C02447-AFF7-40E8-AED1-849588063150} + {3A8F1F69-AD42-492B-9F57-5F95EFCD75C6} = {6924D03F-364D-445C-975D-882FB14B0058} + {19455661-BB6E-4AB3-A48C-33ABBB7BAF8B} = {C8CBD4D8-1015-4418-87FD-AC97AFF374CA} EndGlobalSection EndGlobal diff --git a/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj b/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj index febcbdd7..31e6316f 100644 --- a/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj +++ b/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj @@ -19,11 +19,11 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{959FDB65-EF62-4ED3-8856-326B5AD4BB41}</ProjectGuid> + <ProjectGuid>{19455661-BB6E-4AB3-A48C-33ABBB7BAF8B}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{01308CF4-AB44-4626-BACF-D0555BC457DF}</SampleGuid> + <SampleGuid>{46E71AFA-97EB-4402-8982-491F04EE159C}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj.Filters b/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj.Filters index 029e408d..41133cad 100644 --- a/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj.Filters +++ b/general/tracing/tracedriver/tracedrv/tracedrv.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{91F6D41E-6246-46E8-99D5-002ACC23AA49}</UniqueIdentifier> + <UniqueIdentifier>{8E3F54BF-DC75-4CA8-BC24-30E385BF6DE2}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{DF6424D7-7A22-42ED-B11F-508DD7CA41CD}</UniqueIdentifier> + <UniqueIdentifier>{3627B81B-D94D-4485-A492-73C31C368899}</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>{A42F3913-01F8-47A1-B888-182B29B1B137}</UniqueIdentifier> + <UniqueIdentifier>{51DDE1C7-D8F3-45E4-A8C3-B9FBEF4E0364}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{EC7A4F43-C45A-4AAA-97BC-DFDF6C41C75C}</UniqueIdentifier> + <UniqueIdentifier>{AA4D7E47-8D1B-407A-BA84-A2D3F956CEE3}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/umdfSkeleton/UMDFSkeleton.vcxproj b/general/umdfSkeleton/UMDFSkeleton.vcxproj index 947c3517..f0462cf3 100644 --- a/general/umdfSkeleton/UMDFSkeleton.vcxproj +++ b/general/umdfSkeleton/UMDFSkeleton.vcxproj @@ -19,7 +19,7 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{A0B8804E-85A9-4432-A812-E9F6947C647A}</ProjectGuid> + <ProjectGuid>{70388898-AB89-4971-A750-E49A07A4180B}</ProjectGuid> <RootNamespace>$(MSBuildProjectName)</RootNamespace> <UMDF_VERSION_MAJOR>1</UMDF_VERSION_MAJOR> <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR> @@ -27,7 +27,7 @@ <KMDF_VERSION_MINOR>9</KMDF_VERSION_MINOR> <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> <Platform Condition="'$(Platform)' == ''">Win32</Platform> - <SampleGuid>{A084ACA0-8591-462C-A3F8-EB936C200BCA}</SampleGuid> + <SampleGuid>{AF73135B-9C65-43D8-8AA0-B878E28778DD}</SampleGuid> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> diff --git a/general/umdfSkeleton/UMDFSkeleton.vcxproj.Filters b/general/umdfSkeleton/UMDFSkeleton.vcxproj.Filters index da7d8ca7..90efaa53 100644 --- a/general/umdfSkeleton/UMDFSkeleton.vcxproj.Filters +++ b/general/umdfSkeleton/UMDFSkeleton.vcxproj.Filters @@ -3,19 +3,19 @@ <ItemGroup> <Filter Include="Source Files"> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> - <UniqueIdentifier>{16B2A720-AEC4-4627-959C-8A289CB6F699}</UniqueIdentifier> + <UniqueIdentifier>{4071D9FA-8523-40C2-AD37-B96CB8438837}</UniqueIdentifier> </Filter> <Filter Include="Header Files"> <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> - <UniqueIdentifier>{F54667DA-A0EB-4C54-92C9-9D2E3B44E169}</UniqueIdentifier> + <UniqueIdentifier>{FA619144-425B-4A1D-BE9D-C67C3DF67348}</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>{949A3C23-B62C-4219-A44F-CF5DBE78DD73}</UniqueIdentifier> + <UniqueIdentifier>{A3F17163-2904-4021-9EF6-73D05E31169D}</UniqueIdentifier> </Filter> <Filter Include="Driver Files"> <Extensions>inf;inv;inx;mof;mc;</Extensions> - <UniqueIdentifier>{DDA0FB16-FA5D-4FB7-8EE6-DB37C36326C6}</UniqueIdentifier> + <UniqueIdentifier>{0EE7AE28-07A8-4B93-8708-F261564A77B5}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> diff --git a/general/umdfSkeleton/UMDFSkeleton_OSR.inx b/general/umdfSkeleton/UMDFSkeleton_OSR.inx index 4da9c3f9..af5b6e2d 100644 --- a/general/umdfSkeleton/UMDFSkeleton_OSR.inx +++ b/general/umdfSkeleton/UMDFSkeleton_OSR.inx @@ -51,8 +51,9 @@ KmdfService = WINUSB, WinUsb_Install UmdfService = UMDFSkeleton, UMDFSkeleton_Install UmdfServiceOrder = UMDFSkeleton +; Needed for Win7 support [WinUsb_Install] -KmdfLibraryVersion = $KMDFVERSION$ +KmdfLibraryVersion = 1.9 [UMDFSkeleton_Install] UmdfLibraryVersion=$UMDFVERSION$ diff --git a/general/umdfSkeleton/umdfSkeleton.sln b/general/umdfSkeleton/umdfSkeleton.sln index 2deba81c..cba8f90b 100644 --- a/general/umdfSkeleton/umdfSkeleton.sln +++ b/general/umdfSkeleton/umdfSkeleton.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0 MinimumVisualStudioVersion = 12.0 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UMDFSkeleton", "UMDFSkeleton.vcxproj", "{A0B8804E-85A9-4432-A812-E9F6947C647A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UMDFSkeleton", "UMDFSkeleton.vcxproj", "{70388898-AB89-4971-A750-E49A07A4180B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +13,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Debug|Win32.ActiveCfg = Debug|Win32 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Debug|Win32.Build.0 = Debug|Win32 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Release|Win32.ActiveCfg = Release|Win32 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Release|Win32.Build.0 = Release|Win32 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Debug|x64.ActiveCfg = Debug|x64 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Debug|x64.Build.0 = Debug|x64 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Release|x64.ActiveCfg = Release|x64 - {A0B8804E-85A9-4432-A812-E9F6947C647A}.Release|x64.Build.0 = Release|x64 + {70388898-AB89-4971-A750-E49A07A4180B}.Debug|Win32.ActiveCfg = Debug|Win32 + {70388898-AB89-4971-A750-E49A07A4180B}.Debug|Win32.Build.0 = Debug|Win32 + {70388898-AB89-4971-A750-E49A07A4180B}.Release|Win32.ActiveCfg = Release|Win32 + {70388898-AB89-4971-A750-E49A07A4180B}.Release|Win32.Build.0 = Release|Win32 + {70388898-AB89-4971-A750-E49A07A4180B}.Debug|x64.ActiveCfg = Debug|x64 + {70388898-AB89-4971-A750-E49A07A4180B}.Debug|x64.Build.0 = Debug|x64 + {70388898-AB89-4971-A750-E49A07A4180B}.Release|x64.ActiveCfg = Release|x64 + {70388898-AB89-4971-A750-E49A07A4180B}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE |
