Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 86 → Rev 176

/drivers/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.write.1.tlog
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.log (revision 176)
@@ -0,0 +1,25 @@
+Build started 10.2.2014 7:32:23.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)).
+ 1>Inf2Cat:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:6_3_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32 Package\\"
+ .........................
+ Signability test complete.
+
+ Errors:
+ None
+
+ Warnings:
+ None
+
+ Catalog generation complete.
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32 Package\pcicc32.cat
+ DriverTestSign:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD"
+ Done Adding Additional Store
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32 Package\pcicc32.cat
+
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.36
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8.1 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug (revision 176)
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug
Property changes:
Added: svn:global-ignores
## -0,0 +1 ##
+*.tlog
Index: wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj.filters
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj.filters (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj.filters (revision 176)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Driver Files">
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
+ <Extensions>inf;inv;inx;mof;mc;</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project>
\ No newline at end of file
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.log (revision 176)
@@ -0,0 +1,20 @@
+Build started 10.2.2014 7:32:23.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)).
+ 1>Inf2Cat:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:7_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32 Package\\"
+ .........................
+ Signability test complete.
+
+ Errors:
+ None
+
+ Warnings:
+ None
+
+ Catalog generation complete.
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32 Package\pcicc32.cat
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.32
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/Inf2Cat.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/Inf2Cat.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win7 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.log (revision 176)
@@ -0,0 +1,20 @@
+Build started 10.2.2014 7:32:22.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)).
+ 1>Inf2Cat:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:6_3_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32 Package\\"
+ .........................
+ Signability test complete.
+
+ Errors:
+ None
+
+ Warnings:
+ None
+
+ Catalog generation complete.
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32 Package\pcicc32.cat
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.29
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/Inf2Cat.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/Inf2Cat.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8.1 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.log (revision 176)
@@ -0,0 +1,20 @@
+Build started 10.2.2014 7:32:22.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)).
+ 1>Inf2Cat:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:8_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32 Package\\"
+ .........................
+ Signability test complete.
+
+ Errors:
+ None
+
+ Warnings:
+ None
+
+ Catalog generation complete.
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32 Package\pcicc32.cat
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.32
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/Inf2Cat.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/Inf2Cat.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.log (revision 176)
@@ -0,0 +1,25 @@
+Build started 10.2.2014 7:32:24.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)).
+ 1>Inf2Cat:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:7_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32 Package\\"
+ .........................
+ Signability test complete.
+
+ Errors:
+ None
+
+ Warnings:
+ None
+
+ Catalog generation complete.
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32 Package\pcicc32.cat
+ DriverTestSign:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD"
+ Done Adding Additional Store
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32 Package\pcicc32.cat
+
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.35
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/Inf2Cat.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/Inf2Cat.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win7 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.log (revision 176)
@@ -0,0 +1,25 @@
+Build started 10.2.2014 7:32:24.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)).
+ 1>Inf2Cat:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:8_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32 Package\\"
+ .........................
+ Signability test complete.
+
+ Errors:
+ None
+
+ Warnings:
+ None
+
+ Catalog generation complete.
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32 Package\pcicc32.cat
+ DriverTestSign:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD"
+ Done Adding Additional Store
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32 Package\pcicc32.cat
+
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.78
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/Inf2Cat.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/Inf2Cat.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj (revision 176)
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Win8.1 Debug|Win32">
+ <Configuration>Win8.1 Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8.1 Release|Win32">
+ <Configuration>Win8.1 Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Debug|Win32">
+ <Configuration>Win8 Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Release|Win32">
+ <Configuration>Win8 Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Debug|Win32">
+ <Configuration>Win7 Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Release|Win32">
+ <Configuration>Win7 Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8.1 Debug|x64">
+ <Configuration>Win8.1 Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8.1 Release|x64">
+ <Configuration>Win8.1 Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Debug|x64">
+ <Configuration>Win8 Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Release|x64">
+ <Configuration>Win8 Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Debug|x64">
+ <Configuration>Win7 Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Release|x64">
+ <Configuration>Win7 Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E52219C0-0B63-42B6-BBBD-5718FDE46FDB}</ProjectGuid>
+ <TemplateGuid>{4605da2c-74a5-4865-98e1-152ef136825f}</TemplateGuid>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+ <Configuration>Win8.1 Debug</Configuration>
+ <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <RootNamespace>pcicc32_Package</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Utility</ConfigurationType>
+ <DriverType>Package</DriverType>
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <EnableDeployment>False</EnableDeployment>
+ <RemoveDriver>True</RemoveDriver>
+ <HardwareIdString />
+ <CommandLine />
+ <DeployFiles />
+ <EnableVerifier>False</EnableVerifier>
+ <AllDrivers>False</AllDrivers>
+ <VerifyProjectOutput>True</VerifyProjectOutput>
+ <VerifyDrivers />
+ <VerifyFlags>133563</VerifyFlags>
+ </PropertyGroup>
+ <ItemGroup>
+ <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\pcicc32\pcicc32.vcxproj">
+ <Project>{e355652a-faa5-429d-8308-afea65c58b53}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/vc120.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/vc120.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.18.506
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_v.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_v.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.log (revision 176)
@@ -0,0 +1,23 @@
+Build started 10.2.2014 7:32:18.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)).
+ 1>StampInf:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8Release\pcicc32.inf
+ Stamping Win8Release\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.18.506
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8Release\ /Zi /nologo /W4 /WX /Ox /Os /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D _WIN32_WINNT=0x0602 /D WINVER=0x0602 /D WINNT=1 /D NTDDI_VERSION=0x06020000 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8Release\\" /Fd"Win8Release\vc120.pdb" /Gz /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1nodatetime /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c
+ pcicc32_drv.c
+ pcicc32_i.c
+ pcicc32_io.c
+ pcicc32_v.c
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.02" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8Release\pcicc32_drv.obj
+ Win8Release\pcicc32_i.obj
+ Win8Release\pcicc32_io.obj
+ Win8Release\pcicc32_v.obj
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.sys
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.65
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_io.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_io.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/pcicc32.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/pcicc32.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_drv.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_drv.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release (revision 176)
/wiener_pcicc32/pcicc32/pcicc32/Win8Release
Property changes:
Added: svn:global-ignores
## -0,0 +1 ##
+*.obj
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.c
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.c (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.c (revision 176)
@@ -0,0 +1,275 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------
+// all around irq handling
+//
+// (c) 1999-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 01.08.1999
+// first release 1.0 AR 17.10.1999
+// IoConnectInterrupt, share vector now true AR 04.03.2000
+// globalInterruptEnabledStatus() added AR 24.02.2001
+// added IRQ handling AR 24.02.2001
+// added WITH_IRQS switch to switsch off irqs AR 04.10.2001
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#define WITH_IRQS // comment out for interrupt handling excludes
+// ACHTUNG TEST
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <pcicc32_drv.h>
+#include <pcicc32_i.h>
+#include <pcicc32.h>
+#include <pcicc32_local.h>
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+#ifndef WORD
+#define WORD USHORT
+#endif
+
+//------------------------------------------------------------------------
+// GLOBALS
+//
+
+//------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+//------------------------------------------------------------------------
+// enable and disable of interrupts
+//
+void globalInterruptEnable(PCIADA *pciada)
+{
+#ifdef WITH_IRQS
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, ENABLE_PCIADA_IRQS);
+#endif
+}
+
+void globalInterruptDisable(PCIADA *pciada)
+{
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS);
+}
+
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada)
+{
+ unsigned short wStatus;
+
+ wStatus = READ_REGISTER_USHORT(pciada->pwIntCSR);
+
+ if ((wStatus & ENABLE_PCIADA_IRQS) == ENABLE_PCIADA_IRQS)
+ return 1;
+
+ return 0;
+}
+
+//------------------------------------------------------------------------
+// determine which interrupt and evaluates status if appropriate
+//
+static int evaluateIrqStatus(PCIADA *pciada, ULONG *dwIrqStatus)
+{
+ volatile USHORT wCntrl;
+ int result = 0;
+
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl);
+ if (wCntrl & 0x100) // pciada switched on ?
+ {
+ volatile USHORT wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR);
+
+ if (wIntCSR & 0x0040) // are the interrupts enabled?
+ {
+ if (wIntCSR & 0x20)
+ {
+ // it's the pci interrupt # 2
+ globalInterruptDisable(pciada); // disable following interrupts
+
+ // get current Cntrl - and clear interrupt
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, (USHORT)(wCntrl & ~0x0100)); // disable
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // enable again
+
+ *dwIrqStatus = CONNECTION_TIMEOUT;
+
+ result = 1;
+ }
+
+ if (wIntCSR & 0x04)
+ {
+ globalInterruptDisable(pciada); // disable following interrupts
+
+ *dwIrqStatus = READ_REGISTER_ULONG(_DWORD_NAF(pciada->pvVirtIfr, 28, 2, 0));
+
+ // clear pending interrupt - LAM-FF
+ WRITE_REGISTER_USHORT(_WORD_NAF(pciada->pvVirtIfr, 28, 0, 16), 0);
+
+ result = 1;
+ }
+ }
+ }
+
+ return result;
+}
+
+//------------------------------------------------------------------------
+// main interrupt handler function
+//
+static BOOLEAN irq_service(PKINTERRUPT Interrupt, PVOID ServiceContext)
+{
+ PCIADA *pciada = (PCIADA *)ServiceContext;
+ UNREFERENCED_PARAMETER(Interrupt);
+#ifndef WITH_IRQS
+ return FALSE;
+#endif
+
+ if (!evaluateIrqStatus(pciada, &pciada->dwIrqStatus))
+ {
+ // KdPrint(("Not my irq.\n"));
+ return FALSE;
+ }
+
+ // fire custom deffered procedure call
+ KeInsertQueueDpc(&pciada->kDPCobj, (PVOID)pciada, (PVOID)&pciada->dwIrqStatus);
+
+ KdPrint(("irq_service(0x%08x)\n", pciada->dwIrqStatus));
+ return TRUE;
+}
+
+//------------------------------------------------------------------------
+// translate interrupt resources for PCIADAs to hardware independent ones
+//
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ NTSTATUS result = STATUS_SUCCESS;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32TranslateInterrupt()\n"));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ KdPrint(("In - Bus:%d, IrqLine:%d\n", pciada->Bus, pciada->Irql));
+
+ if (pciada->Irql)
+ {
+ pciada->Vector = HalGetInterruptVector(PCIBus, pciada->Bus,
+ pciada->Irql, pciada->Vector,
+ &pciada->Irql, &pciada->Affinity);
+
+ KdPrint(("Out - Irql:%d, Vector: %d, Affinity:%d\n", pciada->Irql, pciada->Vector, pciada->Affinity));
+
+ }
+ else
+ result = STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT;
+ }
+
+ return result;
+}
+
+//------------------------------------------------------------------------
+// connect service routines to all PCIADA interrupts
+//
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj)
+{
+#ifdef WITH_IRQS
+ int i;
+ NTSTATUS result = STATUS_SUCCESS;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32ConnectInterrupt()\n"));
+
+ // connect the interrupts to service routines
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ pciada->InterruptObject = NULL;
+
+ if (pciada->Vector)
+ result = IoConnectInterrupt(&pciada->InterruptObject,
+ irq_service,
+ (PVOID)pciada,
+ NULL,
+ pciada->Vector,
+ pciada->Irql,
+ pciada->Irql,
+ LevelSensitive,
+ TRUE,
+ pciada->Affinity,
+ FALSE);
+
+ KdPrint(("irq_service:%p, VirtVect:%d, Irql:%d, hIrql:%d, Aff:0x%08x, Status:0x%08x\n",
+ irq_service, pciada->Vector, pciada->Irql,
+ pciada->Irql, pciada->Affinity, result));
+
+ if (result != STATUS_SUCCESS)
+ break;
+ }
+
+ if (result == STATUS_SUCCESS)
+ {
+ KdPrint(("PCICC32ConnectInterrupt() OK.\n"));
+ }
+
+ return result;
+#else
+ return STATUS_SUCCESS;
+#endif
+}
+
+//------------------------------------------------------------------------
+// dis-connect service routines to all PCIADA interrupts
+//
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj)
+{
+#ifdef WITH_IRQS
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("DisConnectInterrupt()\n"));
+
+ // dis connect the interrupts to service routines
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ KdPrint(("IrqObj:0x%08x\n", pciada->InterruptObject));
+
+ if (pciada->InterruptObject)
+ {
+ IoDisconnectInterrupt(pciada->InterruptObject);
+ pciada->InterruptObject = 0;
+ }
+ }
+#endif
+
+ return STATUS_SUCCESS;
+}
+
+
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj (revision 176)
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Win8.1 Debug|Win32">
+ <Configuration>Win8.1 Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8.1 Release|Win32">
+ <Configuration>Win8.1 Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Debug|Win32">
+ <Configuration>Win8 Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Release|Win32">
+ <Configuration>Win8 Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Debug|Win32">
+ <Configuration>Win7 Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Release|Win32">
+ <Configuration>Win7 Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8.1 Debug|x64">
+ <Configuration>Win8.1 Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8.1 Release|x64">
+ <Configuration>Win8.1 Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Debug|x64">
+ <Configuration>Win8 Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win8 Release|x64">
+ <Configuration>Win8 Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Debug|x64">
+ <Configuration>Win7 Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Win7 Release|x64">
+ <Configuration>Win7 Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E355652A-FAA5-429D-8308-AFEA65C58B53}</ProjectGuid>
+ <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+ <Configuration>Win8.1 Debug</Configuration>
+ <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <RootNamespace>pcicc32</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'" Label="Configuration">
+ <TargetVersion>WindowsV6.3</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'" Label="Configuration">
+ <TargetVersion>Windows8</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
+ <ClCompile>
+ <WppEnabled>false</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
+ <ClCompile>
+ <WppEnabled>false</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
+ <ClCompile>
+ <WppEnabled>false</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
+ <ClCompile>
+ <WppEnabled>false</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
+ <ClCompile>
+ <WppEnabled>false</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
+ <ClCompile>
+ <WppEnabled>false</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+ <WppKernelMode>true</WppKernelMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <Inf Include="pcicc32.inf" />
+ </ItemGroup>
+ <ItemGroup>
+ <FilesToPackage Include="$(TargetPath)" />
+ <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="guid.h" />
+ <ClInclude Include="pcicc32.h" />
+ <ClInclude Include="pcicc32_drv.h" />
+ <ClInclude Include="pcicc32_i.h" />
+ <ClInclude Include="pcicc32_io.h" />
+ <ClInclude Include="pcicc32_local.h" />
+ <ClInclude Include="pcicc32_v.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="pcicc32_drv.c" />
+ <ClCompile Include="pcicc32_i.c" />
+ <ClCompile Include="pcicc32_io.c" />
+ <ClCompile Include="pcicc32_v.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.c
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.c (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.c (revision 176)
@@ -0,0 +1,1063 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 (CAMAC) interface of ARW Elektronik, Germany --
+// the main body of the driver
+//
+// (c) 2000-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistribute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started out of pcivme sources AR 25.03.2000
+// added IRQ handling AR 24.02.2001
+// Added AUTOREAD functionality AR 17.03.2001
+// Added LCR_READ AR 31.03.2001
+// resource allocation registers idle entries too AR 25.11.2001
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+// totally rearanged resource alloc for WIN2000 AR 01.06.2002
+// version 2.14 eleminates PLXBUG in WIN2000 AR 05.06.2002
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002
+//
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+#ifndef WORD
+#define WORD USHORT
+#endif
+
+#define CTL_INDEX(x) ((x >> 2) & 0xFF) // get user control code as index
+#define RESOURCE_ENTRY_COUNT 6 // WIN2000 forces to claim all entries
+
+#define DOS_DEVICE_NAME L"\\DosDevices\\PCICC32:"
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+
+#include <ntddk.h>
+#include <devioctl.h>
+// #include <wdm.h>
+
+#include <pcicc32_drv.h>
+#include <pcicc32.h>
+#include <pcicc32_v.h>
+#include <pcicc32_i.h>
+#include <pcicc32_io.h>
+
+
+//------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct
+{
+ FILE_OBJ *file_obj;
+ PCIADA *pciada;
+ PVOID pOutputBuffer;
+ PVOID pInputBuffer;
+ ULONG Address;
+ DWORD Length;
+} SYNC_CONTEXT;
+
+//------------------------------------------------------------------------
+// GLOBALS
+//
+
+//------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+//------------------------------------------------------------------------
+// for debug only - print interrupt line
+//
+#if DBG
+void PrintInterruptLine(int Bus, int Slot)
+{
+ PCI_COMMON_CONFIG pci_config;
+
+ HalGetBusData( PCIConfiguration, // Bustype
+ Bus, // PCI-Busnumber
+ Slot, // Slotnumber
+ (PVOID) &(pci_config), // Pointer for the PCI-Information
+ sizeof(PCI_COMMON_CONFIG));
+
+ KdPrint(("Irql: %d\n", pci_config.u.type0.InterruptLine));
+}
+#endif
+
+//------------------------------------------------------------------------
+// get the cc32 number out of the filename
+//
+NTSTATUS InterpreteFileName(PCHAR name, int *nCC32)
+{
+ char *ptr = name;
+ char *n = "cc32_";
+ int h = -1; // high part
+ int l = -1; // low part
+
+ if (*ptr == '\\') ptr++; // jump over leading ...
+
+ while (*n) // compare the basename
+ if (*n == tolower(*ptr))
+ {
+ n++;
+ ptr++;
+ }
+ else
+ return STATUS_NO_SUCH_FILE;
+
+ h = *ptr - '0'; // get the number
+ ptr++;
+ l = *ptr - '0';
+
+ if (*ptr == 0) // still over the end ??
+ {
+ l = h;
+ h = 0;
+ }
+ else
+ ptr++;
+
+ if ((h < 0) || (l < 0) || (*ptr != 0)) // anything wrong ??
+ return STATUS_NO_SUCH_FILE;
+
+ *nCC32 = (h * 10) + l; // calculate number
+
+ if (*nCC32 >= PCICC32_MAX_CC32) // out of range ??
+ return STATUS_NO_SUCH_FILE;
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// the ultimate driver unload
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj)
+{
+ int i;
+ UNICODE_STRING symbol_name;
+ DEVICE_EXT *ext = (DEVICE_EXT*)(driverObj->DeviceObject->DeviceExtension);
+ int nPCIADAs = ext->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32Unload()\n"));
+
+ switch (ext->nInitState)
+ {
+ case 8:
+ case 7:
+ case 6:
+ // stop interrupts and shut off
+ PCICC32DeInitPCIADAs(driverObj->DeviceObject);
+ PCICC32DisConnectInterrupt(driverObj->DeviceObject);
+ case 5:
+ // KeInitializeDpc has no counterpart
+ case 4:
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &ext->pciada[i];
+ if (pciada->pvVirtLcr != NULL)
+ MmUnmapIoSpace(pciada->pvVirtLcr, LCR_SPACE);
+ if (pciada->pvVirtIfr != NULL)
+ MmUnmapIoSpace(pciada->pvVirtIfr, IFR_SPACE);
+ }
+ case 3:
+ // HalGetInterruptVector has no counterpart
+ case 2:
+ // HalTranslateBusAddress has no counterpart
+ case 1:
+ PCICC32FreeResources(driverObj->DeviceObject);
+ default:
+ case 0:
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME);
+
+ // delete the symbolicLink in the registry
+ IoDeleteSymbolicLink( &symbol_name);
+
+ // delete the deviceObject
+ IoDeleteDevice(driverObj->DeviceObject);
+ }
+
+ KdPrint(("PCICC32Unload() OK.\n"));
+}
+
+
+//------------------------------------------------------------------------
+// called at CreateFile()
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP Irp)
+{
+ NTSTATUS result = STATUS_SUCCESS;
+ ANSI_STRING name;
+ int nCC32;
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension);
+ PCIADA *pciada;
+ FILE_OBJ *file_obj;
+
+ name.Buffer = NULL;
+ name.MaximumLength = 80;
+
+ result = RtlUnicodeStringToAnsiString(&name, &(Irp->Tail.Overlay.OriginalFileObject->FileName), TRUE);
+ if (result != STATUS_SUCCESS) goto fin;
+
+ KdPrint(("PCICC32Open(%s)\n", name.Buffer));
+
+ result = InterpreteFileName(name.Buffer, &nCC32);
+ if (result != STATUS_SUCCESS) goto fin;
+
+ KdPrint(("PCICC32Open(%d)\n", nCC32));
+ RtlFreeAnsiString(&name);
+
+ file_obj = (FILE_OBJ *)ExAllocatePool(NonPagedPool, sizeof(FILE_OBJ));
+ if (file_obj == (FILE_OBJ *)NULL)
+ {
+ result = STATUS_NO_MEMORY;
+ goto fin;
+ }
+
+ file_obj->uwAssociatedCC32 = (USHORT) nCC32;
+
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (PVOID)file_obj;
+
+ result = PCICC32ScanCC32(deviceObj);
+ if (result != STATUS_SUCCESS) goto fin;
+
+ for (i = 0; i < pDevExt->nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ if (pciada->wModuleNumber == nCC32)
+ {
+ pDevExt->cc32[nCC32] = pciada; // create association
+ pciada->dwLinkCount++;
+
+ enableCC32(pciada);
+ break;
+ }
+ }
+
+ if (i >= pDevExt->nPCIADAs)
+ {
+ result = STATUS_NO_SUCH_FILE;
+ goto fin;
+ }
+
+ fin:
+ Irp->IoStatus.Status = result;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+
+ return result;
+}
+
+//------------------------------------------------------------------------
+// called at close()
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP Irp)
+{
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension);
+ FILE_OBJ *file_obj = (FILE_OBJ *)NULL;
+ PCIADA *pciada;
+
+ file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+
+ KdPrint(("PCICC32Close(%d)\n", file_obj->uwAssociatedCC32));
+
+ if (file_obj != (FILE_OBJ *)NULL)
+ {
+ pciada = pDevExt->cc32[file_obj->uwAssociatedCC32];
+ pciada->dwLinkCount--;
+
+ // disable interrupts when closing
+ if (pciada->pIrqControlFile == file_obj)
+ {
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ globalInterruptDisable(pciada);
+ }
+
+ // cancel any blocking Irp origin from this file
+ if (file_obj->blockingIrp != (PIRP)NULL)
+ file_obj->blockingIrp = (PIRP)NULL;
+
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp)
+ pciada->pBlockingIrp = (PIRP *)NULL;
+
+ if (!pciada->dwLinkCount)
+ disableCC32(pciada);
+
+ ExFreePool(file_obj);
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (FILE_OBJ *)NULL;
+ }
+
+ KdPrint(("PCICC32Close OK\n"));
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// called at
+NTSTATUS PCICC32Shutdown(PDEVICE_OBJECT deviceObj, PIRP irp)
+{
+ UNREFERENCED_PARAMETER(irp);
+ KdPrint(("PCICC32Shutdown()\n"));
+
+ // deinit interfaces and interrupts
+ PCICC32DeInitPCIADAs(deviceObj);
+
+ KdPrint(("PCICC32Shutdown() OK\n"));
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// called at ioctl()
+NTSTATUS PCICC32DeviceControl(PDEVICE_OBJECT deviceObj, PIRP Irp)
+{
+ PIO_STACK_LOCATION IrpStack;
+ int nIndex;
+
+ IrpStack = IoGetCurrentIrpStackLocation(Irp);
+ nIndex = CTL_INDEX(IrpStack->Parameters.DeviceIoControl.IoControlCode);
+
+ KdPrint(("PCICC32DeviceControl(%d / 0x%08x)\n", nIndex, Irp->Tail.Overlay.OriginalFileObject));
+
+ if (nIndex > CTL_INDEX(PCICC32_LAST_CTL_CODE))
+ {
+ KdPrint(("LastIndex(%d)\n", CTL_INDEX(PCICC32_LAST_CTL_CODE)));
+ Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp,IO_NO_INCREMENT);
+
+ KdPrint(("PCICC32DeviceControl() FAIL.\n"));
+
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ return ioctl[nIndex](deviceObj, Irp, IrpStack);
+}
+
+
+//------------------------------------------------------------------------
+// called at read()
+static BOOLEAN PCICC32Read_kernel(PVOID pvContext)
+{
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext;
+ register ULONG i = 0;
+ USHORT wCntrl;
+
+ wCntrl = READ_REGISTER_USHORT(context->pciada->pwCntrl);
+ if (context->file_obj->wBlockTransfer & AUTOREAD)
+ {
+ wCntrl &= ~0x0004; // enable autoread - set bit to 0
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl);
+ }
+
+ // do the read ---
+ if (context->file_obj->wBlockTransfer & UNTIL_NOT_Q)
+ {
+ // read first time to get Q information
+ register ULONG tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address);
+
+ if (context->file_obj->wAccessType == WORD_ACCESS)
+ {
+ PUSHORT pwBuffer = (PUSHORT)context->pOutputBuffer;
+ PUSHORT pwBufEnd = (PUSHORT)((PUCHAR)context->pOutputBuffer + context->Length);
+
+ while ((tempBuffer & 0x80000000) && (pwBuffer < pwBufEnd))
+ {
+ *pwBuffer++ = (USHORT)tempBuffer;
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q
+ i++;
+ }
+ }
+ else
+ {
+ // LONG_ACCESS
+ PULONG pdwBuffer = (PULONG)context->pOutputBuffer;
+ PULONG pdwBufEnd = (PULONG)((PUCHAR)context->pOutputBuffer + context->Length);
+
+ while ((tempBuffer & 0x80000000) && (pdwBuffer < pdwBufEnd))
+ {
+ *pdwBuffer++ = tempBuffer;
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q
+ i++;
+ }
+ }
+
+ i *= context->file_obj->wAccessType;
+
+ KdPrint(("UNTIL_NOT_Q, 0x%08x bytes read\n", i));
+ }
+ else // no UNTIL_NOT_Q
+ {
+ while (i < context->Length)
+ {
+ context->file_obj->fRead((void *)((PUCHAR)context->pOutputBuffer + i), (void *)context->Address); // read the same address multiple times
+ i += context->file_obj->wAccessType;
+ }
+ }
+
+ // disable autoread unconditionally - set bit to 1
+ wCntrl |= 0x0004;
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl);
+
+ context->Length = i;
+
+ return TRUE;
+}
+
+NTSTATUS PCICC32Read(PDEVICE_OBJECT device_Obj, PIRP Irp)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ SYNC_CONTEXT context;
+
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32];
+ context.pOutputBuffer = ((void *)(MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority)));
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart;
+ context.Length = 0;
+
+ KdPrint(("PCICC32Read(%d)\n", context.file_obj->uwAssociatedCC32));
+
+ if (context.Address > IFR_SPACE)
+ Status = STATUS_ACCESS_VIOLATION;
+ else
+ {
+ // do here in between what has to be done -----------------
+ context.Length = IrpStack->Parameters.Read.Length;
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length));
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address;
+
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Read_kernel, &context);
+ // do here in between what has to be done end -------------
+ }
+
+ Irp->IoStatus.Status = Status;
+ Irp->IoStatus.Information = context.Length;
+ IoCompleteRequest(Irp,IO_NO_INCREMENT);
+
+ KdPrint(("PCICC32Read(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+
+//------------------------------------------------------------------------
+// called at write()
+static BOOLEAN PCICC32Write_kernel(PVOID pvContext)
+{
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext;
+ register ULONG i = 0;
+
+ // do the write ---
+ while (i < context->Length)
+ {
+ context->file_obj->fWrite((void *)context->Address, (void *)((PUCHAR)context->pInputBuffer + i)); // write the same address multiple times
+ i += context->file_obj->wAccessType;
+ }
+
+ context->Length = i;
+
+ return TRUE;
+}
+
+NTSTATUS PCICC32Write(PDEVICE_OBJECT device_Obj, PIRP Irp)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ SYNC_CONTEXT context;
+
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32];
+ context.pInputBuffer = ((void *)(MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority)));
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart;
+ context.Length = 0;
+
+ KdPrint(("PCICC32Write(%d)\n", context.file_obj->uwAssociatedCC32));
+
+ if (context.Address > IFR_SPACE)
+ Status = STATUS_ACCESS_VIOLATION;
+ else
+ {
+// register ULONG i = 0;
+
+ // do here in between what has to be done -----------------
+ context.Length = IrpStack->Parameters.Read.Length;
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length));
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address;
+
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Write_kernel, &context);
+ // do here in between what has to be done end -------------
+ }
+
+
+ Irp->IoStatus.Status = Status;
+ Irp->IoStatus.Information = context.Length;
+ IoCompleteRequest(Irp,IO_NO_INCREMENT);
+
+ KdPrint(("PCICC32Write(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// search for pciada's
+//
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj)
+{
+ PCI_SLOT_NUMBER SlotNumber;
+ PCI_COMMON_CONFIG pci_config;
+ PCIADA *pciada;
+ ULONG length;
+ int *found;
+ int i,j,k;
+
+ KdPrint(("SearchDevices()\n"));
+
+ // prepare structures ----------------------------------------
+ found = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs;
+ *found = 0;
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++)
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i];
+
+ pciada->Bus = -1;
+ pciada->Slot.u.AsULONG = 0xFFFFFFFF;
+ }
+
+ // search for pciada's ---------------------------------------
+ SlotNumber.u.bits.Reserved = 0;
+
+ for (j = 0; j < PCI_MAX_BUSES; j++)
+ {
+ for (i = 0; i < PCI_MAX_DEVICES; i++)
+ {
+ SlotNumber.u.bits.DeviceNumber = i;
+ for (k = 0; k < PCI_MAX_FUNCTION; k++)
+ {
+ SlotNumber.u.bits.FunctionNumber = k;
+ length = HalGetBusData( PCIConfiguration, // Bustype
+ j, // PCI-Busnumber
+ SlotNumber.u.AsULONG, // Slotnumber
+ (PVOID) &(pci_config), // Pointer for the PCI-Information
+ sizeof(PCI_COMMON_CONFIG) );
+
+ if ((pci_config.VendorID == PCICC32_VENDOR_ID) &&
+ (pci_config.DeviceID == PCICC32_DEVICE_ID) &&
+ (pci_config.u.type0.SubSystemID == PCICC32_SUBSYS_ID) &&
+ (pci_config.u.type0.SubVendorID == PCICC32_SUBVEN_ID) &&
+ (pci_config.u.type0.BaseAddresses[3]))
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[*found];
+
+ memcpy(&pciada->PCIDevice, &pci_config, sizeof(pci_config));
+ pciada->Slot = SlotNumber;
+ pciada->Bus = j;
+
+ KdPrint(("PCIADA found @ Bus/Slot %d/%d.\n", pciada->Bus, pciada->Slot.u.AsULONG));
+
+ (*found)++;
+ if (*found >= PCICC32_MAX_PCIADA) return STATUS_SUCCESS;
+ }
+ }
+ }
+ }
+
+ return STATUS_SUCCESS;
+}
+
+//---------------------------------------------------------------
+// function to call for bug fix of PLX9050 build in bug
+//
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT device_Obj)
+{
+ DEVICE_EXT *DeviceExtension = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int i;
+ ULONG dwData;
+ PCIADA *pciada;
+
+ KdPrint(("PLX9050BugFix()\n"));
+
+ for (i = 0; i < DeviceExtension->nPCIADAs; i++)
+ {
+ pciada = &DeviceExtension->pciada[i];
+
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[0]) & 0x80)
+ {
+ KdPrint(("Changing address 0:0x%p with 4:0x%p\n",
+ pciada->PCIDevice.u.type0.BaseAddresses[0],
+ pciada->PCIDevice.u.type0.BaseAddresses[4]));
+
+ pciada->PCIDevice.u.type0.BaseAddresses[0] = // exchange
+ pciada->PCIDevice.u.type0.BaseAddresses[4];
+ pciada->PCIDevice.u.type0.BaseAddresses[4] = dwData;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[0],
+ 0x10, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[4],
+ 0x20, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[1]) & 0x80)
+ {
+ KdPrint(("Changing address 1:0x%p with 5:0x%p\n",
+ pciada->PCIDevice.u.type0.BaseAddresses[1],
+ pciada->PCIDevice.u.type0.BaseAddresses[5]));
+
+ pciada->PCIDevice.u.type0.BaseAddresses[1] = // exchange
+ pciada->PCIDevice.u.type0.BaseAddresses[5];
+ pciada->PCIDevice.u.type0.BaseAddresses[5] = dwData;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[1],
+ 0x14, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[5],
+ 0x24, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+ }
+ }
+
+ return STATUS_SUCCESS;
+}
+
+
+//------------------------------------------------------------------------
+// reserve resources for PCIADAs
+//
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList)
+{
+ PCM_RESOURCE_LIST pResourceList;
+ PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor;
+ PCM_PARTIAL_RESOURCE_LIST pPartialList;
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR pPartialDescriptor;
+ int i;
+ int bug = 0;
+
+ KdPrint(("PCICC32ExtractResources()\n"));
+
+ pResourceList = pList;
+ pFullDescriptor = pResourceList->List;
+ pPartialList = &pFullDescriptor->PartialResourceList;
+
+ for (i=0; i<(int)pPartialList->Count; i++)
+ {
+ pPartialDescriptor = &pPartialList->PartialDescriptors[i];
+ switch (pPartialDescriptor->Type)
+ {
+ case CmResourceTypeInterrupt:
+ pciada->Irql = (KIRQL)pPartialDescriptor->u.Interrupt.Level;
+ pciada->Vector = pPartialDescriptor->u.Interrupt.Vector;
+ pciada->Affinity = pPartialDescriptor->u.Interrupt.Affinity;
+
+ KdPrint(("Irq : Irql: %d, Vector: %d, Affinity: %d\n",
+ pciada->Irql, pciada->Vector, pciada->Affinity));
+ break;
+ case CmResourceTypeDma:
+ KdPrint(("Dma : \n"));
+ break;
+ case CmResourceTypePort:
+
+ KdPrint(("Port : 0x%p\n", pPartialDescriptor->u.Port.Start));
+ break;
+ case CmResourceTypeMemory:
+ // special handling of PLXBUG here because of WIN2000
+ // WIN2000 doesn't recognize late address changes
+ if (!bug)
+ {
+ if (i == 0)
+ {
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start;
+
+ if (pciada->pvPhysLcr.LowPart & 0x80)
+ bug = 1;
+ }
+ }
+ else
+ {
+ if (i == 3)
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start;
+ }
+
+ if (i == 2)
+ pciada->pvPhysIfr = pPartialDescriptor->u.Memory.Start;
+
+ KdPrint(("Memory : 0x%p\n", (PUCHAR)pPartialDescriptor->u.Memory.Start.LowPart));
+ break;
+ }
+ }
+
+ if (pciada->Irql == 0)
+ return STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT;
+
+ KdPrint(("PCICC32ExtractResources() OK.\n"));
+
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj)
+{
+ PCM_RESOURCE_LIST pList = NULL;
+ NTSTATUS result = STATUS_SUCCESS;
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_Obj->DeviceExtension);
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+ UNICODE_STRING DriverClassName;
+
+ KdPrint(("PCICC32ReserveResources()\n"));
+
+ // prepare resource claiming
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32");
+
+ // cycle through all busses and slots assigned to PCIADAs
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ result = HalAssignSlotResources(NULL, &DriverClassName, device_Obj->DriverObject, device_Obj,
+ PCIBus, pciada->Bus, pciada->Slot.u.AsULONG, &pList);
+
+ if (result != STATUS_SUCCESS)
+ break;
+
+ result = PCICC32ExtractResources(pciada, pList);
+
+ if (result != STATUS_SUCCESS)
+ break;
+ }
+
+ // its my part to free allocated resources
+ ExFreePool(pList);
+
+ KdPrint(("PCICC32ReserveResources(0x%08x)\n", result));
+
+ return result;
+};
+
+//------------------------------------------------------------------------
+// free resources from PCIADAs
+//
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj)
+{
+ CM_RESOURCE_LIST ResList;
+ BOOLEAN bConflict;
+ UNICODE_STRING DriverClassName;
+
+ KdPrint(("PCICC32FreeResources()\n"));
+
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32");
+
+ ResList.Count = 0;
+
+ IoReportResourceUsage(&DriverClassName, device_Obj->DriverObject,
+ &ResList, sizeof(ResList), device_Obj,
+ NULL, 0, FALSE, &bConflict);
+ return STATUS_SUCCESS;
+};
+
+
+//------------------------------------------------------------------------
+// translate memory resources to neutral for PCIADAs
+//
+NTSTATUS PCICC32TranslateBusAddresses(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ NTSTATUS result = STATUS_SUCCESS;
+ int nPCIADAs = ((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs;
+ ULONG memType0, memType2;
+ PCIADA *pciada;
+
+ KdPrint(("TranslateBusAddresseses()\n"));
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i];
+
+ memType0 = memType2 = 0;
+
+ if (!(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysLcr, &memType0,
+ &pciada->pvPhysLcr)) ||
+ !(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysIfr, &memType2,
+ &pciada->pvPhysIfr)))
+ {
+ result = STATUS_UNSUCCESSFUL;
+ break;
+ }
+
+ if ((memType0) || (memType2))
+ {
+ result = STATUS_UNSUCCESSFUL;
+ break;
+ }
+ }
+ return result;
+}
+
+//------------------------------------------------------------------------
+// map address spaces to virtual addresses
+//
+NTSTATUS PCICC32MapIOspaces(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32MapIOspaces()\n"));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ if ((pciada->pvVirtLcr = MmMapIoSpace(pciada->pvPhysLcr, LCR_SPACE, FALSE)) == NULL)
+ return STATUS_UNSUCCESSFUL;
+ if ((pciada->pvVirtIfr = MmMapIoSpace(pciada->pvPhysIfr, IFR_SPACE, FALSE)) == NULL)
+ return STATUS_UNSUCCESSFUL;
+
+ KdPrint(("PCIADA %d: LCR 0x%08x IFR 0x%08x\n", i, pciada->pvVirtLcr, pciada->pvVirtIfr));
+
+ pciada->pwIntCSR = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x4C);
+ pciada->pwCntrl = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x50);
+ }
+
+ return STATUS_SUCCESS;
+}
+
+
+//------------------------------------------------------------------------
+// initializes and registers a DPC routine for each pciada
+//
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object)
+{
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_object->DeviceExtension);
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("InitializeCustomDPCObject()\n"));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+ KeInitializeDpc(&pciada->kDPCobj, fMyDefferedRoutine, (PVOID)device_object);
+ }
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// init structures a.s.o.
+//
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ PCIADA *pciada;
+
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++)
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i];
+
+ pciada->pvPhysLcr.QuadPart = pciada->pvPhysIfr.QuadPart = 0;
+ pciada->pvVirtLcr = pciada->pvVirtIfr = NULL;
+
+ pciada->bConnected = FALSE; // connection still not verified
+ pciada->wModuleNumber = 0xFFFF;
+ pciada->wFPGAVersion = 0xFFFF;
+ pciada->wModuleType = 1; // always CC32
+
+ pciada->InterruptObject = NULL;
+ pciada->Irql = 0;
+ pciada->Vector = 0;
+ pciada->Affinity = 0;
+
+ pciada->dwLinkCount = 0;
+
+ pciada->dwIrqStatus = 0;
+ pciada->pBlockingIrp = (PIRP *)NULL;
+
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ }
+
+ // no CC32 associated to any PCIADA
+ for (i = 0; i < PCICC32_MAX_CC32; i++)
+ ((DEVICE_EXT*)(device_Obj->DeviceExtension))->cc32[i] = NULL;
+}
+
+//------------------------------------------------------------------------
+// the ultimate starting point of a driver
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath)
+{
+ int i;
+ PDEVICE_OBJECT device_object; // pointer to the device object
+ UNICODE_STRING device_name;
+ UNICODE_STRING symbol_name;
+ NTSTATUS result = STATUS_SUCCESS;
+ PCIADA *pciada; // pointer to a PCIADA
+ int nPCIADAs; // count of PCIADAs
+ DEVICE_EXT *DeviceExtension = NULL;
+ UNREFERENCED_PARAMETER(regPath);
+ KdPrint(("DriverEntry() ----%d.%d-------------------------\n", (DRIVER_VERSION >> 16) & 0xFFFF, DRIVER_VERSION & 0xFFFF));
+
+ driverObj->DriverUnload = PCICC32Unload;
+ driverObj->MajorFunction[IRP_MJ_CREATE] = PCICC32Open;
+ driverObj->MajorFunction[IRP_MJ_CLOSE] = PCICC32Close;
+ driverObj->MajorFunction[IRP_MJ_READ] = PCICC32Read;
+ driverObj->MajorFunction[IRP_MJ_WRITE] = PCICC32Write;
+ driverObj->MajorFunction[IRP_MJ_DEVICE_CONTROL] = PCICC32DeviceControl;
+ driverObj->MajorFunction[IRP_MJ_SHUTDOWN] = PCICC32Shutdown;
+
+ RtlInitUnicodeString(&device_name, L"\\Device\\CC32");
+
+ /* DeviceObject durch IO-Manager erzeugen */
+ result = IoCreateDevice( driverObj, // DriverObject received by the DriverEntry Call
+ sizeof(DEVICE_EXT), // required Memory for the DeviceExtension
+ &device_name, // Name of the device in the device-Directory
+ FILE_DEVICE_UNKNOWN, // Device-ID
+ 0, // Device-Characteristics normal 0
+ FALSE, // TRUE : one Thread can open the driver
+ &device_object); // DeviceObject returned from the IO-Manager
+
+ // defines how the data are handled between user / kernel Adress-Space
+ device_object->Flags |= DO_DIRECT_IO;
+
+ // anounce driver as symbolic device ---------------------------------
+ if (result == STATUS_SUCCESS)
+ {
+ /* now the symbolic Link is created. If there is no S.L. a program cannot connect to the driver */
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME);
+ result = IoCreateSymbolicLink(&symbol_name,&device_name);
+ if (result != STATUS_SUCCESS)
+ {
+ IoDeleteDevice(device_object);
+ return result;
+ }
+ }
+ else
+ return result;
+
+ DeviceExtension = (DEVICE_EXT*)device_object->DeviceExtension;
+
+ DeviceExtension->actualIrp = NULL;
+ DeviceExtension->nInitState = 0;
+
+ // init pciada structures ------------------------------------
+ PCICC32SoftInit(device_object);
+
+ // search for PCIADAs ----------------------------------------
+ result = SearchDevices(device_object);
+ nPCIADAs = DeviceExtension->nPCIADAs;
+
+ if ((result != STATUS_SUCCESS) || !(nPCIADAs))
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+
+ // request exclusive ownership of .. ---------------------------------
+ if ((result = PCICC32ReserveResources(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return result;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // fix PLX9050 Bug -------------------------------------------
+ if ((result = PLX9050BugFix(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return result;
+ }
+
+ // translate BUS relative addresses ----------------------------------
+ if ((result = PCICC32TranslateBusAddresses(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // translate Interrupt Resources used --------------------------------
+ if ((result = PCICC32TranslateInterrupt(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // map address spaces to virtual addresses ---------------------------
+ if ((result = PCICC32MapIOspaces(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // initialze my custom DPC objects -----------------------------------
+ if ((result = InitializeCustomDPCObjects(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return result;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // disable all interrupts --------------------------------------------
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &DeviceExtension->pciada[i];
+
+ globalInterruptDisable(pciada);
+ }
+
+ // connect interrupts to service routines ----------------------------
+ if ((result = PCICC32ConnectInterrupt(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // scan all connected CC32 for info and later use -------------------
+ if ((result = PCICC32ScanCC32(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+
+ device_object->Flags &= ~DO_DEVICE_INITIALIZING;
+
+ KdPrint(("DriverEntry() OK.\n"));
+
+ return result;
+}
+
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.h (revision 176)
@@ -0,0 +1,55 @@
+#ifndef __PCICC33_I_H__
+#define __PCICC32_I_H__
+
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany ---------
+// the header file to pcicc32_i.c - all around interrupt handling
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 15.06.1999
+// added globalInterruptEnabledStatus() AR 24.02.2001
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <pcicc32_drv.h>
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+
+//------------------------------------------------------------------------
+// PROTOTYPES
+//
+void globalInterruptEnable(PCIADA *pciada);
+void globalInterruptDisable(PCIADA *pciada);
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada);
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj);
+
+
+/* release all this procedures after init of the driver */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (init, PCICC32ConnectInterrupt)
+#pragma alloc_text (init, PCICC32TranslateInterrupt)
+#endif
+
+/* put all this procedures in the paged memory-pool, all called at passiv Level */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (page, PCICC32DisConnectInterrupt)
+#endif
+
+#endif //__PCICC32_I_H__
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/vc120.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/vc120.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.20.51
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_v.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_v.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.log (revision 176)
@@ -0,0 +1,23 @@
+Build started 10.2.2014 7:32:20.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)).
+ 1>StampInf:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win7Release\pcicc32.inf
+ Stamping Win7Release\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.20.51
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin7Release\ /Zi /nologo /W4 /WX /Ox /Os /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D _WIN32_WINNT=0x0601 /D WINVER=0x0601 /D WINNT=1 /D NTDDI_VERSION=0x06010000 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win7Release\\" /Fd"Win7Release\vc120.pdb" /Gz /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1nodatetime /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c
+ pcicc32_drv.c
+ pcicc32_i.c
+ pcicc32_io.c
+ pcicc32_v.c
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\memcmp.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\BufferOverflowK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.01" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win7Release\pcicc32_drv.obj
+ Win7Release\pcicc32_i.obj
+ Win7Release\pcicc32_io.obj
+ Win7Release\pcicc32_v.obj
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.sys
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.67
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_io.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_io.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_i.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_i.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/pcicc32.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/pcicc32.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win7 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_drv.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_drv.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/vc120.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/vc120.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.17.794
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_v.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_v.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.log (revision 176)
@@ -0,0 +1,23 @@
+Build started 10.2.2014 7:32:17.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)).
+ 1>StampInf:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8.1Release\pcicc32.inf
+ Stamping Win8.1Release\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.17.794
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8.1Release\ /Zi /nologo /W4 /WX /Ox /Os /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D _WIN32_WINNT=0x0603 /D WINVER=0x0603 /D WINNT=1 /D NTDDI_VERSION=0x06030000 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8.1Release\\" /Fd"Win8.1Release\vc120.pdb" /Gz /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1nodatetime /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c
+ pcicc32_drv.c
+ pcicc32_i.c
+ pcicc32_io.c
+ pcicc32_v.c
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.03" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8.1Release\pcicc32_drv.obj
+ Win8.1Release\pcicc32_i.obj
+ Win8.1Release\pcicc32_io.obj
+ Win8.1Release\pcicc32_v.obj
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.sys
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.68
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_io.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_io.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_i.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_i.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/pcicc32.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/pcicc32.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8.1 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_drv.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_drv.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_local.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_local.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_local.h (revision 176)
@@ -0,0 +1,36 @@
+#ifndef _PCICC32_LOCAL_H__
+#define _PCICC32_LOCAL_H__
+//-----------------------------------------------------------------------
+// Address definitions and constants for PCIADA of PCICC32 interface
+// designed by A.Rausch
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// first parts derived from PCIVME AR 10.03.2000
+// added initialisation for AUTOREAD AR 17.03.2001
+//
+
+/*-----------------------------------------------------------------------*/
+/* all addresses relative to PCI-Window */
+
+/*--------- some masks in CSR -------------------------------------------*/
+#define MASK_MODNR (WORD)0x00F0 /* the mask to get the module No */
+#define MASK_FPGA (WORD)0x0F00 /* the mask to get the FPGA rev. */
+#define MASK_MODTYPE (WORD)0xF000 /* the mask to get type of module*/
+
+/*---------- release und inhibit into 0x50 of PLX ------------------------*/
+#define RELEASE_CC32 (WORD)0x4186 /* write this to release access ..*/
+#define INHIBIT_CC32 (WORD)0x4086 /* write this to inhibit access ..*/
+#define ENABLE_PCIADA_IRQS (WORD)0x0049 /* enable PCIADA IRQs */
+#define DISABLE_PCIADA_IRQS (WORD)0x0009 /* disable PCIADA IRQs */
+
+#endif // _PCICC32_LOCAL_H__
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj.filters
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj.filters (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj.filters (revision 176)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="Driver Files">
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
+ <Extensions>inf;inv;inx;mof;mc;</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Inf Include="pcicc32.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
+</Project>
\ No newline at end of file
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.h (revision 176)
@@ -0,0 +1,172 @@
+#ifndef __PCICC32_DRV_H__
+#define __PCICC32_DRV_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany ---------
+// the main header file of the driver
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistribute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 10.03.2000
+// dwIrqStatus added, version 2 AR 24.02.2001
+// with AUTOREAD, version 2.01 AR 17.03.2001
+// with support for LCR_READ, version 2.02 AR 31.03.2001
+// changed to VisualStudio 6.0 AR 30.09.2001
+// compiled with DDK 1/2001 AR 20.11.2001
+// removed alloc_text cause of WIN2000 problems AR 25.11.2001
+// version 2.7 released AR 25.11.2001
+// version 2.8 still experimental AR 26.05.2002
+// version 2.16 eliminates PLXBUG in WIN2000 AR 05.06.2002
+// version 2.17 added KeSynchronizeExecution AR 16.06.2002
+// version 2.18 improved snchronisation AR 18.06.2002
+//
+
+//-------------------------------------------------------------------------
+#define DRIVER_VERSION ((2 << 16) | 18) // the only place for version info
+#define DRIVER_VARIANT 0 // mark customisation here
+//-------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------
+// precautions for debug compile
+#define PCICC32_DEBUG
+
+#ifndef PCICC32_DEBUG
+#ifdef KdPrint
+#undef KdPrint
+#define KdPrint(x) /* x */
+#endif
+#endif
+//-------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#define PCI_MAX_BUSES 4 // buses to search for pciada
+
+#define PCICC32_MAX_PCIADA 4 // maximum of PCIADA to search for
+#define PCICC32_MAX_CC32 16 // maximum number of CC32 modules connected
+
+//-------------------------------------------------------------------------
+// DEFINES
+//
+#define PCICC32_VENDOR_ID 0x10B5
+#define PCICC32_DEVICE_ID 0x2258
+#define PCICC32_SUBSYS_ID 0x2258
+#define PCICC32_SUBVEN_ID 0x9050
+
+#define LCR_SPACE 256 // space in bytes of LCR
+#define IFR_SPACE 32768 // space in bytes of IFR
+
+//----------------------------------------------------------------------------------------
+// macros for simple address calculation
+//
+#define _WORD_NAF(base, n, a, f) ((USHORT *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2)))
+#define _DWORD_NAF(base, n, a, f) ((ULONG *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2)))
+
+//-------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct _FILE_OBJ
+{
+ USHORT uwAssociatedCC32; // which CC32 number it belongs
+ USHORT wAccessType; // WORD or LONGWORD
+ USHORT wBlockTransfer; // != 0 for block transfer
+ void (*fRead)(void *to, void *from); // resulting read
+ void (*fWrite)(void *to, void *from); // resulting write
+ PIRP blockingIrp; // if != 0 then a blocking IRP is waiting
+} FILE_OBJ, *PFILE_OBJ;
+
+typedef struct
+{
+ int Bus; // bus number of pciada
+ PCI_SLOT_NUMBER Slot; // slot + function number encoded
+ PCI_COMMON_CONFIG PCIDevice; // content of pcr, only for direct HW related functions
+
+ PHYSICAL_ADDRESS pvPhysLcr; // local config register, unmapped and mapped
+ PHYSICAL_ADDRESS pvPhysIfr; // interface registers, unmapped and mapped
+ PVOID pvVirtLcr; // virtual LCR space
+ PVOID pvVirtIfr; // virtual IFR space
+
+ PKINTERRUPT InterruptObject; // points to the associated interrupt obj
+ KIRQL Irql; // virtual Irq level, unmapped and mapped
+ ULONG Vector; // mapped system vector, unmapped and mapped
+ KAFFINITY Affinity; // which processor uses this irq, unmapped and mapped
+
+ PUSHORT pwCntrl; // LCR Cntrl Offset @ LCR + 0x50
+ PUSHORT pwIntCSR; // LCR IntCSR Offset @ LCR + 0x4C
+
+ ULONG dwLinkCount; // how often this interface is requested
+ BOOLEAN bConnected; // CC32 is connected and powered
+ USHORT wModuleNumber; // Number (Jumper) of CC32
+ USHORT wFPGAVersion; // Revision of (CC32) FPGA
+ USHORT wModuleType; // Type of (CC32) module
+
+ KDPC kDPCobj; // custom DPC object for irq tunneling
+
+ ULONG dwIrqStatus; // the last unrequested status of a interrupt
+ PIRP *pBlockingIrp; // points to File or == NULL when no blocking in progress
+
+ FILE_OBJ *pIrqControlFile; // this file controls the global enable / disable IRQ
+} PCIADA;
+
+typedef struct _DEVICE_EXT
+{
+ PDEVICE_OBJECT DeviceObject; // points to myself and carries the pointer to DriverObject
+ PIRP actualIrp; // points to ..
+
+ int nPCIADAs; // how many PCIADAs are found
+
+ PCIADA pciada[PCICC32_MAX_PCIADA]; // for each PCIADA a descriptor
+
+ PCIADA *cc32[PCICC32_MAX_CC32]; // points to PCIADA to which it belongs
+
+ int nInitState; // tracks the state of initialisation
+} DEVICE_EXT;
+
+
+// Prototypes to support following pragmas
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath);
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP irp);
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP irp);
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj);
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj);
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT deviceObj);
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList);
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32TranslateBusAddress(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32MapIOspace(PDEVICE_OBJECT device_object);
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj);
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object);
+
+/* release all this procedures after init of the driver */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (init, DriverEntry)
+#pragma alloc_text (init, SearchDevices)
+#pragma alloc_text (init, PLX9050BugFix)
+#pragma alloc_text (init, PCICC32ReserveResources)
+#pragma alloc_text (init, PCICC32ExtractResources)
+#pragma alloc_text (init, PCICC32TranslateBusAddress)
+#pragma alloc_text (init, PCICC32MapIOspace)
+#pragma alloc_text (init, PCICC32SoftInit)
+#pragma alloc_text (init, InitializeCustomDPCObjects)
+#endif
+
+/* put all this procedures in the paged memory-pool, all called at passiv Level */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (page, PCICC32Open)
+#pragma alloc_text (page, PCICC32Close)
+#pragma alloc_text (page, PCICC32Unload)
+#pragma alloc_text (page, PCICC32FreeResources)
+#endif
+
+#endif // __PCICC32_DRV_H__
+
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/vc120.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/vc120.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.20.773
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_v.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_v.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.log (revision 176)
@@ -0,0 +1,28 @@
+Build started 10.2.2014 7:32:20.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)).
+ 1>StampInf:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win7Debug\pcicc32.inf
+ Stamping Win7Debug\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.20.773
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin7Debug\ /Zi /nologo /W4 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0601 /D WINVER=0x0601 /D WINNT=1 /D NTDDI_VERSION=0x06010000 /D DBG=1 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win7Debug\\" /Fd"Win7Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c
+ pcicc32_drv.c
+ pcicc32_i.c
+ pcicc32_io.c
+ pcicc32_v.c
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\memcmp.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\BufferOverflowK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.01" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win7Debug\pcicc32_drv.obj
+ Win7Debug\pcicc32_i.obj
+ Win7Debug\pcicc32_io.obj
+ Win7Debug\pcicc32_v.obj
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.sys
+ DriverTestSign:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD"
+ Done Adding Additional Store
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.sys
+
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.76
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_io.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_io.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_i.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_i.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/pcicc32.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/pcicc32.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win7 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_drv.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_drv.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/vc120.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/vc120.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.19.198
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_v.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_v.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.log (revision 176)
@@ -0,0 +1,28 @@
+Build started 10.2.2014 7:32:19.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)).
+ 1>StampInf:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8.1Debug\pcicc32.inf
+ Stamping Win8.1Debug\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.19.198
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8.1Debug\ /Zi /nologo /W4 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0603 /D WINVER=0x0603 /D WINNT=1 /D NTDDI_VERSION=0x06030000 /D DBG=1 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8.1Debug\\" /Fd"Win8.1Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c
+ pcicc32_drv.c
+ pcicc32_i.c
+ pcicc32_io.c
+ pcicc32_v.c
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.03" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8.1Debug\pcicc32_drv.obj
+ Win8.1Debug\pcicc32_i.obj
+ Win8.1Debug\pcicc32_io.obj
+ Win8.1Debug\pcicc32_v.obj
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.sys
+ DriverTestSign:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD"
+ Done Adding Additional Store
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.sys
+
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.81
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_io.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_io.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_i.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_i.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/pcicc32.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/pcicc32.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8.1 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_drv.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_drv.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.c
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.c (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.c (revision 176)
@@ -0,0 +1,196 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------
+// all around recognition and basic services of VMEMM
+//
+// (c) 2000-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started from pcivme_v.c AR 02.07.2000
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <pcicc32_drv.h>
+#include <pcicc32_v.h>
+#include <pcicc32_local.h> // all around the pciada interface
+
+#ifndef WORD // don't touch include files of WIN95 driver
+#define WORD USHORT
+#endif
+
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+//------------------------------------------------------------------------
+// PROTOTYPES
+//
+
+//------------------------------------------------------------------------
+// GLOBALS
+//
+
+//------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+//------------------------------------------------------------------------
+// test connection to VMEMM devices without disturbing anything
+//
+//---------------------------------------------------------------------
+// checks a connection with a small test pattern
+//
+NTSTATUS TestConnection(PCIADA *pciada)
+{
+ USHORT *pwADRH = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 1, 0);
+ USHORT *pwADRL = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 0, 0);
+ int i;
+ USHORT wRet;
+ USHORT wADRHContent;
+ USHORT wADRLContent;
+
+
+ KdPrint(("TestConnection()\n"));
+
+ wADRHContent = READ_REGISTER_USHORT(pwADRH); // save previous content
+ wADRLContent = READ_REGISTER_USHORT(pwADRL);
+
+ for (i = 0; i < 10000; i++)
+ {
+ WRITE_REGISTER_USHORT(pwADRH, 0x5555);
+ WRITE_REGISTER_USHORT(pwADRL, 0xAAAA);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0x5555) return STATUS_UNSUCCESSFUL;
+
+ WRITE_REGISTER_USHORT(pwADRH, 0xAAAA);
+ WRITE_REGISTER_USHORT(pwADRL, 0x5555);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0xAAAA) return STATUS_UNSUCCESSFUL;
+
+ WRITE_REGISTER_USHORT(pwADRH, 0x0000);
+ WRITE_REGISTER_USHORT(pwADRL, 0xFFFF);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0x0000) return STATUS_UNSUCCESSFUL;
+
+ WRITE_REGISTER_USHORT(pwADRH, 0xFFFF);
+ WRITE_REGISTER_USHORT(pwADRL, 0x0000);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0xFFFF) return STATUS_UNSUCCESSFUL;
+ }
+
+ WRITE_REGISTER_USHORT(pwADRH, wADRHContent); // restore previous content
+ WRITE_REGISTER_USHORT(pwADRL, wADRLContent);
+
+ KdPrint(("TestConnection() OK.\n"));
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// scan VMEMM devices without disturbing anything
+//
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj)
+{
+ int i;
+ int nPCIADAs = ((DEVICE_EXT*)(deviceObj->DeviceExtension))->nPCIADAs;
+ PCIADA *pciada;
+ USHORT wCntrl;
+ USHORT wIntCSR;
+ USHORT wModuleStatus;
+
+ KdPrint(("PCICC32ScanCC32(nPCIADAs = %d)\n", nPCIADAs));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &((DEVICE_EXT*)(deviceObj->DeviceExtension))->pciada[i];
+
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); // save it for later use
+ wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR);
+
+ KdPrint(("wCntrl = 0x%04x, wIntCSR = 0x%04x\n", wCntrl, wIntCSR));
+
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); // switch off before open
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS);
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32); // open it for test
+
+ if (wCntrl & 0x0800)
+ {
+ if (TestConnection(pciada) == STATUS_SUCCESS)
+ {
+ wModuleStatus = READ_REGISTER_USHORT(pciada->pvVirtIfr);
+
+ pciada->bConnected = TRUE;
+
+ // interpret the content
+ pciada->wModuleNumber = (wModuleStatus & MASK_MODNR) >> 4;
+ pciada->wFPGAVersion = (wModuleStatus & MASK_FPGA) >> 8;
+ pciada->wModuleType = (wModuleStatus & MASK_MODTYPE) >> 12;
+
+ KdPrint(("PCIADA %d <-> CC32 %d\n", i, pciada->wModuleNumber));
+ }
+ else
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out
+ }
+ else
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out
+
+ if (pciada->wModuleNumber != 0xFFFF)
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // restore state
+ else
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32);
+
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, wIntCSR); // restore interrupt masks
+ }
+
+ return STATUS_SUCCESS;
+}
+
+
+//------------------------------------------------------------------------
+// deinit all PCIADAs in a passive state
+//
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj)
+{
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)deviceObj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32DeInitPCIADAs()\n"));
+
+ // dis connect the interrupts to service routines
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32);
+ // this is the same as globalInterruptDisable(pciada);
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS);
+ }
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// switches pciada on or off
+//
+void enableCC32(PCIADA *pciada)
+{
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32);
+}
+
+void disableCC32(PCIADA *pciada)
+{
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32);
+}
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/vc120.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/vc120.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.21.688
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_v.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_v.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.log
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.log (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.log (revision 176)
@@ -0,0 +1,28 @@
+Build started 10.2.2014 7:32:21.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)).
+ 1>StampInf:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8Debug\pcicc32.inf
+ Stamping Win8Debug\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.21.688
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8Debug\ /Zi /nologo /W4 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0602 /D WINVER=0x0602 /D WINNT=1 /D NTDDI_VERSION=0x06020000 /D DBG=1 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8Debug\\" /Fd"Win8Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c
+ pcicc32_drv.c
+ pcicc32_i.c
+ pcicc32_io.c
+ pcicc32_v.c
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.02" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8Debug\pcicc32_drv.obj
+ Win8Debug\pcicc32_i.obj
+ Win8Debug\pcicc32_io.obj
+ Win8Debug\pcicc32_v.obj
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.sys
+ DriverTestSign:
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD"
+ Done Adding Additional Store
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.sys
+
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:01.03
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_io.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_io.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_i.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_i.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/pcicc32.lastbuildstate
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/pcicc32.lastbuildstate (revision 176)
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Win8 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\|
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_drv.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_drv.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.c
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.c (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.c (revision 176)
@@ -0,0 +1,770 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany ---------
+// the ioctl functions
+//
+// (c) 1999-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 03.07.1999
+// first release 1.0 AR 17.10.1999
+// added access to PLX LC-Register AR 30.03.2001
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+// multiple interrupt enable allowed AR 01.06.2002
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002
+// extended ioctl_irq_status_kernel AR 18.06.2002
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <devioctl.h>
+#include <pcicc32_drv.h>
+#include <pcicc32.h>
+#include <pcicc32_v.h>
+#include <pcicc32_io.h>
+#include <pcicc32_local.h>
+#include <pcicc32_i.h>
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+
+// buffers usage must match the corresponding ioctl code!
+#define SET_BUFFERS_METHOD_OUT_DIRECT \
+{\
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\
+ pInputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\
+ pOutputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\
+}
+
+#define SET_BUFFERS_METHOD_IN_DIRECT \
+{\
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\
+ pInputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\
+ pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\
+}
+
+#define SET_BUFFERS_METHOD_BUFFERED \
+{\
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\
+ pInputBuffer = pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\
+}
+
+#define COMPLETE_REQUEST \
+{\
+ if (Status != STATUS_PENDING)\
+ {\
+ Irp->IoStatus.Status = Status; \
+ Irp->IoStatus.Information = irp_info; \
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); \
+ }\
+}
+
+// compatibilty issues to WIN95 driver calls
+#ifndef WORD
+#define WORD USHORT
+#endif
+
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+#ifndef BYTE
+#define BYTE UCHAR
+#endif
+
+#ifndef BOOL
+#define BOOL BOOLEAN
+#endif
+
+
+//-------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct
+{
+ FILE_OBJ *file_obj;
+ PCIADA *pciada;
+ PCICC32_IRQ_RESPONSE *pIrqStatus;
+ PIRP *Irp;
+ ULONG *irp_info;
+ NTSTATUS *Status;
+} IOCTL_IRQ_STATUS_CONTEXT;
+
+//--------------------------------------------------------------------------
+// LOCAL FUNCTIONS
+//
+
+//--------------------------------------------------------------------------
+// fast read or write functions - portable -
+static void readWord(void *to, void *from)
+{
+ *(PUSHORT)to = READ_REGISTER_USHORT((PUSHORT)from);
+}
+
+static void readLong(void *to, void *from)
+{
+ *(PULONG)to = READ_REGISTER_ULONG((PULONG)from);
+}
+
+static void writeWord(void *to, void *from)
+{
+ WRITE_REGISTER_USHORT((PUSHORT)to, *(PUSHORT)from);
+}
+
+static void writeLong(void *to, void *from)
+{
+ WRITE_REGISTER_ULONG((PULONG)to, *(PULONG)from);
+}
+
+//------------------------------------------------------------------------
+// init the interface with build in and user supplied constants
+static BOOLEAN InitInterface(PVOID pvLcr, PVOID pvIfr)
+{
+ UNREFERENCED_PARAMETER(pvLcr);
+ UNREFERENCED_PARAMETER(pvIfr);
+ return TRUE;
+}
+
+// deinit the interface with user supplied and build in constants
+static BOOLEAN DeInitInterface(PVOID pvLcr, PVOID pvIfr)
+{
+ UNREFERENCED_PARAMETER(pvLcr);
+ UNREFERENCED_PARAMETER(pvIfr);
+ return TRUE;
+}
+
+//------------------------------------------------------------------------
+// the default cancel routine for an queued Irp
+//
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp)
+{
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[file_obj->uwAssociatedCC32];
+
+ if (pciada->pBlockingIrp == (PIRP *)NULL)
+ {
+ IoReleaseCancelSpinLock(Irp->CancelIrql);
+ KdPrint(("Nothing to do: CancelRequest(0x%08x)\n", Irp));
+ return;
+ }
+ else
+ {
+ // release control of interrupt
+ if (pciada->pIrqControlFile == file_obj)
+ {
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ globalInterruptDisable(pciada);
+ }
+
+ // cancel any blocking Irp origin from this file
+ if (file_obj->blockingIrp != (PIRP)NULL)
+ file_obj->blockingIrp = (PIRP)NULL;
+
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp)
+ pciada->pBlockingIrp = (PIRP *)NULL;
+
+ IoReleaseCancelSpinLock(Irp->CancelIrql);
+
+ KdPrint(("Done: CancelRequest(0x%08x)\n", Irp));
+
+ Irp->IoStatus.Status = STATUS_CANCELLED;
+ Irp->IoStatus.Information = 0;
+
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ }
+}
+
+//------------------------------------------------------------------------
+// the custom deffered routine to finish blocking io on irq_block
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID pdwIrqStatus)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+ PIRP Irp = (PIRP)NULL;
+ PCIADA *pciada = (PCIADA *)pvPciada;
+ KIRQL oldIrqlCancel;
+
+ UNREFERENCED_PARAMETER(Dpc);
+ UNREFERENCED_PARAMETER(pdwIrqStatus);
+ UNREFERENCED_PARAMETER(pvDevice_object);
+ KdPrint(("fMyDefferedRoutine(0x%08x)\n", pciada->dwIrqStatus));
+
+ // beware off damage due to intercept at cancel of thread
+ IoAcquireCancelSpinLock(&oldIrqlCancel);
+
+ // get my associated packet
+ if (pciada->pBlockingIrp != (PIRP *)NULL)
+ {
+ Irp = *pciada->pBlockingIrp;
+
+ if (Irp != (PIRP)NULL) // then a blcoking Irp is waiting
+ {
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer);
+
+ // fill the response structure
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus;
+ pciada->dwIrqStatus = 0; // to prevent a following direct return
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32;
+
+ // release the cancel routine from this Irp
+ IoSetCancelRoutine(Irp, NULL);
+
+ COMPLETE_REQUEST;
+
+ file_obj->blockingIrp = (PIRP)NULL;
+ }
+
+ pciada->pBlockingIrp = (PIRP *)NULL;
+ }
+
+ // release the spin locks
+ IoReleaseCancelSpinLock(oldIrqlCancel);
+}
+
+//------------------------------------------------------------------------
+// if the interrupt is disabled for a blocking path, cancel the block
+static void ReleaseBlockingIrp(PDEVICE_OBJECT device_Obj, PCIADA *pciada, PFILE_OBJ pFile_obj)
+{
+ NTSTATUS Status = STATUS_CANCELLED;
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+ PIRP Irp = (PIRP)NULL;
+ KIRQL oldIrqlCancel;
+ UNREFERENCED_PARAMETER(device_Obj);
+ UNREFERENCED_PARAMETER(pFile_obj);
+
+ UNREFERENCED_PARAMETER(irp_info);
+ KdPrint(("ReleaseBlockingIrp()\n"));
+
+ // beware off damage due to intercept with cancel of thread
+ IoAcquireCancelSpinLock(&oldIrqlCancel);
+
+ if (pciada->pBlockingIrp != (PIRP *)NULL)
+ {
+ // get my associated packet
+ Irp = *pciada->pBlockingIrp;
+
+ if (Irp != (PIRP)NULL)
+ {
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer);
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus;
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32;
+
+ // release the cancel routine from this Irp
+ IoSetCancelRoutine(Irp, NULL);
+
+ COMPLETE_REQUEST;
+
+ file_obj->blockingIrp = (PIRP)NULL;
+ }
+
+ pciada->pBlockingIrp = (PIRP *)NULL; // mark the storage for blocking Irp free
+ }
+
+ // release the spin locks
+ IoReleaseCancelSpinLock(oldIrqlCancel);
+}
+
+//------------------------------------------------------------------------
+// all functions called from ioctl jump table
+//
+
+//------------------------------------------------------------------------
+// a dummy entry because of compatibiltiy (near) WIN95 driver
+static NTSTATUS ioctl_dummy(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ char *pCommand;
+
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+#ifndef _DEBUG
+ UNREFERENCED_PARAMETER(file_obj);
+#endif
+ SET_BUFFERS_METHOD_BUFFERED;
+ UNREFERENCED_PARAMETER(device_Obj);
+ pCommand = (char *)pInputBuffer;
+
+ KdPrint(("ioctl_dummy(%d)\n", file_obj->uwAssociatedCC32));
+
+ // do what must be here in between -----------
+
+ // do what must be here in between --- end ---
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_dummy(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// requests status
+static NTSTATUS ioctl_get_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = sizeof(PCICC32_STATUS);
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCIADA *pciada;
+ DEVICE_EXT *pDevExt;
+ PCICC32_STATUS *pStatus;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+
+ // do what must be here in between -----------
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_get_status(%d)\n", wModuleNumber));
+
+ // do what must be here in between -----------
+ if (OutputLength >= sizeof(PCICC32_STATUS))
+ {
+ USHORT temp;
+
+ pStatus = (PCICC32_STATUS *)pOutputBuffer;
+
+ pciada = pDevExt->cc32[wModuleNumber];
+
+ pStatus->dwInterface = wModuleNumber;
+
+ temp = READ_REGISTER_USHORT(pciada->pwIntCSR);
+ pStatus->bTimeout = (temp & 0x0020) ? 1 : 0;
+ pStatus->bInterrupt = (temp & 0x0004) ? 1 : 0;
+ }
+ else
+ Status = STATUS_BUFFER_TOO_SMALL;
+ // do what must be here in between --- end ---
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_get_status(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// clears status
+static BOOLEAN ioctl_clear_status_kernel(PVOID pvContext)
+{
+ PCIADA *pciada = (PCIADA *)pvContext;
+ USHORT wCntrl;
+
+ // get current Cntrl - and clear interrupt
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl);
+ wCntrl &= ~0x0100; // disable
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl);
+ wCntrl |= 0x0100; // enable again
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl);
+
+ return TRUE;
+}
+
+static NTSTATUS ioctl_clear_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCIADA *pciada;
+ DEVICE_EXT *pDevExt;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+
+ // do what must be here in between -----------
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_clear_status(%d)\n", wModuleNumber));
+
+ // do what must be here in between -----------
+ pciada = pDevExt->cc32[wModuleNumber];
+
+ KeSynchronizeExecution(pciada->InterruptObject, ioctl_clear_status_kernel, pciada);
+
+ // do what must be here in between --- end ---
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_clear_status() OK\n"));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// set parameter for this path for future access to CC32
+static NTSTATUS ioctl_access_para(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCICC32_ACCESS_COMMAND *pAccessPara;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber];
+ UNREFERENCED_PARAMETER(pciada);
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_access_para(%d)\n", wModuleNumber));
+
+ pAccessPara = (PCICC32_ACCESS_COMMAND *)pInputBuffer;
+
+ // do here in between what has to be done -----------------
+ file_obj->wAccessType = pAccessPara->wAccessType;
+ file_obj->wBlockTransfer = pAccessPara->wBlockTransfer;
+
+ pAccessPara->dwInterface = wModuleNumber;
+
+ switch (pAccessPara->wAccessType)
+ {
+ case WORD_ACCESS: file_obj->fRead = readWord;
+ file_obj->fWrite = writeWord;
+ break;
+ case LONG_ACCESS: file_obj->fRead = readLong;
+ file_obj->fWrite = writeLong;
+ break;
+ default: Status = STATUS_UNSUCCESSFUL;
+ break;
+ }
+ // do here in between what has to be done end -------------
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_access_para(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// allow or inhibit interrupt requests from either CC32 or thru local timeout
+static NTSTATUS ioctl_control_interrupts(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCICC32_IRQ_CONTROL *pIrqControlIn, *pIrqControlOut;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber];
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_control_interrupts(%d)\n", wModuleNumber));
+
+ pIrqControlIn = (PCICC32_IRQ_CONTROL *)pInputBuffer;
+ pIrqControlOut = (PCICC32_IRQ_CONTROL *)pOutputBuffer;
+
+ // do here in between what has to be done -----------------
+ if (pIrqControlIn->wEnable)
+ {
+ // reserve the controlling of interrupts for this path
+ if ((pciada->pIrqControlFile == (FILE_OBJ *)NULL) ||
+ (pciada->pIrqControlFile == file_obj))
+ {
+ pciada->pIrqControlFile = file_obj;
+ globalInterruptEnable(pciada);
+ }
+ else
+ Status = STATUS_DEVICE_BUSY;
+ }
+ else
+ {
+ // nobody else is allowed to disable interrupts
+ if (pciada->pIrqControlFile == file_obj)
+ {
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ globalInterruptDisable(pciada);
+ }
+ else
+ Status = STATUS_DEVICE_BUSY;
+ }
+
+ // give back if the user grants space
+ if (OutputLength >= sizeof(PCICC32_IRQ_CONTROL))
+ {
+ pIrqControlOut->dwInterface = wModuleNumber;
+ pIrqControlOut->wEnable = globalInterruptEnabledStatus(pciada);
+ }
+ // do here in between what has to be done end -------------
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_control_interrupts(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// implements a blocking io-call to get irq status.
+static BOOLEAN ioctl_irq_status_kernel(PVOID pvContext)
+{
+ IOCTL_IRQ_STATUS_CONTEXT *context = (IOCTL_IRQ_STATUS_CONTEXT *)pvContext;
+ KIRQL oldIrql;
+
+ if (context->pciada->dwIrqStatus)
+ {
+ // there is a pending interrupt - return immediately
+ KdPrint(("ioctl_irq_status(), direct return (0x%08x)\n", context->pciada->dwIrqStatus));
+
+ context->pIrqStatus->dwInterruptFlags = context->pciada->dwIrqStatus;
+ context->pciada->dwIrqStatus = 0; // release pending status
+
+ *context->irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+ }
+ else
+ {
+ // make the request blocking
+ IoAcquireCancelSpinLock(&oldIrql);
+
+ if ((*context->Irp)->Cancel) // cancel while doing
+ {
+ KdPrint(("ioctl_irq_status(), canceled return\n"));
+ *context->Status = STATUS_CANCELLED;
+ }
+ else
+ {
+ KdPrint(("ioctl_irq_status(), blocking\n"));
+
+ if (context->pciada->pBlockingIrp != (PIRP *)NULL)
+ {
+ // a Irp is still waiting
+ *context->Status = STATUS_DEVICE_BUSY;
+ }
+ else
+ {
+ context->file_obj->blockingIrp = *context->Irp;
+ context->pciada->pBlockingIrp = &context->file_obj->blockingIrp;
+
+ *context->Status = STATUS_PENDING;
+
+ // mark irp as pending and return
+ IoMarkIrpPending(*context->Irp);
+ IoSetCancelRoutine(*context->Irp, CancelRequest);
+ }
+ } // if (Irp->Cancel) ...
+ }
+
+ return TRUE;
+}
+
+static NTSTATUS ioctl_irq_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ USHORT wModuleNumber;
+ IOCTL_IRQ_STATUS_CONTEXT context;
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ wModuleNumber = context.file_obj->uwAssociatedCC32;
+ context.pciada = pDevExt->cc32[wModuleNumber];
+ context.pIrqStatus = (PCICC32_IRQ_RESPONSE *)pOutputBuffer;
+ context.Status = &Status;
+ context.irp_info = &irp_info;
+ context.Irp = &Irp;
+
+
+ KdPrint(("ioctl_irq_status(%d)\n", wModuleNumber));
+
+ // do here in between what has to be done -----------------
+ if (OutputLength < sizeof(PCICC32_IRQ_RESPONSE))
+ Status = STATUS_BUFFER_TOO_SMALL;
+ else
+ {
+ context.pIrqStatus->dwInterface = wModuleNumber;
+
+ KeSynchronizeExecution(context.pciada->InterruptObject, ioctl_irq_status_kernel, &context);
+ }
+ // do here in between what has to be done end -------------
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_irq_status(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+
+//------------------------------------------------------------------------
+// for test and debug purposes: direkt access to PLX LCR space
+static NTSTATUS ioctl_access_lcr(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber];
+ PCICC32_LCR_ACCESS *pAccessOut;
+ PCICC32_LCR_ACCESS *pAccessIn;
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_access_lcr(%d)\n", wModuleNumber));
+
+ pAccessOut = (PCICC32_LCR_ACCESS *)pOutputBuffer;
+ pAccessIn = (PCICC32_LCR_ACCESS *)pInputBuffer;
+
+ // do here in between what has to be done -----------------
+ if (OutputLength < sizeof(PCICC32_LCR_ACCESS))
+ Status = STATUS_BUFFER_TOO_SMALL;
+ else
+ {
+ *pAccessOut = *pAccessIn;
+ pAccessOut->dwInterface = wModuleNumber;
+
+ if (pAccessIn->wRegisterAddress <= 0x52)
+ {
+ // 1st part: long word accesses
+ if (pAccessIn->bBytesLane == LONG_ACCESS)
+ {
+ if (pAccessIn->wRegisterAddress & 0x0003)
+ Status = STATUS_INSTRUCTION_MISALIGNMENT;
+ else
+ {
+ ULONG *pdwVirtAddress;
+ ULONG dwDummy;
+
+ pdwVirtAddress = (ULONG *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress);
+
+ switch (pAccessIn->bAccessMode)
+ {
+ case LCR_WRITE:
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent);
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+ case LCR_OR:
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress);
+ dwDummy |= pAccessIn->dwContent;
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy);
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+ case LCR_AND:
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress);
+ dwDummy &= pAccessIn->dwContent;
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy);
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+ case LCR_WRITE_ONLY:
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent);
+ break;
+ case LCR_READ:
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+
+ default: Status = STATUS_ILLEGAL_INSTRUCTION;
+ }
+ }
+ }
+
+ // 2nd part: short word accesses
+ if (pAccessIn->bBytesLane == WORD_ACCESS)
+ {
+ if (pAccessIn->wRegisterAddress & 0x0001)
+ Status = STATUS_INSTRUCTION_MISALIGNMENT;
+ else
+ {
+ USHORT *pwVirtAddress;
+ USHORT wDummy;
+
+ pwVirtAddress = (USHORT *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress);
+
+ switch (pAccessIn->bAccessMode)
+ {
+ case LCR_WRITE:
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent);
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+ case LCR_OR:
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress);
+ wDummy |= (USHORT)pAccessIn->dwContent;
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy);
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+ case LCR_AND:
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress);
+ wDummy &= (USHORT)pAccessIn->dwContent;
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy);
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+ case LCR_WRITE_ONLY:
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent);
+ break;
+ case LCR_READ:
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+
+ default: Status = STATUS_ILLEGAL_INSTRUCTION;
+ break;
+ }
+ }
+ }
+
+ // 3rd part: check illegal byte lanes
+ if (!((pAccessIn->bBytesLane == LONG_ACCESS) || (pAccessIn->bBytesLane == WORD_ACCESS)))
+ Status = STATUS_ILLEGAL_INSTRUCTION;
+ }
+ else
+ Status = STATUS_ILLEGAL_INSTRUCTION;
+ }
+ // do here in between what has to be done end -------------
+
+ if (Status == STATUS_SUCCESS)
+ irp_info = sizeof(PCICC32_LCR_ACCESS);
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_access_lcr(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+
+//------------------------------------------------------------------------
+// the ultimate jumptable for ioctl
+//
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) =
+{
+ ioctl_dummy, // 0
+ ioctl_dummy, // 4
+ ioctl_get_status, // 8
+ ioctl_clear_status, // 0x0c
+ ioctl_access_para, // 0x10
+ ioctl_control_interrupts, // 0x14
+ ioctl_dummy, // 0x18
+ ioctl_irq_status, // 0x1c
+ ioctl_access_lcr // 0x20
+};
+
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer= ; TODO: set DriverVer in stampinf property pages
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NT$ARCH$
+
+[Standard.NT$ARCH$]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll
+
+[SourceDisksFiles]
+WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = $KMDFVERSION$
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.h (revision 176)
@@ -0,0 +1,34 @@
+#ifndef __PCICC32_V_H__
+#define __PCICC32_V_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32terface from ARW Elektronik, Germany ---------
+// header file belonging to pcicc32_v.c
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 02.07.2000
+//
+
+//-------------------------------------------------------------------------
+// DEFINES
+//
+#include <pcicc32_drv.h>
+
+//-------------------------------------------------------------------------
+// PROTOTYPES
+//
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj);
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj);
+void enableCC32(PCIADA *pciada);
+void disableCC32(PCIADA *pciada);
+
+#endif // __PCICC32_V_H__
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.h (revision 176)
@@ -0,0 +1,30 @@
+#ifndef __PCIVME_IO_H__
+#define __PCIVME_IO_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCIVME interface from ARW Elektronik, Germany ---------
+// the ioctl functions header file
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+// ntddk.h must included first!
+//
+// what who when
+// started AR 03.07.99
+//
+
+
+//------------------------------------------------------------------------
+// FUNCTIONS + EXTERNALS
+//
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP irp, PIO_STACK_LOCATION IrpStack);
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID Nothing);
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp);
+
+#endif // __PCIVME_IO_H__
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.h (revision 176)
@@ -0,0 +1,157 @@
+#ifndef __PCICC32_H__
+#define __PCICC32_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------
+// IO definitions and common data structures between application and driver
+//
+// (c) 2000,2001 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 16.04.2000
+// added irq functionality AR 24.02.2001
+// added until 'not Q' read/write mode AR 03.03.2001
+// added AUTOREAD AR 17.03.2001
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+// #include <devioctl.h> must be declared before inclusion when used for driver
+// #include <winioctl.h> must be declared before inclusion when used for applications
+
+//-------------------------------------------------------------------------
+// DEFINES
+//
+
+//----------------------------------------------------------------------------------------
+// macros for simple CAMAC NAF address calculation
+//
+#define NAF(n, a, f) ((ULONG)((n << 10) + (a << 6) + ((f & 0xf) << 2)))
+
+// to get a compatible view to WIN95 driver
+#define USER_CONTROL_CODE(x) (x)
+
+// VPCIC32D_ATTACH_CC32 and VPCIC32D_DETACH_CC32 are incompatible to WINNT - please use read and write commands
+
+// get the interrupt and timeout status from a CC32 interface (0x00220008)
+#define PCICC32_GET_STATUS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(2),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// clear the timeout status of a CC32 interface (0x0022000C)
+#define PCICC32_CLEAR_STATUS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(3),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// set the access parameter for this file (0x00220010)
+#define PCICC32_SET_ACCESS_PARA CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(4),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// allow or inhibit CC32 interrupt requests (0x00220014)
+#define PCICC32_CONTROL_INTERRUPTS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(5),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// requests thru blocking io the status of a pending or a rising interrupt (0x0022001C)
+#define PCICC32_INSTALL_IRQ_BLOCK CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(7),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// requests to access the PLX LCR for test and debug (0x00220020)
+#define PCICC32_ACCESS_LCR CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(8),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// set to check for control-code overflow
+#define PCICC32_LAST_CTL_CODE PCICC32_ACCESS_LCR
+
+// mask bits for interrupt status
+#define LAM_IRQ 0x00FFFFFF // there was a LAM responible for the timeout
+#define CONNECTION_TIMEOUT 0x08000000 // irq raised through a connection timout
+#define LAM_BUS_OR 0x10000000 // a LAM-BUS-OR is pending
+#define LAM_NOT_OR 0x20000000 // a LAM-NOT-OR is pending
+#define LAM_AND_OR 0x40000000 // a LAM-AND-OR is pending
+#define LAM_FF 0x80000000 // the LAM-Flip-Flop was set
+
+// switches for PCICC32_ACCESS_COMMAND.wAccessType
+#define WORD_ACCESS (UCHAR)2 // word
+#define LONG_ACCESS (UCHAR)4 // long
+
+// define bits for PCICC32_ACCESS_COMMAND.wBlockTransfer
+#define UNTIL_NOT_Q 0x0001 // read/write unttil 'not Q' switch
+#define AUTOREAD 0x0002 // PCIADA data pipelining access tuner switch
+
+// data lane size constants for PCICC32_ACCESS_LCR
+#define BYTE_ACCESS (UCHAR)1 // write byte wise (illegal)
+#define WORD_ACCESS (UCHAR)2 // word
+#define LONG_ACCESS (UCHAR)4 // long
+
+// PCICC32_ACCESS_LCR access constants
+#define LCR_READ 0 // read only access
+#define LCR_WRITE 1 // write and read back access
+#define LCR_OR 2 // read, bitwise 'or' content and read back access
+#define LCR_AND 3 // read, bitwise 'and' content and read back access
+#define LCR_WRITE_ONLY 4 // do not read back after write
+
+// this structure is output from VPCIC32_GET_STATUS call
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ USHORT bTimeout; // denotes a pending PCIADA timeout
+ USHORT bInterrupt; // denotes a pending LAM interrupt
+} PCICC32_STATUS;
+
+// this structure sets the access parameter for following reads or writes to this path
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ USHORT wAccessType; // set the current access type (WORD_ACCESS, LONG_ACCESS)
+ USHORT wBlockTransfer; // set AUTOREAD or UNTIL_NOT_Q
+} PCICC32_ACCESS_COMMAND;
+
+// this structure is used to control the interrupts
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ USHORT wEnable; // a 1 allows, a 0 inhibits interrupt requests
+} PCICC32_IRQ_CONTROL;
+
+// this structure returns from a blocking interrupt status call
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ ULONG dwInterruptFlags; // the return status at the return of the blocking call
+} PCICC32_IRQ_RESPONSE;
+
+// structure to access the local configuration space of PLX chip (test / debug only) with PCICC32_ACCESS_LCR
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ ULONG dwContent; // content to write, and, or
+ USHORT wRegisterAddress; // address offset of LCR register
+ UCHAR bAccessMode; // LCR_READ, write, or, and
+ UCHAR bBytesLane; // the data access width
+} PCICC32_LCR_ACCESS;
+
+#endif // __PCICC32_H__
Index: wiener_pcicc32/pcicc32/pcicc32/guid.h
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32/guid.h (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32/guid.h (revision 176)
@@ -0,0 +1,6 @@
+INTERFACENAME = { /* c4ad1dfa-3e35-4659-bf2b-c83cda6833e1 */
+ 0xc4ad1dfa,
+ 0x3e35,
+ 0x4659,
+ {0xbf, 0x2b, 0xc8, 0x3c, 0xda, 0x68, 0x33, 0xe1}
+ };
Index: wiener_pcicc32/pcicc32/pcicc32.sln
===================================================================
--- wiener_pcicc32/pcicc32/pcicc32.sln (nonexistent)
+++ wiener_pcicc32/pcicc32/pcicc32.sln (revision 176)
@@ -0,0 +1,105 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcicc32", "pcicc32\pcicc32.vcxproj", "{E355652A-FAA5-429D-8308-AFEA65C58B53}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcicc32 Package", "pcicc32 Package\pcicc32 Package.vcxproj", "{E52219C0-0B63-42B6-BBBD-5718FDE46FDB}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E355652A-FAA5-429D-8308-AFEA65C58B53} = {E355652A-FAA5-429D-8308-AFEA65C58B53}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Win7 Debug|Win32 = Win7 Debug|Win32
+ Win7 Debug|x64 = Win7 Debug|x64
+ Win7 Release|Win32 = Win7 Release|Win32
+ Win7 Release|x64 = Win7 Release|x64
+ Win8 Debug|Win32 = Win8 Debug|Win32
+ Win8 Debug|x64 = Win8 Debug|x64
+ Win8 Release|Win32 = Win8 Release|Win32
+ Win8 Release|x64 = Win8 Release|x64
+ Win8.1 Debug|Win32 = Win8.1 Debug|Win32
+ Win8.1 Debug|x64 = Win8.1 Debug|x64
+ Win8.1 Release|Win32 = Win8.1 Release|Win32
+ Win8.1 Release|x64 = Win8.1 Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|x64.Build.0 = Win7 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|Win32.Build.0 = Win7 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|x64.ActiveCfg = Win7 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|x64.Build.0 = Win7 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|x64.Deploy.0 = Win7 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|x64.Build.0 = Win8 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|Win32.Build.0 = Win8 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|x64.ActiveCfg = Win8 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|x64.Build.0 = Win8 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|x64.Deploy.0 = Win8 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|x64.Build.0 = Win7 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|Win32.Build.0 = Win7 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|x64.ActiveCfg = Win7 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|x64.Build.0 = Win7 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|x64.Deploy.0 = Win7 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|x64.Build.0 = Win8 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|Win32.Build.0 = Win8 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|x64.ActiveCfg = Win8 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|x64.Build.0 = Win8 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|x64.Deploy.0 = Win8 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win7Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win7Release/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.20.51
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.20.51
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.cat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.cat
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/WdfCoinstaller01011.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/WdfCoinstaller01011.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Release/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Release/pcicc32.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.17.794
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.17.794
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.cat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.cat
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/WdfCoinstaller01011.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/WdfCoinstaller01011.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8Release/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.18.506
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.18.506
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.cat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.cat
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/WdfCoinstaller01011.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/WdfCoinstaller01011.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Release/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Release/pcicc32.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win7Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win7Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.20.773
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.20.773
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.cat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.cat
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/WdfCoinstaller01011.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/WdfCoinstaller01011.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32Package.cer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32Package.cer
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.cer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32.cer
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.19.198
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.19.198
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.cat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.cat
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/WdfCoinstaller01011.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/WdfCoinstaller01011.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32Package.cer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32Package.cer
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.cer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.cer
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.21.688
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.inf (revision 176)
@@ -0,0 +1,91 @@
+;
+; pcicc32.inf
+;
+
+[Version]
+Signature="$WINDOWS NT$"
+Class=Sample ; TODO: edit Class
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid
+Provider=%ManufacturerName%
+CatalogFile=pcicc32.cat
+DriverVer=02/10/2014,7.32.21.688
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+; ================= Class section =====================
+
+[ClassInstall32]
+Addreg=SampleClassReg
+
+[SampleClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+pcicc32.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName%=Standard,NTx86
+
+[Standard.NTx86]
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id
+
+[pcicc32_Device.NT]
+CopyFiles=Drivers_Dir
+
+[Drivers_Dir]
+pcicc32.sys
+
+;-------------- Service installation
+[pcicc32_Device.NT.Services]
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst
+
+; -------------- pcicc32 driver install sections
+[pcicc32_Service_Inst]
+DisplayName = %pcicc32.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %12%\pcicc32.sys
+LoadOrderGroup = Extended Base
+
+;
+;--- pcicc32_Device Coinstaller installation ------
+;
+
+[DestinationDirs]
+pcicc32_Device_CoInstaller_CopyFiles = 11
+
+[pcicc32_Device.NT.CoInstallers]
+AddReg=pcicc32_Device_CoInstaller_AddReg
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles
+
+[pcicc32_Device_CoInstaller_AddReg]
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller"
+
+[pcicc32_Device_CoInstaller_CopyFiles]
+WdfCoInstaller01011.dll
+
+[SourceDisksFiles]
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames
+
+[pcicc32_Device.NT.Wdf]
+KmdfService = pcicc32, pcicc32_wdfsect
+[pcicc32_wdfsect]
+KmdfLibraryVersion = 1.11
+
+[Strings]
+SPSVCINST_ASSOCSERVICE= 0x00000002
+ManufacturerName="" ; TODO: add ManufacturerName
+ClassName="Samples" ; TODO: edit ClassName
+DiskName = "pcicc32 Installation Disk"
+pcicc32.DeviceDesc = "pcicc32 Device"
+pcicc32.SVCDESC = "pcicc32 Service"
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.cat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.cat
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/WdfCoinstaller01011.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/WdfCoinstaller01011.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32.sys
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32Package.cer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32Package.cer
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.cer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32.cer
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/SOURCE/pcicc32_i.c
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_i.c (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_i.c (revision 176)
@@ -0,0 +1,275 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------
+// all around irq handling
+//
+// (c) 1999-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 01.08.1999
+// first release 1.0 AR 17.10.1999
+// IoConnectInterrupt, share vector now true AR 04.03.2000
+// globalInterruptEnabledStatus() added AR 24.02.2001
+// added IRQ handling AR 24.02.2001
+// added WITH_IRQS switch to switsch off irqs AR 04.10.2001
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#define WITH_IRQS // comment out for interrupt handling excludes
+// ACHTUNG TEST
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <pcicc32_drv.h>
+#include <pcicc32_i.h>
+#include <pcicc32.h>
+#include <pcicc32_local.h>
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+#ifndef WORD
+#define WORD USHORT
+#endif
+
+//------------------------------------------------------------------------
+// GLOBALS
+//
+
+//------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+//------------------------------------------------------------------------
+// enable and disable of interrupts
+//
+void globalInterruptEnable(PCIADA *pciada)
+{
+#ifdef WITH_IRQS
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, ENABLE_PCIADA_IRQS);
+#endif
+}
+
+void globalInterruptDisable(PCIADA *pciada)
+{
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS);
+}
+
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada)
+{
+ unsigned short wStatus;
+
+ wStatus = READ_REGISTER_USHORT(pciada->pwIntCSR);
+
+ if ((wStatus & ENABLE_PCIADA_IRQS) == ENABLE_PCIADA_IRQS)
+ return 1;
+
+ return 0;
+}
+
+//------------------------------------------------------------------------
+// determine which interrupt and evaluates status if appropriate
+//
+static int evaluateIrqStatus(PCIADA *pciada, ULONG *dwIrqStatus)
+{
+ volatile USHORT wCntrl;
+ int result = 0;
+
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl);
+ if (wCntrl & 0x100) // pciada switched on ?
+ {
+ volatile USHORT wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR);
+
+ if (wIntCSR & 0x0040) // are the interrupts enabled?
+ {
+ if (wIntCSR & 0x20)
+ {
+ // it's the pci interrupt # 2
+ globalInterruptDisable(pciada); // disable following interrupts
+
+ // get current Cntrl - and clear interrupt
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, (USHORT)(wCntrl & ~0x0100)); // disable
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // enable again
+
+ *dwIrqStatus = CONNECTION_TIMEOUT;
+
+ result = 1;
+ }
+
+ if (wIntCSR & 0x04)
+ {
+ globalInterruptDisable(pciada); // disable following interrupts
+
+ *dwIrqStatus = READ_REGISTER_ULONG(_DWORD_NAF(pciada->pvVirtIfr, 28, 2, 0));
+
+ // clear pending interrupt - LAM-FF
+ WRITE_REGISTER_USHORT(_WORD_NAF(pciada->pvVirtIfr, 28, 0, 16), 0);
+
+ result = 1;
+ }
+ }
+ }
+
+ return result;
+}
+
+//------------------------------------------------------------------------
+// main interrupt handler function
+//
+static BOOLEAN irq_service(PKINTERRUPT Interrupt, PVOID ServiceContext)
+{
+ PCIADA *pciada = (PCIADA *)ServiceContext;
+
+#ifndef WITH_IRQS
+ return FALSE;
+#endif
+
+ if (!evaluateIrqStatus(pciada, &pciada->dwIrqStatus))
+ {
+ // KdPrint(("Not my irq.\n"));
+ return FALSE;
+ }
+
+ // fire custom deffered procedure call
+ KeInsertQueueDpc(&pciada->kDPCobj, (PVOID)pciada, (PVOID)&pciada->dwIrqStatus);
+
+ KdPrint(("irq_service(0x%08x)\n", pciada->dwIrqStatus));
+ return TRUE;
+}
+
+//------------------------------------------------------------------------
+// translate interrupt resources for PCIADAs to hardware independent ones
+//
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ NTSTATUS result = STATUS_SUCCESS;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32TranslateInterrupt()\n"));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ KdPrint(("In - Bus:%d, IrqLine:%d\n", pciada->Bus, pciada->Irql));
+
+ if (pciada->Irql)
+ {
+ pciada->Vector = HalGetInterruptVector(PCIBus, pciada->Bus,
+ pciada->Irql, pciada->Vector,
+ &pciada->Irql, &pciada->Affinity);
+
+ KdPrint(("Out - Irql:%d, Vector: %d, Affinity:%d\n", pciada->Irql, pciada->Vector, pciada->Affinity));
+
+ }
+ else
+ result = STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT;
+ }
+
+ return result;
+}
+
+//------------------------------------------------------------------------
+// connect service routines to all PCIADA interrupts
+//
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj)
+{
+#ifdef WITH_IRQS
+ int i;
+ NTSTATUS result = STATUS_SUCCESS;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32ConnectInterrupt()\n"));
+
+ // connect the interrupts to service routines
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ pciada->InterruptObject = NULL;
+
+ if (pciada->Vector)
+ result = IoConnectInterrupt(&pciada->InterruptObject,
+ irq_service,
+ (PVOID)pciada,
+ NULL,
+ pciada->Vector,
+ pciada->Irql,
+ pciada->Irql,
+ LevelSensitive,
+ TRUE,
+ pciada->Affinity,
+ FALSE);
+
+ KdPrint(("irq_service:%p, VirtVect:%d, Irql:%d, hIrql:%d, Aff:0x%08x, Status:0x%08x\n",
+ irq_service, pciada->Vector, pciada->Irql,
+ pciada->Irql, pciada->Affinity, result));
+
+ if (result != STATUS_SUCCESS)
+ break;
+ }
+
+ if (result == STATUS_SUCCESS)
+ {
+ KdPrint(("PCICC32ConnectInterrupt() OK.\n"));
+ }
+
+ return result;
+#else
+ return STATUS_SUCCESS;
+#endif
+}
+
+//------------------------------------------------------------------------
+// dis-connect service routines to all PCIADA interrupts
+//
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj)
+{
+#ifdef WITH_IRQS
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("DisConnectInterrupt()\n"));
+
+ // dis connect the interrupts to service routines
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ KdPrint(("IrqObj:0x%08x\n", pciada->InterruptObject));
+
+ if (pciada->InterruptObject)
+ {
+ IoDisconnectInterrupt(pciada->InterruptObject);
+ pciada->InterruptObject = 0;
+ }
+ }
+#endif
+
+ return STATUS_SUCCESS;
+}
+
+
Index: wiener_pcicc32/SOURCE/Release/pcicc32.inf
===================================================================
--- wiener_pcicc32/SOURCE/Release/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/SOURCE/Release/pcicc32.inf (revision 176)
@@ -0,0 +1,104 @@
+;===========================================================
+; File : pcicc32.inf
+;
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany
+;
+;===========================================================
+
+
+[Version]
+Signature = $CHICAGO$
+Provider = %ARW%
+Class = %PCICC32_class_name%
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1}
+DriverVer = 06/18/2002,2.3.0.4
+
+
+;-----------------------------------------------------------
+; Driver information
+;-----------------------------------------------------------
+
+[Manufacturer]
+%ARW_MFG% = ARW.Mfg
+
+[ARW.Mfg]
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02
+
+[ClassInstall32]
+AddReg=PCICC32_class_addreg
+
+[PCICC32_class_addreg]
+HKR,,,,%PCICC32_class_name%
+HKR,,Icon,0,0
+
+
+;-----------------------------------------------------------
+; General installation section
+;-----------------------------------------------------------
+
+[CopyFiles_9050]
+pcicc32.sys,,,2
+
+
+;-----------------------------------------------------------
+; Windows 2000 installation section
+;-----------------------------------------------------------
+
+[Install_PCICC32.NT]
+AddReg = AddRegistry_NT_9050
+CopyFiles = CopyFiles_9050
+
+
+[Install_PCICC32.NT.Services]
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050
+
+
+[AddRegistry_NT_9050]
+
+
+[Service_Inst_9050]
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE
+ServiceBinary = %12%\pcicc32.sys
+
+
+;-----------------------------------------------------------
+; Event log registry entries
+;-----------------------------------------------------------
+
+[EventLog_Inst_9050]
+AddReg = EventLog_AddReg_9050
+
+
+[EventLog_AddReg_9050]
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys"
+HKR,,TypesSupported,0x00010001,7
+
+
+;-----------------------------------------------------------
+; Source file information
+;-----------------------------------------------------------
+
+[SourceDisksNames.x86]
+1 = %InstallDisk%,"",1
+
+[SourceDisksFiles]
+pcicc32.sys = 1
+
+[DestinationDirs]
+DefaultDestDir = 12 ; drivers
+
+
+;-----------------------------------------------------------
+; String information
+;-----------------------------------------------------------
+
+[Strings]
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk"
+ARW_MFG = "ARW Elektronik, Germany"
+ARW = "ARW Elektronik, Germany"
+PCICC32_class_name = "ARW BUS Interfaces"
Index: wiener_pcicc32/SOURCE/Release/pcicc32.SYS
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/SOURCE/Release/pcicc32.SYS
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/SOURCE/pcicc32.dsw
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32.dsw (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32.dsw (revision 176)
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN!
+
+###############################################################################
+
+Project: "pcicc32"=.\pcicc32.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
Index: wiener_pcicc32/SOURCE/pcicc32_drv.c
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_drv.c (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_drv.c (revision 176)
@@ -0,0 +1,1062 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 (CAMAC) interface of ARW Elektronik, Germany --
+// the main body of the driver
+//
+// (c) 2000-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistribute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started out of pcivme sources AR 25.03.2000
+// added IRQ handling AR 24.02.2001
+// Added AUTOREAD functionality AR 17.03.2001
+// Added LCR_READ AR 31.03.2001
+// resource allocation registers idle entries too AR 25.11.2001
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+// totally rearanged resource alloc for WIN2000 AR 01.06.2002
+// version 2.14 eleminates PLXBUG in WIN2000 AR 05.06.2002
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002
+//
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+#ifndef WORD
+#define WORD USHORT
+#endif
+
+#define CTL_INDEX(x) ((x >> 2) & 0xFF) // get user control code as index
+#define RESOURCE_ENTRY_COUNT 6 // WIN2000 forces to claim all entries
+
+#define DOS_DEVICE_NAME L"\\DosDevices\\PCICC32:"
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+
+#include <ntddk.h>
+#include <devioctl.h>
+// #include <wdm.h>
+
+#include <pcicc32_drv.h>
+#include <pcicc32.h>
+#include <pcicc32_v.h>
+#include <pcicc32_i.h>
+#include <pcicc32_io.h>
+
+
+//------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct
+{
+ FILE_OBJ *file_obj;
+ PCIADA *pciada;
+ PVOID pOutputBuffer;
+ PVOID pInputBuffer;
+ ULONG Address;
+ DWORD Length;
+} SYNC_CONTEXT;
+
+//------------------------------------------------------------------------
+// GLOBALS
+//
+
+//------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+//------------------------------------------------------------------------
+// for debug only - print interrupt line
+//
+#if DBG
+void PrintInterruptLine(int Bus, int Slot)
+{
+ PCI_COMMON_CONFIG pci_config;
+
+ HalGetBusData( PCIConfiguration, // Bustype
+ Bus, // PCI-Busnumber
+ Slot, // Slotnumber
+ (PVOID) &(pci_config), // Pointer for the PCI-Information
+ sizeof(PCI_COMMON_CONFIG));
+
+ KdPrint(("Irql: %d\n", pci_config.u.type0.InterruptLine));
+}
+#endif
+
+//------------------------------------------------------------------------
+// get the cc32 number out of the filename
+//
+NTSTATUS InterpreteFileName(PCHAR name, int *nCC32)
+{
+ char *ptr = name;
+ char *n = "cc32_";
+ int h = -1; // high part
+ int l = -1; // low part
+
+ if (*ptr == '\\') ptr++; // jump over leading ...
+
+ while (*n) // compare the basename
+ if (*n == tolower(*ptr))
+ {
+ n++;
+ ptr++;
+ }
+ else
+ return STATUS_NO_SUCH_FILE;
+
+ h = *ptr - '0'; // get the number
+ ptr++;
+ l = *ptr - '0';
+
+ if (*ptr == 0) // still over the end ??
+ {
+ l = h;
+ h = 0;
+ }
+ else
+ ptr++;
+
+ if ((h < 0) || (l < 0) || (*ptr != 0)) // anything wrong ??
+ return STATUS_NO_SUCH_FILE;
+
+ *nCC32 = (h * 10) + l; // calculate number
+
+ if (*nCC32 >= PCICC32_MAX_CC32) // out of range ??
+ return STATUS_NO_SUCH_FILE;
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// the ultimate driver unload
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj)
+{
+ int i;
+ UNICODE_STRING symbol_name;
+ DEVICE_EXT *ext = (DEVICE_EXT*)(driverObj->DeviceObject->DeviceExtension);
+ int nPCIADAs = ext->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32Unload()\n"));
+
+ switch (ext->nInitState)
+ {
+ case 8:
+ case 7:
+ case 6:
+ // stop interrupts and shut off
+ PCICC32DeInitPCIADAs(driverObj->DeviceObject);
+ PCICC32DisConnectInterrupt(driverObj->DeviceObject);
+ case 5:
+ // KeInitializeDpc has no counterpart
+ case 4:
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &ext->pciada[i];
+ if (pciada->pvVirtLcr != NULL)
+ MmUnmapIoSpace(pciada->pvVirtLcr, LCR_SPACE);
+ if (pciada->pvVirtIfr != NULL)
+ MmUnmapIoSpace(pciada->pvVirtIfr, IFR_SPACE);
+ }
+ case 3:
+ // HalGetInterruptVector has no counterpart
+ case 2:
+ // HalTranslateBusAddress has no counterpart
+ case 1:
+ PCICC32FreeResources(driverObj->DeviceObject);
+ default:
+ case 0:
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME);
+
+ // delete the symbolicLink in the registry
+ IoDeleteSymbolicLink( &symbol_name);
+
+ // delete the deviceObject
+ IoDeleteDevice(driverObj->DeviceObject);
+ }
+
+ KdPrint(("PCICC32Unload() OK.\n"));
+}
+
+
+//------------------------------------------------------------------------
+// called at CreateFile()
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP Irp)
+{
+ NTSTATUS result = STATUS_SUCCESS;
+ ANSI_STRING name;
+ int nCC32;
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension);
+ PCIADA *pciada;
+ FILE_OBJ *file_obj;
+
+ name.Buffer = NULL;
+ name.MaximumLength = 80;
+
+ result = RtlUnicodeStringToAnsiString(&name, &(Irp->Tail.Overlay.OriginalFileObject->FileName), TRUE);
+ if (result != STATUS_SUCCESS) goto fin;
+
+ KdPrint(("PCICC32Open(%s)\n", name.Buffer));
+
+ result = InterpreteFileName(name.Buffer, &nCC32);
+ if (result != STATUS_SUCCESS) goto fin;
+
+ KdPrint(("PCICC32Open(%d)\n", nCC32));
+ RtlFreeAnsiString(&name);
+
+ file_obj = (FILE_OBJ *)ExAllocatePool(NonPagedPool, sizeof(FILE_OBJ));
+ if (file_obj == (FILE_OBJ *)NULL)
+ {
+ result = STATUS_NO_MEMORY;
+ goto fin;
+ }
+
+ file_obj->uwAssociatedCC32 = nCC32;
+
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (PVOID)file_obj;
+
+ result = PCICC32ScanCC32(deviceObj);
+ if (result != STATUS_SUCCESS) goto fin;
+
+ for (i = 0; i < pDevExt->nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ if (pciada->wModuleNumber == nCC32)
+ {
+ pDevExt->cc32[nCC32] = pciada; // create association
+ pciada->dwLinkCount++;
+
+ enableCC32(pciada);
+ break;
+ }
+ }
+
+ if (i >= pDevExt->nPCIADAs)
+ {
+ result = STATUS_NO_SUCH_FILE;
+ goto fin;
+ }
+
+ fin:
+ Irp->IoStatus.Status = result;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+
+ return result;
+}
+
+//------------------------------------------------------------------------
+// called at close()
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP Irp)
+{
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension);
+ FILE_OBJ *file_obj = (FILE_OBJ *)NULL;
+ PCIADA *pciada;
+
+ file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+
+ KdPrint(("PCICC32Close(%d)\n", file_obj->uwAssociatedCC32));
+
+ if (file_obj != (FILE_OBJ *)NULL)
+ {
+ pciada = pDevExt->cc32[file_obj->uwAssociatedCC32];
+ pciada->dwLinkCount--;
+
+ // disable interrupts when closing
+ if (pciada->pIrqControlFile == file_obj)
+ {
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ globalInterruptDisable(pciada);
+ }
+
+ // cancel any blocking Irp origin from this file
+ if (file_obj->blockingIrp != (PIRP)NULL)
+ file_obj->blockingIrp = (PIRP)NULL;
+
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp)
+ pciada->pBlockingIrp = (PIRP *)NULL;
+
+ if (!pciada->dwLinkCount)
+ disableCC32(pciada);
+
+ ExFreePool(file_obj);
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (FILE_OBJ *)NULL;
+ }
+
+ KdPrint(("PCICC32Close OK\n"));
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// called at
+NTSTATUS PCICC32Shutdown(PDEVICE_OBJECT deviceObj, PIRP irp)
+{
+ KdPrint(("PCICC32Shutdown()\n"));
+
+ // deinit interfaces and interrupts
+ PCICC32DeInitPCIADAs(deviceObj);
+
+ KdPrint(("PCICC32Shutdown() OK\n"));
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// called at ioctl()
+NTSTATUS PCICC32DeviceControl(PDEVICE_OBJECT deviceObj, PIRP Irp)
+{
+ PIO_STACK_LOCATION IrpStack;
+ int nIndex;
+
+ IrpStack = IoGetCurrentIrpStackLocation(Irp);
+ nIndex = CTL_INDEX(IrpStack->Parameters.DeviceIoControl.IoControlCode);
+
+ KdPrint(("PCICC32DeviceControl(%d / 0x%08x)\n", nIndex, Irp->Tail.Overlay.OriginalFileObject));
+
+ if (nIndex > CTL_INDEX(PCICC32_LAST_CTL_CODE))
+ {
+ KdPrint(("LastIndex(%d)\n", CTL_INDEX(PCICC32_LAST_CTL_CODE)));
+ Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp,IO_NO_INCREMENT);
+
+ KdPrint(("PCICC32DeviceControl() FAIL.\n"));
+
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ return ioctl[nIndex](deviceObj, Irp, IrpStack);
+}
+
+
+//------------------------------------------------------------------------
+// called at read()
+static BOOLEAN PCICC32Read_kernel(PVOID pvContext)
+{
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext;
+ register ULONG i = 0;
+ USHORT wCntrl;
+
+ wCntrl = READ_REGISTER_USHORT(context->pciada->pwCntrl);
+ if (context->file_obj->wBlockTransfer & AUTOREAD)
+ {
+ wCntrl &= ~0x0004; // enable autoread - set bit to 0
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl);
+ }
+
+ // do the read ---
+ if (context->file_obj->wBlockTransfer & UNTIL_NOT_Q)
+ {
+ // read first time to get Q information
+ register ULONG tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address);
+
+ if (context->file_obj->wAccessType == WORD_ACCESS)
+ {
+ PUSHORT pwBuffer = (PUSHORT)context->pOutputBuffer;
+ PUSHORT pwBufEnd = (PUSHORT)((PUCHAR)context->pOutputBuffer + context->Length);
+
+ while ((tempBuffer & 0x80000000) && (pwBuffer < pwBufEnd))
+ {
+ *pwBuffer++ = (USHORT)tempBuffer;
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q
+ i++;
+ }
+ }
+ else
+ {
+ // LONG_ACCESS
+ PULONG pdwBuffer = (PULONG)context->pOutputBuffer;
+ PULONG pdwBufEnd = (PULONG)((PUCHAR)context->pOutputBuffer + context->Length);
+
+ while ((tempBuffer & 0x80000000) && (pdwBuffer < pdwBufEnd))
+ {
+ *pdwBuffer++ = tempBuffer;
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q
+ i++;
+ }
+ }
+
+ i *= context->file_obj->wAccessType;
+
+ KdPrint(("UNTIL_NOT_Q, 0x%08x bytes read\n", i));
+ }
+ else // no UNTIL_NOT_Q
+ {
+ while (i < context->Length)
+ {
+ context->file_obj->fRead((void *)((PUCHAR)context->pOutputBuffer + i), (void *)context->Address); // read the same address multiple times
+ i += context->file_obj->wAccessType;
+ }
+ }
+
+ // disable autoread unconditionally - set bit to 1
+ wCntrl |= 0x0004;
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl);
+
+ context->Length = i;
+
+ return TRUE;
+}
+
+NTSTATUS PCICC32Read(PDEVICE_OBJECT device_Obj, PIRP Irp)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ SYNC_CONTEXT context;
+
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32];
+ context.pOutputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart;
+ context.Length = 0;
+
+ KdPrint(("PCICC32Read(%d)\n", context.file_obj->uwAssociatedCC32));
+
+ if (context.Address > IFR_SPACE)
+ Status = STATUS_ACCESS_VIOLATION;
+ else
+ {
+ // do here in between what has to be done -----------------
+ context.Length = IrpStack->Parameters.Read.Length;
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length));
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address;
+
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Read_kernel, &context);
+ // do here in between what has to be done end -------------
+ }
+
+ Irp->IoStatus.Status = Status;
+ Irp->IoStatus.Information = context.Length;
+ IoCompleteRequest(Irp,IO_NO_INCREMENT);
+
+ KdPrint(("PCICC32Read(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+
+//------------------------------------------------------------------------
+// called at write()
+static BOOLEAN PCICC32Write_kernel(PVOID pvContext)
+{
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext;
+ register ULONG i = 0;
+
+ // do the write ---
+ while (i < context->Length)
+ {
+ context->file_obj->fWrite((void *)context->Address, (void *)((PUCHAR)context->pInputBuffer + i)); // write the same address multiple times
+ i += context->file_obj->wAccessType;
+ }
+
+ context->Length = i;
+
+ return TRUE;
+}
+
+NTSTATUS PCICC32Write(PDEVICE_OBJECT device_Obj, PIRP Irp)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ SYNC_CONTEXT context;
+
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32];
+ context.pInputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart;
+ context.Length = 0;
+
+ KdPrint(("PCICC32Write(%d)\n", context.file_obj->uwAssociatedCC32));
+
+ if (context.Address > IFR_SPACE)
+ Status = STATUS_ACCESS_VIOLATION;
+ else
+ {
+ register ULONG i = 0;
+
+ // do here in between what has to be done -----------------
+ context.Length = IrpStack->Parameters.Read.Length;
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length));
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address;
+
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Write_kernel, &context);
+ // do here in between what has to be done end -------------
+ }
+
+
+ Irp->IoStatus.Status = Status;
+ Irp->IoStatus.Information = context.Length;
+ IoCompleteRequest(Irp,IO_NO_INCREMENT);
+
+ KdPrint(("PCICC32Write(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// search for pciada's
+//
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj)
+{
+ PCI_SLOT_NUMBER SlotNumber;
+ PCI_COMMON_CONFIG pci_config;
+ PCIADA *pciada;
+ ULONG length;
+ int *found;
+ int i,j,k;
+
+ KdPrint(("SearchDevices()\n"));
+
+ // prepare structures ----------------------------------------
+ found = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs;
+ *found = 0;
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++)
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i];
+
+ pciada->Bus = -1;
+ pciada->Slot.u.AsULONG = 0xFFFFFFFF;
+ }
+
+ // search for pciada's ---------------------------------------
+ SlotNumber.u.bits.Reserved = 0;
+
+ for (j = 0; j < PCI_MAX_BUSES; j++)
+ {
+ for (i = 0; i < PCI_MAX_DEVICES; i++)
+ {
+ SlotNumber.u.bits.DeviceNumber = i;
+ for (k = 0; k < PCI_MAX_FUNCTION; k++)
+ {
+ SlotNumber.u.bits.FunctionNumber = k;
+ length = HalGetBusData( PCIConfiguration, // Bustype
+ j, // PCI-Busnumber
+ SlotNumber.u.AsULONG, // Slotnumber
+ (PVOID) &(pci_config), // Pointer for the PCI-Information
+ sizeof(PCI_COMMON_CONFIG) );
+
+ if ((pci_config.VendorID == PCICC32_VENDOR_ID) &&
+ (pci_config.DeviceID == PCICC32_DEVICE_ID) &&
+ (pci_config.u.type0.SubSystemID == PCICC32_SUBSYS_ID) &&
+ (pci_config.u.type0.SubVendorID == PCICC32_SUBVEN_ID) &&
+ (pci_config.u.type0.BaseAddresses[3]))
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[*found];
+
+ memcpy(&pciada->PCIDevice, &pci_config, sizeof(pci_config));
+ pciada->Slot = SlotNumber;
+ pciada->Bus = j;
+
+ KdPrint(("PCIADA found @ Bus/Slot %d/%d.\n", pciada->Bus, pciada->Slot.u.AsULONG));
+
+ (*found)++;
+ if (*found >= PCICC32_MAX_PCIADA) return STATUS_SUCCESS;
+ }
+ }
+ }
+ }
+
+ return STATUS_SUCCESS;
+}
+
+//---------------------------------------------------------------
+// function to call for bug fix of PLX9050 build in bug
+//
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT device_Obj)
+{
+ DEVICE_EXT *DeviceExtension = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int i;
+ ULONG dwData;
+ PCIADA *pciada;
+
+ KdPrint(("PLX9050BugFix()\n"));
+
+ for (i = 0; i < DeviceExtension->nPCIADAs; i++)
+ {
+ pciada = &DeviceExtension->pciada[i];
+
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[0]) & 0x80)
+ {
+ KdPrint(("Changing address 0:0x%p with 4:0x%p\n",
+ pciada->PCIDevice.u.type0.BaseAddresses[0],
+ pciada->PCIDevice.u.type0.BaseAddresses[4]));
+
+ pciada->PCIDevice.u.type0.BaseAddresses[0] = // exchange
+ pciada->PCIDevice.u.type0.BaseAddresses[4];
+ pciada->PCIDevice.u.type0.BaseAddresses[4] = dwData;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[0],
+ 0x10, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[4],
+ 0x20, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[1]) & 0x80)
+ {
+ KdPrint(("Changing address 1:0x%p with 5:0x%p\n",
+ pciada->PCIDevice.u.type0.BaseAddresses[1],
+ pciada->PCIDevice.u.type0.BaseAddresses[5]));
+
+ pciada->PCIDevice.u.type0.BaseAddresses[1] = // exchange
+ pciada->PCIDevice.u.type0.BaseAddresses[5];
+ pciada->PCIDevice.u.type0.BaseAddresses[5] = dwData;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[1],
+ 0x14, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus,
+ pciada->Slot.u.AsULONG,
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[5],
+ 0x24, 4) != 4)
+ return STATUS_UNSUCCESSFUL;
+ }
+ }
+
+ return STATUS_SUCCESS;
+}
+
+
+//------------------------------------------------------------------------
+// reserve resources for PCIADAs
+//
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList)
+{
+ PCM_RESOURCE_LIST pResourceList;
+ PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor;
+ PCM_PARTIAL_RESOURCE_LIST pPartialList;
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR pPartialDescriptor;
+ int i;
+ int bug = 0;
+
+ KdPrint(("PCICC32ExtractResources()\n"));
+
+ pResourceList = pList;
+ pFullDescriptor = pResourceList->List;
+ pPartialList = &pFullDescriptor->PartialResourceList;
+
+ for (i=0; i<(int)pPartialList->Count; i++)
+ {
+ pPartialDescriptor = &pPartialList->PartialDescriptors[i];
+ switch (pPartialDescriptor->Type)
+ {
+ case CmResourceTypeInterrupt:
+ pciada->Irql = (KIRQL)pPartialDescriptor->u.Interrupt.Level;
+ pciada->Vector = pPartialDescriptor->u.Interrupt.Vector;
+ pciada->Affinity = pPartialDescriptor->u.Interrupt.Affinity;
+
+ KdPrint(("Irq : Irql: %d, Vector: %d, Affinity: %d\n",
+ pciada->Irql, pciada->Vector, pciada->Affinity));
+ break;
+ case CmResourceTypeDma:
+ KdPrint(("Dma : \n"));
+ break;
+ case CmResourceTypePort:
+
+ KdPrint(("Port : 0x%p\n", pPartialDescriptor->u.Port.Start));
+ break;
+ case CmResourceTypeMemory:
+ // special handling of PLXBUG here because of WIN2000
+ // WIN2000 doesn't recognize late address changes
+ if (!bug)
+ {
+ if (i == 0)
+ {
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start;
+
+ if (pciada->pvPhysLcr.LowPart & 0x80)
+ bug = 1;
+ }
+ }
+ else
+ {
+ if (i == 3)
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start;
+ }
+
+ if (i == 2)
+ pciada->pvPhysIfr = pPartialDescriptor->u.Memory.Start;
+
+ KdPrint(("Memory : 0x%p\n", (PUCHAR)pPartialDescriptor->u.Memory.Start.LowPart));
+ break;
+ }
+ }
+
+ if (pciada->Irql == 0)
+ return STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT;
+
+ KdPrint(("PCICC32ExtractResources() OK.\n"));
+
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj)
+{
+ PCM_RESOURCE_LIST pList = NULL;
+ NTSTATUS result = STATUS_SUCCESS;
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_Obj->DeviceExtension);
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+ UNICODE_STRING DriverClassName;
+
+ KdPrint(("PCICC32ReserveResources()\n"));
+
+ // prepare resource claiming
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32");
+
+ // cycle through all busses and slots assigned to PCIADAs
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ result = HalAssignSlotResources(NULL, &DriverClassName, device_Obj->DriverObject, device_Obj,
+ PCIBus, pciada->Bus, pciada->Slot.u.AsULONG, &pList);
+
+ if (result != STATUS_SUCCESS)
+ break;
+
+ result = PCICC32ExtractResources(pciada, pList);
+
+ if (result != STATUS_SUCCESS)
+ break;
+ }
+
+ // its my part to free allocated resources
+ ExFreePool(pList);
+
+ KdPrint(("PCICC32ReserveResources(0x%08x)\n", result));
+
+ return result;
+};
+
+//------------------------------------------------------------------------
+// free resources from PCIADAs
+//
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj)
+{
+ CM_RESOURCE_LIST ResList;
+ BOOLEAN bConflict;
+ UNICODE_STRING DriverClassName;
+
+ KdPrint(("PCICC32FreeResources()\n"));
+
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32");
+
+ ResList.Count = 0;
+
+ IoReportResourceUsage(&DriverClassName, device_Obj->DriverObject,
+ &ResList, sizeof(ResList), device_Obj,
+ NULL, 0, FALSE, &bConflict);
+ return STATUS_SUCCESS;
+};
+
+
+//------------------------------------------------------------------------
+// translate memory resources to neutral for PCIADAs
+//
+NTSTATUS PCICC32TranslateBusAddresses(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ NTSTATUS result = STATUS_SUCCESS;
+ int nPCIADAs = ((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs;
+ ULONG memType0, memType2;
+ PCIADA *pciada;
+
+ KdPrint(("TranslateBusAddresseses()\n"));
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i];
+
+ memType0 = memType2 = 0;
+
+ if (!(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysLcr, &memType0,
+ &pciada->pvPhysLcr)) ||
+ !(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysIfr, &memType2,
+ &pciada->pvPhysIfr)))
+ {
+ result = STATUS_UNSUCCESSFUL;
+ break;
+ }
+
+ if ((memType0) || (memType2))
+ {
+ result = STATUS_UNSUCCESSFUL;
+ break;
+ }
+ }
+ return result;
+}
+
+//------------------------------------------------------------------------
+// map address spaces to virtual addresses
+//
+NTSTATUS PCICC32MapIOspaces(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32MapIOspaces()\n"));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ if ((pciada->pvVirtLcr = MmMapIoSpace(pciada->pvPhysLcr, LCR_SPACE, FALSE)) == NULL)
+ return STATUS_UNSUCCESSFUL;
+ if ((pciada->pvVirtIfr = MmMapIoSpace(pciada->pvPhysIfr, IFR_SPACE, FALSE)) == NULL)
+ return STATUS_UNSUCCESSFUL;
+
+ KdPrint(("PCIADA %d: LCR 0x%08x IFR 0x%08x\n", i, pciada->pvVirtLcr, pciada->pvVirtIfr));
+
+ pciada->pwIntCSR = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x4C);
+ pciada->pwCntrl = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x50);
+ }
+
+ return STATUS_SUCCESS;
+}
+
+
+//------------------------------------------------------------------------
+// initializes and registers a DPC routine for each pciada
+//
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object)
+{
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_object->DeviceExtension);
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("InitializeCustomDPCObject()\n"));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+ KeInitializeDpc(&pciada->kDPCobj, fMyDefferedRoutine, (PVOID)device_object);
+ }
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// init structures a.s.o.
+//
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj)
+{
+ int i;
+ PCIADA *pciada;
+
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++)
+ {
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i];
+
+ pciada->pvPhysLcr.QuadPart = pciada->pvPhysIfr.QuadPart = 0;
+ pciada->pvVirtLcr = pciada->pvVirtIfr = NULL;
+
+ pciada->bConnected = FALSE; // connection still not verified
+ pciada->wModuleNumber = 0xFFFF;
+ pciada->wFPGAVersion = 0xFFFF;
+ pciada->wModuleType = 1; // always CC32
+
+ pciada->InterruptObject = NULL;
+ pciada->Irql = 0;
+ pciada->Vector = 0;
+ pciada->Affinity = 0;
+
+ pciada->dwLinkCount = 0;
+
+ pciada->dwIrqStatus = 0;
+ pciada->pBlockingIrp = (PIRP *)NULL;
+
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ }
+
+ // no CC32 associated to any PCIADA
+ for (i = 0; i < PCICC32_MAX_CC32; i++)
+ ((DEVICE_EXT*)(device_Obj->DeviceExtension))->cc32[i] = NULL;
+}
+
+//------------------------------------------------------------------------
+// the ultimate starting point of a driver
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath)
+{
+ int i;
+ PDEVICE_OBJECT device_object; // pointer to the device object
+ UNICODE_STRING device_name;
+ UNICODE_STRING symbol_name;
+ NTSTATUS result = STATUS_SUCCESS;
+ PCIADA *pciada; // pointer to a PCIADA
+ int nPCIADAs; // count of PCIADAs
+ DEVICE_EXT *DeviceExtension = NULL;
+
+ KdPrint(("DriverEntry() ----%d.%d-------------------------\n", (DRIVER_VERSION >> 16) & 0xFFFF, DRIVER_VERSION & 0xFFFF));
+
+ driverObj->DriverUnload = PCICC32Unload;
+ driverObj->MajorFunction[IRP_MJ_CREATE] = PCICC32Open;
+ driverObj->MajorFunction[IRP_MJ_CLOSE] = PCICC32Close;
+ driverObj->MajorFunction[IRP_MJ_READ] = PCICC32Read;
+ driverObj->MajorFunction[IRP_MJ_WRITE] = PCICC32Write;
+ driverObj->MajorFunction[IRP_MJ_DEVICE_CONTROL] = PCICC32DeviceControl;
+ driverObj->MajorFunction[IRP_MJ_SHUTDOWN] = PCICC32Shutdown;
+
+ RtlInitUnicodeString(&device_name, L"\\Device\\CC32");
+
+ /* DeviceObject durch IO-Manager erzeugen */
+ result = IoCreateDevice( driverObj, // DriverObject received by the DriverEntry Call
+ sizeof(DEVICE_EXT), // required Memory for the DeviceExtension
+ &device_name, // Name of the device in the device-Directory
+ FILE_DEVICE_UNKNOWN, // Device-ID
+ 0, // Device-Characteristics normal 0
+ FALSE, // TRUE : one Thread can open the driver
+ &device_object); // DeviceObject returned from the IO-Manager
+
+ // defines how the data are handled between user / kernel Adress-Space
+ device_object->Flags |= DO_DIRECT_IO;
+
+ // anounce driver as symbolic device ---------------------------------
+ if (result == STATUS_SUCCESS)
+ {
+ /* now the symbolic Link is created. If there is no S.L. a program cannot connect to the driver */
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME);
+ result = IoCreateSymbolicLink(&symbol_name,&device_name);
+ if (result != STATUS_SUCCESS)
+ {
+ IoDeleteDevice(device_object);
+ return result;
+ }
+ }
+ else
+ return result;
+
+ DeviceExtension = (DEVICE_EXT*)device_object->DeviceExtension;
+
+ DeviceExtension->actualIrp = NULL;
+ DeviceExtension->nInitState = 0;
+
+ // init pciada structures ------------------------------------
+ PCICC32SoftInit(device_object);
+
+ // search for PCIADAs ----------------------------------------
+ result = SearchDevices(device_object);
+ nPCIADAs = DeviceExtension->nPCIADAs;
+
+ if ((result != STATUS_SUCCESS) || !(nPCIADAs))
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+
+ // request exclusive ownership of .. ---------------------------------
+ if ((result = PCICC32ReserveResources(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return result;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // fix PLX9050 Bug -------------------------------------------
+ if ((result = PLX9050BugFix(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return result;
+ }
+
+ // translate BUS relative addresses ----------------------------------
+ if ((result = PCICC32TranslateBusAddresses(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // translate Interrupt Resources used --------------------------------
+ if ((result = PCICC32TranslateInterrupt(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // map address spaces to virtual addresses ---------------------------
+ if ((result = PCICC32MapIOspaces(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // initialze my custom DPC objects -----------------------------------
+ if ((result = InitializeCustomDPCObjects(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return result;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // disable all interrupts --------------------------------------------
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &DeviceExtension->pciada[i];
+
+ globalInterruptDisable(pciada);
+ }
+
+ // connect interrupts to service routines ----------------------------
+ if ((result = PCICC32ConnectInterrupt(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+ else
+ DeviceExtension->nInitState++;
+
+ // scan all connected CC32 for info and later use -------------------
+ if ((result = PCICC32ScanCC32(device_object)) != STATUS_SUCCESS)
+ {
+ PCICC32Unload(driverObj);
+ return STATUS_DEVICE_DOES_NOT_EXIST;
+ }
+
+ device_object->Flags &= ~DO_DEVICE_INITIALIZING;
+
+ KdPrint(("DriverEntry() OK.\n"));
+
+ return result;
+}
+
Index: wiener_pcicc32/SOURCE/SOURCES
===================================================================
--- wiener_pcicc32/SOURCE/SOURCES (nonexistent)
+++ wiener_pcicc32/SOURCE/SOURCES (revision 176)
@@ -0,0 +1,14 @@
+TARGETNAME=pcicc32
+
+#VisualStudio 5
+#TARGETPATH=d:\Programme\DevStudio\MyProjects\pcicc32
+#VisualStudio 6
+#TARGETPATH=d:\Programme\VisualStudio\MyProjects\pcicc32
+#new installation
+TARGETPATH=d:\work\MyProjects\pcicc32
+
+TARGETTYPE=DRIVER
+TARGETLIBS=
+
+INCLUDES=$(BASEDIR)\inc
+SOURCES=pcicc32_drv.c pcicc32_v.c pcicc32_io.c pcicc32_i.c
Index: wiener_pcicc32/SOURCE/pcicc32_i.h
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_i.h (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_i.h (revision 176)
@@ -0,0 +1,55 @@
+#ifndef __PCICC33_I_H__
+#define __PCICC32_I_H__
+
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany ---------
+// the header file to pcicc32_i.c - all around interrupt handling
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 15.06.1999
+// added globalInterruptEnabledStatus() AR 24.02.2001
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <pcicc32_drv.h>
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+
+//------------------------------------------------------------------------
+// PROTOTYPES
+//
+void globalInterruptEnable(PCIADA *pciada);
+void globalInterruptDisable(PCIADA *pciada);
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada);
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj);
+
+
+/* release all this procedures after init of the driver */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (init, PCICC32ConnectInterrupt)
+#pragma alloc_text (init, PCICC32TranslateInterrupt)
+#endif
+
+/* put all this procedures in the paged memory-pool, all called at passiv Level */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (page, PCICC32DisConnectInterrupt)
+#endif
+
+#endif //__PCICC32_I_H__
Index: wiener_pcicc32/SOURCE/pcicc32_local.h
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_local.h (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_local.h (revision 176)
@@ -0,0 +1,36 @@
+#ifndef _PCICC32_LOCAL_H__
+#define _PCICC32_LOCAL_H__
+//-----------------------------------------------------------------------
+// Address definitions and constants for PCIADA of PCICC32 interface
+// designed by A.Rausch
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// first parts derived from PCIVME AR 10.03.2000
+// added initialisation for AUTOREAD AR 17.03.2001
+//
+
+/*-----------------------------------------------------------------------*/
+/* all addresses relative to PCI-Window */
+
+/*--------- some masks in CSR -------------------------------------------*/
+#define MASK_MODNR (WORD)0x00F0 /* the mask to get the module No */
+#define MASK_FPGA (WORD)0x0F00 /* the mask to get the FPGA rev. */
+#define MASK_MODTYPE (WORD)0xF000 /* the mask to get type of module*/
+
+/*---------- release und inhibit into 0x50 of PLX ------------------------*/
+#define RELEASE_CC32 (WORD)0x4186 /* write this to release access ..*/
+#define INHIBIT_CC32 (WORD)0x4086 /* write this to inhibit access ..*/
+#define ENABLE_PCIADA_IRQS (WORD)0x0049 /* enable PCIADA IRQs */
+#define DISABLE_PCIADA_IRQS (WORD)0x0009 /* disable PCIADA IRQs */
+
+#endif // _PCICC32_LOCAL_H__
Index: wiener_pcicc32/SOURCE/Debug/pcicc32.inf
===================================================================
--- wiener_pcicc32/SOURCE/Debug/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/SOURCE/Debug/pcicc32.inf (revision 176)
@@ -0,0 +1,104 @@
+;===========================================================
+; File : pcicc32.inf
+;
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany
+;
+;===========================================================
+
+
+[Version]
+Signature = $CHICAGO$
+Provider = %ARW%
+Class = %PCICC32_class_name%
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1}
+DriverVer = 06/18/2002,2.3.0.4
+
+
+;-----------------------------------------------------------
+; Driver information
+;-----------------------------------------------------------
+
+[Manufacturer]
+%ARW_MFG% = ARW.Mfg
+
+[ARW.Mfg]
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02
+
+[ClassInstall32]
+AddReg=PCICC32_class_addreg
+
+[PCICC32_class_addreg]
+HKR,,,,%PCICC32_class_name%
+HKR,,Icon,0,0
+
+
+;-----------------------------------------------------------
+; General installation section
+;-----------------------------------------------------------
+
+[CopyFiles_9050]
+pcicc32.sys,,,2
+
+
+;-----------------------------------------------------------
+; Windows 2000 installation section
+;-----------------------------------------------------------
+
+[Install_PCICC32.NT]
+AddReg = AddRegistry_NT_9050
+CopyFiles = CopyFiles_9050
+
+
+[Install_PCICC32.NT.Services]
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050
+
+
+[AddRegistry_NT_9050]
+
+
+[Service_Inst_9050]
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE
+ServiceBinary = %12%\pcicc32.sys
+
+
+;-----------------------------------------------------------
+; Event log registry entries
+;-----------------------------------------------------------
+
+[EventLog_Inst_9050]
+AddReg = EventLog_AddReg_9050
+
+
+[EventLog_AddReg_9050]
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys"
+HKR,,TypesSupported,0x00010001,7
+
+
+;-----------------------------------------------------------
+; Source file information
+;-----------------------------------------------------------
+
+[SourceDisksNames.x86]
+1 = %InstallDisk%,"",1
+
+[SourceDisksFiles]
+pcicc32.sys = 1
+
+[DestinationDirs]
+DefaultDestDir = 12 ; drivers
+
+
+;-----------------------------------------------------------
+; String information
+;-----------------------------------------------------------
+
+[Strings]
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk"
+ARW_MFG = "ARW Elektronik, Germany"
+ARW = "ARW Elektronik, Germany"
+PCICC32_class_name = "ARW BUS Interfaces"
Index: wiener_pcicc32/SOURCE/Debug/pcicc32.SYS
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/SOURCE/Debug/pcicc32.SYS
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/SOURCE/pcicc32.ncb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/SOURCE/pcicc32.ncb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/SOURCE/pcicc32.opt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/SOURCE/pcicc32.opt
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/SOURCE/pcicc32_drv.h
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_drv.h (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_drv.h (revision 176)
@@ -0,0 +1,172 @@
+#ifndef __PCICC32_DRV_H__
+#define __PCICC32_DRV_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany ---------
+// the main header file of the driver
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistribute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 10.03.2000
+// dwIrqStatus added, version 2 AR 24.02.2001
+// with AUTOREAD, version 2.01 AR 17.03.2001
+// with support for LCR_READ, version 2.02 AR 31.03.2001
+// changed to VisualStudio 6.0 AR 30.09.2001
+// compiled with DDK 1/2001 AR 20.11.2001
+// removed alloc_text cause of WIN2000 problems AR 25.11.2001
+// version 2.7 released AR 25.11.2001
+// version 2.8 still experimental AR 26.05.2002
+// version 2.16 eliminates PLXBUG in WIN2000 AR 05.06.2002
+// version 2.17 added KeSynchronizeExecution AR 16.06.2002
+// version 2.18 improved snchronisation AR 18.06.2002
+//
+
+//-------------------------------------------------------------------------
+#define DRIVER_VERSION ((2 << 16) | 18) // the only place for version info
+#define DRIVER_VARIANT 0 // mark customisation here
+//-------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------
+// precautions for debug compile
+#define PCICC32_DEBUG
+
+#ifndef PCICC32_DEBUG
+#ifdef KdPrint
+#undef KdPrint
+#define KdPrint(x) /* x */
+#endif
+#endif
+//-------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#define PCI_MAX_BUSES 4 // buses to search for pciada
+
+#define PCICC32_MAX_PCIADA 4 // maximum of PCIADA to search for
+#define PCICC32_MAX_CC32 16 // maximum number of CC32 modules connected
+
+//-------------------------------------------------------------------------
+// DEFINES
+//
+#define PCICC32_VENDOR_ID 0x10B5
+#define PCICC32_DEVICE_ID 0x2258
+#define PCICC32_SUBSYS_ID 0x2258
+#define PCICC32_SUBVEN_ID 0x9050
+
+#define LCR_SPACE 256 // space in bytes of LCR
+#define IFR_SPACE 32768 // space in bytes of IFR
+
+//----------------------------------------------------------------------------------------
+// macros for simple address calculation
+//
+#define _WORD_NAF(base, n, a, f) ((USHORT *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2)))
+#define _DWORD_NAF(base, n, a, f) ((ULONG *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2)))
+
+//-------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct _FILE_OBJ
+{
+ USHORT uwAssociatedCC32; // which CC32 number it belongs
+ USHORT wAccessType; // WORD or LONGWORD
+ USHORT wBlockTransfer; // != 0 for block transfer
+ void (*fRead)(void *to, void *from); // resulting read
+ void (*fWrite)(void *to, void *from); // resulting write
+ PIRP blockingIrp; // if != 0 then a blocking IRP is waiting
+} FILE_OBJ, *PFILE_OBJ;
+
+typedef struct
+{
+ int Bus; // bus number of pciada
+ PCI_SLOT_NUMBER Slot; // slot + function number encoded
+ PCI_COMMON_CONFIG PCIDevice; // content of pcr, only for direct HW related functions
+
+ PHYSICAL_ADDRESS pvPhysLcr; // local config register, unmapped and mapped
+ PHYSICAL_ADDRESS pvPhysIfr; // interface registers, unmapped and mapped
+ PVOID pvVirtLcr; // virtual LCR space
+ PVOID pvVirtIfr; // virtual IFR space
+
+ PKINTERRUPT InterruptObject; // points to the associated interrupt obj
+ KIRQL Irql; // virtual Irq level, unmapped and mapped
+ ULONG Vector; // mapped system vector, unmapped and mapped
+ KAFFINITY Affinity; // which processor uses this irq, unmapped and mapped
+
+ PUSHORT pwCntrl; // LCR Cntrl Offset @ LCR + 0x50
+ PUSHORT pwIntCSR; // LCR IntCSR Offset @ LCR + 0x4C
+
+ ULONG dwLinkCount; // how often this interface is requested
+ BOOLEAN bConnected; // CC32 is connected and powered
+ USHORT wModuleNumber; // Number (Jumper) of CC32
+ USHORT wFPGAVersion; // Revision of (CC32) FPGA
+ USHORT wModuleType; // Type of (CC32) module
+
+ KDPC kDPCobj; // custom DPC object for irq tunneling
+
+ ULONG dwIrqStatus; // the last unrequested status of a interrupt
+ PIRP *pBlockingIrp; // points to File or == NULL when no blocking in progress
+
+ FILE_OBJ *pIrqControlFile; // this file controls the global enable / disable IRQ
+} PCIADA;
+
+typedef struct _DEVICE_EXT
+{
+ PDEVICE_OBJECT DeviceObject; // points to myself and carries the pointer to DriverObject
+ PIRP actualIrp; // points to ..
+
+ int nPCIADAs; // how many PCIADAs are found
+
+ PCIADA pciada[PCICC32_MAX_PCIADA]; // for each PCIADA a descriptor
+
+ PCIADA *cc32[PCICC32_MAX_CC32]; // points to PCIADA to which it belongs
+
+ int nInitState; // tracks the state of initialisation
+} DEVICE_EXT;
+
+
+// Prototypes to support following pragmas
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath);
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP irp);
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP irp);
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj);
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj);
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT deviceObj);
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList);
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32TranslateBusAddress(PDEVICE_OBJECT device_Obj);
+NTSTATUS PCICC32MapIOspace(PDEVICE_OBJECT device_object);
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj);
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object);
+
+/* release all this procedures after init of the driver */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (init, DriverEntry)
+#pragma alloc_text (init, SearchDevices)
+#pragma alloc_text (init, PLX9050BugFix)
+#pragma alloc_text (init, PCICC32ReserveResources)
+#pragma alloc_text (init, PCICC32ExtractResources)
+#pragma alloc_text (init, PCICC32TranslateBusAddress)
+#pragma alloc_text (init, PCICC32MapIOspace)
+#pragma alloc_text (init, PCICC32SoftInit)
+#pragma alloc_text (init, InitializeCustomDPCObjects)
+#endif
+
+/* put all this procedures in the paged memory-pool, all called at passiv Level */
+#ifdef ALLOC_PRAGMA
+#pragma alloc_text (page, PCICC32Open)
+#pragma alloc_text (page, PCICC32Close)
+#pragma alloc_text (page, PCICC32Unload)
+#pragma alloc_text (page, PCICC32FreeResources)
+#endif
+
+#endif // __PCICC32_DRV_H__
+
Index: wiener_pcicc32/SOURCE/pcicc32_v.c
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_v.c (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_v.c (revision 176)
@@ -0,0 +1,196 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------
+// all around recognition and basic services of VMEMM
+//
+// (c) 2000-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started from pcivme_v.c AR 02.07.2000
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <pcicc32_drv.h>
+#include <pcicc32_v.h>
+#include <pcicc32_local.h> // all around the pciada interface
+
+#ifndef WORD // don't touch include files of WIN95 driver
+#define WORD USHORT
+#endif
+
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+//------------------------------------------------------------------------
+// PROTOTYPES
+//
+
+//------------------------------------------------------------------------
+// GLOBALS
+//
+
+//------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+//------------------------------------------------------------------------
+// test connection to VMEMM devices without disturbing anything
+//
+//---------------------------------------------------------------------
+// checks a connection with a small test pattern
+//
+NTSTATUS TestConnection(PCIADA *pciada)
+{
+ USHORT *pwADRH = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 1, 0);
+ USHORT *pwADRL = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 0, 0);
+ int i;
+ USHORT wRet;
+ USHORT wADRHContent;
+ USHORT wADRLContent;
+
+
+ KdPrint(("TestConnection()\n"));
+
+ wADRHContent = READ_REGISTER_USHORT(pwADRH); // save previous content
+ wADRLContent = READ_REGISTER_USHORT(pwADRL);
+
+ for (i = 0; i < 10000; i++)
+ {
+ WRITE_REGISTER_USHORT(pwADRH, 0x5555);
+ WRITE_REGISTER_USHORT(pwADRL, 0xAAAA);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0x5555) return STATUS_UNSUCCESSFUL;
+
+ WRITE_REGISTER_USHORT(pwADRH, 0xAAAA);
+ WRITE_REGISTER_USHORT(pwADRL, 0x5555);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0xAAAA) return STATUS_UNSUCCESSFUL;
+
+ WRITE_REGISTER_USHORT(pwADRH, 0x0000);
+ WRITE_REGISTER_USHORT(pwADRL, 0xFFFF);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0x0000) return STATUS_UNSUCCESSFUL;
+
+ WRITE_REGISTER_USHORT(pwADRH, 0xFFFF);
+ WRITE_REGISTER_USHORT(pwADRL, 0x0000);
+ wRet = READ_REGISTER_USHORT(pwADRH);
+ if (wRet != 0xFFFF) return STATUS_UNSUCCESSFUL;
+ }
+
+ WRITE_REGISTER_USHORT(pwADRH, wADRHContent); // restore previous content
+ WRITE_REGISTER_USHORT(pwADRL, wADRLContent);
+
+ KdPrint(("TestConnection() OK.\n"));
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// scan VMEMM devices without disturbing anything
+//
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj)
+{
+ int i;
+ int nPCIADAs = ((DEVICE_EXT*)(deviceObj->DeviceExtension))->nPCIADAs;
+ PCIADA *pciada;
+ USHORT wCntrl;
+ USHORT wIntCSR;
+ USHORT wModuleStatus;
+
+ KdPrint(("PCICC32ScanCC32(nPCIADAs = %d)\n", nPCIADAs));
+
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &((DEVICE_EXT*)(deviceObj->DeviceExtension))->pciada[i];
+
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); // save it for later use
+ wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR);
+
+ KdPrint(("wCntrl = 0x%04x, wIntCSR = 0x%04x\n", wCntrl, wIntCSR));
+
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); // switch off before open
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS);
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32); // open it for test
+
+ if (wCntrl & 0x0800)
+ {
+ if (TestConnection(pciada) == STATUS_SUCCESS)
+ {
+ wModuleStatus = READ_REGISTER_USHORT(pciada->pvVirtIfr);
+
+ pciada->bConnected = TRUE;
+
+ // interpret the content
+ pciada->wModuleNumber = (wModuleStatus & MASK_MODNR) >> 4;
+ pciada->wFPGAVersion = (wModuleStatus & MASK_FPGA) >> 8;
+ pciada->wModuleType = (wModuleStatus & MASK_MODTYPE) >> 12;
+
+ KdPrint(("PCIADA %d <-> CC32 %d\n", i, pciada->wModuleNumber));
+ }
+ else
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out
+ }
+ else
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out
+
+ if (pciada->wModuleNumber != 0xFFFF)
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // restore state
+ else
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32);
+
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, wIntCSR); // restore interrupt masks
+ }
+
+ return STATUS_SUCCESS;
+}
+
+
+//------------------------------------------------------------------------
+// deinit all PCIADAs in a passive state
+//
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj)
+{
+ int i;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)deviceObj->DeviceExtension;
+ int nPCIADAs = pDevExt->nPCIADAs;
+ PCIADA *pciada;
+
+ KdPrint(("PCICC32DeInitPCIADAs()\n"));
+
+ // dis connect the interrupts to service routines
+ for (i = 0; i < nPCIADAs; i++)
+ {
+ pciada = &pDevExt->pciada[i];
+
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32);
+ // this is the same as globalInterruptDisable(pciada);
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS);
+ }
+
+ return STATUS_SUCCESS;
+}
+
+//------------------------------------------------------------------------
+// switches pciada on or off
+//
+void enableCC32(PCIADA *pciada)
+{
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32);
+}
+
+void disableCC32(PCIADA *pciada)
+{
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32);
+}
Index: wiener_pcicc32/SOURCE/pcicc32_io.c
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_io.c (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_io.c (revision 176)
@@ -0,0 +1,757 @@
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany ---------
+// the ioctl functions
+//
+// (c) 1999-2002 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 03.07.1999
+// first release 1.0 AR 17.10.1999
+// added access to PLX LC-Register AR 30.03.2001
+// changed making procedure (only VCC > 6.0) AR 30.05.2002
+// multiple interrupt enable allowed AR 01.06.2002
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002
+// extended ioctl_irq_status_kernel AR 18.06.2002
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+#include <ntddk.h>
+#include <devioctl.h>
+#include <pcicc32_drv.h>
+#include <pcicc32.h>
+#include <pcicc32_v.h>
+#include <pcicc32_io.h>
+#include <pcicc32_local.h>
+#include <pcicc32_i.h>
+
+//------------------------------------------------------------------------
+// DEFINES
+//
+
+// buffers usage must match the corresponding ioctl code!
+#define SET_BUFFERS_METHOD_OUT_DIRECT \
+{\
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\
+ pInputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\
+ pOutputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\
+}
+
+#define SET_BUFFERS_METHOD_IN_DIRECT \
+{\
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\
+ pInputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\
+ pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\
+}
+
+#define SET_BUFFERS_METHOD_BUFFERED \
+{\
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\
+ pInputBuffer = pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\
+}
+
+#define COMPLETE_REQUEST \
+{\
+ if (Status != STATUS_PENDING)\
+ {\
+ Irp->IoStatus.Status = Status; \
+ Irp->IoStatus.Information = irp_info; \
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); \
+ }\
+}
+
+// compatibilty issues to WIN95 driver calls
+#ifndef WORD
+#define WORD USHORT
+#endif
+
+#ifndef DWORD
+#define DWORD ULONG
+#endif
+
+#ifndef BYTE
+#define BYTE UCHAR
+#endif
+
+#ifndef BOOL
+#define BOOL BOOLEAN
+#endif
+
+
+//-------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct
+{
+ FILE_OBJ *file_obj;
+ PCIADA *pciada;
+ PCICC32_IRQ_RESPONSE *pIrqStatus;
+ PIRP *Irp;
+ ULONG *irp_info;
+ NTSTATUS *Status;
+} IOCTL_IRQ_STATUS_CONTEXT;
+
+//--------------------------------------------------------------------------
+// LOCAL FUNCTIONS
+//
+
+//--------------------------------------------------------------------------
+// fast read or write functions - portable -
+static void readWord(void *to, void *from)
+{
+ *(PUSHORT)to = READ_REGISTER_USHORT((PUSHORT)from);
+}
+
+static void readLong(void *to, void *from)
+{
+ *(PULONG)to = READ_REGISTER_ULONG((PULONG)from);
+}
+
+static void writeWord(void *to, void *from)
+{
+ WRITE_REGISTER_USHORT((PUSHORT)to, *(PUSHORT)from);
+}
+
+static void writeLong(void *to, void *from)
+{
+ WRITE_REGISTER_ULONG((PULONG)to, *(PULONG)from);
+}
+
+//------------------------------------------------------------------------
+// init the interface with build in and user supplied constants
+static BOOLEAN InitInterface(PVOID pvLcr, PVOID pvIfr)
+{
+ return TRUE;
+}
+
+// deinit the interface with user supplied and build in constants
+static BOOLEAN DeInitInterface(PVOID pvLcr, PVOID pvIfr)
+{
+ return TRUE;
+}
+
+//------------------------------------------------------------------------
+// the default cancel routine for an queued Irp
+//
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp)
+{
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[file_obj->uwAssociatedCC32];
+
+ if (pciada->pBlockingIrp == (PIRP *)NULL)
+ {
+ IoReleaseCancelSpinLock(Irp->CancelIrql);
+ KdPrint(("Nothing to do: CancelRequest(0x%08x)\n", Irp));
+ return;
+ }
+ else
+ {
+ // release control of interrupt
+ if (pciada->pIrqControlFile == file_obj)
+ {
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ globalInterruptDisable(pciada);
+ }
+
+ // cancel any blocking Irp origin from this file
+ if (file_obj->blockingIrp != (PIRP)NULL)
+ file_obj->blockingIrp = (PIRP)NULL;
+
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp)
+ pciada->pBlockingIrp = (PIRP *)NULL;
+
+ IoReleaseCancelSpinLock(Irp->CancelIrql);
+
+ KdPrint(("Done: CancelRequest(0x%08x)\n", Irp));
+
+ Irp->IoStatus.Status = STATUS_CANCELLED;
+ Irp->IoStatus.Information = 0;
+
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ }
+}
+
+//------------------------------------------------------------------------
+// the custom deffered routine to finish blocking io on irq_block
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID pdwIrqStatus)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+ PIRP Irp = (PIRP)NULL;
+ PCIADA *pciada = (PCIADA *)pvPciada;
+ KIRQL oldIrqlCancel;
+
+ KdPrint(("fMyDefferedRoutine(0x%08x)\n", pciada->dwIrqStatus));
+
+ // beware off damage due to intercept at cancel of thread
+ IoAcquireCancelSpinLock(&oldIrqlCancel);
+
+ // get my associated packet
+ if (pciada->pBlockingIrp != (PIRP *)NULL)
+ {
+ Irp = *pciada->pBlockingIrp;
+
+ if (Irp != (PIRP)NULL) // then a blcoking Irp is waiting
+ {
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer);
+
+ // fill the response structure
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus;
+ pciada->dwIrqStatus = 0; // to prevent a following direct return
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32;
+
+ // release the cancel routine from this Irp
+ IoSetCancelRoutine(Irp, NULL);
+
+ COMPLETE_REQUEST;
+
+ file_obj->blockingIrp = (PIRP)NULL;
+ }
+
+ pciada->pBlockingIrp = (PIRP *)NULL;
+ }
+
+ // release the spin locks
+ IoReleaseCancelSpinLock(oldIrqlCancel);
+}
+
+//------------------------------------------------------------------------
+// if the interrupt is disabled for a blocking path, cancel the block
+static void ReleaseBlockingIrp(PDEVICE_OBJECT device_Obj, PCIADA *pciada, PFILE_OBJ pFile_obj)
+{
+ NTSTATUS Status = STATUS_CANCELLED;
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+ PIRP Irp = (PIRP)NULL;
+ KIRQL oldIrqlCancel;
+
+ KdPrint(("ReleaseBlockingIrp()\n"));
+
+ // beware off damage due to intercept with cancel of thread
+ IoAcquireCancelSpinLock(&oldIrqlCancel);
+
+ if (pciada->pBlockingIrp != (PIRP *)NULL)
+ {
+ // get my associated packet
+ Irp = *pciada->pBlockingIrp;
+
+ if (Irp != (PIRP)NULL)
+ {
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer);
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus;
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32;
+
+ // release the cancel routine from this Irp
+ IoSetCancelRoutine(Irp, NULL);
+
+ COMPLETE_REQUEST;
+
+ file_obj->blockingIrp = (PIRP)NULL;
+ }
+
+ pciada->pBlockingIrp = (PIRP *)NULL; // mark the storage for blocking Irp free
+ }
+
+ // release the spin locks
+ IoReleaseCancelSpinLock(oldIrqlCancel);
+}
+
+//------------------------------------------------------------------------
+// all functions called from ioctl jump table
+//
+
+//------------------------------------------------------------------------
+// a dummy entry because of compatibiltiy (near) WIN95 driver
+static NTSTATUS ioctl_dummy(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ char *pCommand;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ pCommand = (char *)pInputBuffer;
+
+ KdPrint(("ioctl_dummy(%d)\n", file_obj->uwAssociatedCC32));
+
+ // do what must be here in between -----------
+
+ // do what must be here in between --- end ---
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_dummy(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// requests status
+static NTSTATUS ioctl_get_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = sizeof(PCICC32_STATUS);
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCIADA *pciada;
+ DEVICE_EXT *pDevExt;
+ PCICC32_STATUS *pStatus;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+
+ // do what must be here in between -----------
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_get_status(%d)\n", wModuleNumber));
+
+ // do what must be here in between -----------
+ if (OutputLength >= sizeof(PCICC32_STATUS))
+ {
+ USHORT temp;
+
+ pStatus = (PCICC32_STATUS *)pOutputBuffer;
+
+ pciada = pDevExt->cc32[wModuleNumber];
+
+ pStatus->dwInterface = wModuleNumber;
+
+ temp = READ_REGISTER_USHORT(pciada->pwIntCSR);
+ pStatus->bTimeout = (temp & 0x0020) ? 1 : 0;
+ pStatus->bInterrupt = (temp & 0x0004) ? 1 : 0;
+ }
+ else
+ Status = STATUS_BUFFER_TOO_SMALL;
+ // do what must be here in between --- end ---
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_get_status(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// clears status
+static BOOLEAN ioctl_clear_status_kernel(PVOID pvContext)
+{
+ PCIADA *pciada = (PCIADA *)pvContext;
+ USHORT wCntrl;
+
+ // get current Cntrl - and clear interrupt
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl);
+ wCntrl &= ~0x0100; // disable
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl);
+ wCntrl |= 0x0100; // enable again
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl);
+
+ return TRUE;
+}
+
+static NTSTATUS ioctl_clear_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCIADA *pciada;
+ DEVICE_EXT *pDevExt;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+
+ // do what must be here in between -----------
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_clear_status(%d)\n", wModuleNumber));
+
+ // do what must be here in between -----------
+ pciada = pDevExt->cc32[wModuleNumber];
+
+ KeSynchronizeExecution(pciada->InterruptObject, ioctl_clear_status_kernel, pciada);
+
+ // do what must be here in between --- end ---
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_clear_status() OK\n"));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// set parameter for this path for future access to CC32
+static NTSTATUS ioctl_access_para(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCICC32_ACCESS_COMMAND *pAccessPara;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber];
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_access_para(%d)\n", wModuleNumber));
+
+ pAccessPara = (PCICC32_ACCESS_COMMAND *)pInputBuffer;
+
+ // do here in between what has to be done -----------------
+ file_obj->wAccessType = pAccessPara->wAccessType;
+ file_obj->wBlockTransfer = pAccessPara->wBlockTransfer;
+
+ pAccessPara->dwInterface = wModuleNumber;
+
+ switch (pAccessPara->wAccessType)
+ {
+ case WORD_ACCESS: file_obj->fRead = readWord;
+ file_obj->fWrite = writeWord;
+ break;
+ case LONG_ACCESS: file_obj->fRead = readLong;
+ file_obj->fWrite = writeLong;
+ break;
+ default: Status = STATUS_UNSUCCESSFUL;
+ break;
+ }
+ // do here in between what has to be done end -------------
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_access_para(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// allow or inhibit interrupt requests from either CC32 or thru local timeout
+static NTSTATUS ioctl_control_interrupts(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ PCICC32_IRQ_CONTROL *pIrqControlIn, *pIrqControlOut;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber];
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_control_interrupts(%d)\n", wModuleNumber));
+
+ pIrqControlIn = (PCICC32_IRQ_CONTROL *)pInputBuffer;
+ pIrqControlOut = (PCICC32_IRQ_CONTROL *)pOutputBuffer;
+
+ // do here in between what has to be done -----------------
+ if (pIrqControlIn->wEnable)
+ {
+ // reserve the controlling of interrupts for this path
+ if ((pciada->pIrqControlFile == (FILE_OBJ *)NULL) ||
+ (pciada->pIrqControlFile == file_obj))
+ {
+ pciada->pIrqControlFile = file_obj;
+ globalInterruptEnable(pciada);
+ }
+ else
+ Status = STATUS_DEVICE_BUSY;
+ }
+ else
+ {
+ // nobody else is allowed to disable interrupts
+ if (pciada->pIrqControlFile == file_obj)
+ {
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL;
+ globalInterruptDisable(pciada);
+ }
+ else
+ Status = STATUS_DEVICE_BUSY;
+ }
+
+ // give back if the user grants space
+ if (OutputLength >= sizeof(PCICC32_IRQ_CONTROL))
+ {
+ pIrqControlOut->dwInterface = wModuleNumber;
+ pIrqControlOut->wEnable = globalInterruptEnabledStatus(pciada);
+ }
+ // do here in between what has to be done end -------------
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_control_interrupts(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+//------------------------------------------------------------------------
+// implements a blocking io-call to get irq status.
+static BOOLEAN ioctl_irq_status_kernel(PVOID pvContext)
+{
+ IOCTL_IRQ_STATUS_CONTEXT *context = (IOCTL_IRQ_STATUS_CONTEXT *)pvContext;
+ KIRQL oldIrql;
+
+ if (context->pciada->dwIrqStatus)
+ {
+ // there is a pending interrupt - return immediately
+ KdPrint(("ioctl_irq_status(), direct return (0x%08x)\n", context->pciada->dwIrqStatus));
+
+ context->pIrqStatus->dwInterruptFlags = context->pciada->dwIrqStatus;
+ context->pciada->dwIrqStatus = 0; // release pending status
+
+ *context->irp_info = sizeof(PCICC32_IRQ_RESPONSE);
+ }
+ else
+ {
+ // make the request blocking
+ IoAcquireCancelSpinLock(&oldIrql);
+
+ if ((*context->Irp)->Cancel) // cancel while doing
+ {
+ KdPrint(("ioctl_irq_status(), canceled return\n"));
+ *context->Status = STATUS_CANCELLED;
+ }
+ else
+ {
+ KdPrint(("ioctl_irq_status(), blocking\n"));
+
+ if (context->pciada->pBlockingIrp != (PIRP *)NULL)
+ {
+ // a Irp is still waiting
+ *context->Status = STATUS_DEVICE_BUSY;
+ }
+ else
+ {
+ context->file_obj->blockingIrp = *context->Irp;
+ context->pciada->pBlockingIrp = &context->file_obj->blockingIrp;
+
+ *context->Status = STATUS_PENDING;
+
+ // mark irp as pending and return
+ IoMarkIrpPending(*context->Irp);
+ IoSetCancelRoutine(*context->Irp, CancelRequest);
+ }
+ } // if (Irp->Cancel) ...
+ }
+
+ return TRUE;
+}
+
+static NTSTATUS ioctl_irq_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ USHORT wModuleNumber;
+ IOCTL_IRQ_STATUS_CONTEXT context;
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ wModuleNumber = context.file_obj->uwAssociatedCC32;
+ context.pciada = pDevExt->cc32[wModuleNumber];
+ context.pIrqStatus = (PCICC32_IRQ_RESPONSE *)pOutputBuffer;
+ context.Status = &Status;
+ context.irp_info = &irp_info;
+ context.Irp = &Irp;
+
+
+ KdPrint(("ioctl_irq_status(%d)\n", wModuleNumber));
+
+ // do here in between what has to be done -----------------
+ if (OutputLength < sizeof(PCICC32_IRQ_RESPONSE))
+ Status = STATUS_BUFFER_TOO_SMALL;
+ else
+ {
+ context.pIrqStatus->dwInterface = wModuleNumber;
+
+ KeSynchronizeExecution(context.pciada->InterruptObject, ioctl_irq_status_kernel, &context);
+ }
+ // do here in between what has to be done end -------------
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_irq_status(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+
+//------------------------------------------------------------------------
+// for test and debug purposes: direkt access to PLX LCR space
+static NTSTATUS ioctl_access_lcr(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG irp_info = 0;
+ PVOID pInputBuffer,pOutputBuffer;
+ ULONG InputLength, OutputLength;
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext;
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32;
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension);
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber];
+ PCICC32_LCR_ACCESS *pAccessOut;
+ PCICC32_LCR_ACCESS *pAccessIn;
+
+ SET_BUFFERS_METHOD_BUFFERED;
+
+ KdPrint(("ioctl_access_lcr(%d)\n", wModuleNumber));
+
+ pAccessOut = (PCICC32_LCR_ACCESS *)pOutputBuffer;
+ pAccessIn = (PCICC32_LCR_ACCESS *)pInputBuffer;
+
+ // do here in between what has to be done -----------------
+ if (OutputLength < sizeof(PCICC32_LCR_ACCESS))
+ Status = STATUS_BUFFER_TOO_SMALL;
+ else
+ {
+ *pAccessOut = *pAccessIn;
+ pAccessOut->dwInterface = wModuleNumber;
+
+ if (pAccessIn->wRegisterAddress <= 0x52)
+ {
+ // 1st part: long word accesses
+ if (pAccessIn->bBytesLane == LONG_ACCESS)
+ {
+ if (pAccessIn->wRegisterAddress & 0x0003)
+ Status = STATUS_INSTRUCTION_MISALIGNMENT;
+ else
+ {
+ ULONG *pdwVirtAddress;
+ ULONG dwDummy;
+
+ pdwVirtAddress = (ULONG *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress);
+
+ switch (pAccessIn->bAccessMode)
+ {
+ case LCR_WRITE:
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent);
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+ case LCR_OR:
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress);
+ dwDummy |= pAccessIn->dwContent;
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy);
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+ case LCR_AND:
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress);
+ dwDummy &= pAccessIn->dwContent;
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy);
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+ case LCR_WRITE_ONLY:
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent);
+ break;
+ case LCR_READ:
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress);
+ break;
+
+ default: Status = STATUS_ILLEGAL_INSTRUCTION;
+ }
+ }
+ }
+
+ // 2nd part: short word accesses
+ if (pAccessIn->bBytesLane == WORD_ACCESS)
+ {
+ if (pAccessIn->wRegisterAddress & 0x0001)
+ Status = STATUS_INSTRUCTION_MISALIGNMENT;
+ else
+ {
+ USHORT *pwVirtAddress;
+ USHORT wDummy;
+
+ pwVirtAddress = (USHORT *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress);
+
+ switch (pAccessIn->bAccessMode)
+ {
+ case LCR_WRITE:
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent);
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+ case LCR_OR:
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress);
+ wDummy |= (USHORT)pAccessIn->dwContent;
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy);
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+ case LCR_AND:
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress);
+ wDummy &= (USHORT)pAccessIn->dwContent;
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy);
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+ case LCR_WRITE_ONLY:
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent);
+ break;
+ case LCR_READ:
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress);
+ break;
+
+ default: Status = STATUS_ILLEGAL_INSTRUCTION;
+ break;
+ }
+ }
+ }
+
+ // 3rd part: check illegal byte lanes
+ if (!((pAccessIn->bBytesLane == LONG_ACCESS) || (pAccessIn->bBytesLane == WORD_ACCESS)))
+ Status = STATUS_ILLEGAL_INSTRUCTION;
+ }
+ else
+ Status = STATUS_ILLEGAL_INSTRUCTION;
+ }
+ // do here in between what has to be done end -------------
+
+ if (Status == STATUS_SUCCESS)
+ irp_info = sizeof(PCICC32_LCR_ACCESS);
+
+ COMPLETE_REQUEST;
+
+ KdPrint(("ioctl_access_lcr(), Status = 0x%08x\n", Status));
+
+ return Status;
+}
+
+
+//------------------------------------------------------------------------
+// the ultimate jumptable for ioctl
+//
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) =
+{
+ ioctl_dummy, // 0
+ ioctl_dummy, // 4
+ ioctl_get_status, // 8
+ ioctl_clear_status, // 0x0c
+ ioctl_access_para, // 0x10
+ ioctl_control_interrupts, // 0x14
+ ioctl_dummy, // 0x18
+ ioctl_irq_status, // 0x1c
+ ioctl_access_lcr // 0x20
+};
+
Index: wiener_pcicc32/SOURCE/pcicc32_v.h
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_v.h (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_v.h (revision 176)
@@ -0,0 +1,34 @@
+#ifndef __PCICC32_V_H__
+#define __PCICC32_V_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32terface from ARW Elektronik, Germany ---------
+// header file belonging to pcicc32_v.c
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 02.07.2000
+//
+
+//-------------------------------------------------------------------------
+// DEFINES
+//
+#include <pcicc32_drv.h>
+
+//-------------------------------------------------------------------------
+// PROTOTYPES
+//
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj);
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj);
+void enableCC32(PCIADA *pciada);
+void disableCC32(PCIADA *pciada);
+
+#endif // __PCICC32_V_H__
Index: wiener_pcicc32/SOURCE/pcicc32.inf
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32.inf (revision 176)
@@ -0,0 +1,104 @@
+;===========================================================
+; File : pcicc32.inf
+;
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany
+;
+;===========================================================
+
+
+[Version]
+Signature = $CHICAGO$
+Provider = %ARW%
+Class = %PCICC32_class_name%
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1}
+DriverVer = 11/25/2001,2.3.0.0
+
+
+;-----------------------------------------------------------
+; Driver information
+;-----------------------------------------------------------
+
+[Manufacturer]
+%ARW_MFG% = ARW.Mfg
+
+[ARW.Mfg]
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02
+
+[ClassInstall32]
+AddReg=PCICC32_class_addreg
+
+[PCICC32_class_addreg]
+HKR,,,,%PCICC32_class_name%
+HKR,,Icon,0,0
+
+
+;-----------------------------------------------------------
+; General installation section
+;-----------------------------------------------------------
+
+[CopyFiles_9050]
+pcicc32.sys,,,2
+
+
+;-----------------------------------------------------------
+; Windows 2000 installation section
+;-----------------------------------------------------------
+
+[Install_PCICC32.NT]
+AddReg = AddRegistry_NT_9050
+CopyFiles = CopyFiles_9050
+
+
+[Install_PCICC32.NT.Services]
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050
+
+
+[AddRegistry_NT_9050]
+
+
+[Service_Inst_9050]
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE
+ServiceBinary = %12%\pcicc32.sys
+
+
+;-----------------------------------------------------------
+; Event log registry entries
+;-----------------------------------------------------------
+
+[EventLog_Inst_9050]
+AddReg = EventLog_AddReg_9050
+
+
+[EventLog_AddReg_9050]
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys"
+HKR,,TypesSupported,0x00010001,7
+
+
+;-----------------------------------------------------------
+; Source file information
+;-----------------------------------------------------------
+
+[SourceDisksNames.x86]
+1 = %InstallDisk%,"",1
+
+[SourceDisksFiles]
+pcicc32.sys = 1
+
+[DestinationDirs]
+DefaultDestDir = 12 ; drivers
+
+
+;-----------------------------------------------------------
+; String information
+;-----------------------------------------------------------
+
+[Strings]
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk"
+ARW_MFG = "ARW Elektronik, Germany"
+ARW = "ARW Elektronik, Germany"
+PCICC32_class_name = "ARW BUS Interfaces"
Index: wiener_pcicc32/SOURCE/pcicc32_io.h
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32_io.h (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32_io.h (revision 176)
@@ -0,0 +1,30 @@
+#ifndef __PCIVME_IO_H__
+#define __PCIVME_IO_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCIVME interface from ARW Elektronik, Germany ---------
+// the ioctl functions header file
+//
+// (c) 1999 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+// ntddk.h must included first!
+//
+// what who when
+// started AR 03.07.99
+//
+
+
+//------------------------------------------------------------------------
+// FUNCTIONS + EXTERNALS
+//
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP irp, PIO_STACK_LOCATION IrpStack);
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID Nothing);
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp);
+
+#endif // __PCIVME_IO_H__
Index: wiener_pcicc32/SOURCE/pcicc32.plg
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32.plg (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32.plg (revision 176)
@@ -0,0 +1,49 @@
+<html>
+<body>
+<pre>
+<h1>Erstellungsprotokoll</h1>
+<h3>
+--------------------Konfiguration: pcicc32 - Win32 Debug--------------------
+</h3>
+<h3>Befehlszeilen</h3>
+Erstellen der temporären Datei "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP21.tmp" mit Inhalten
+[
+/nologo /Gz /MLd /W3 /Gm /Gi /Zi /Od /I "\DDK\inc" /I "." /D DBG=1 /D "_X86_" /D _WIN32_WINNT=0x500 /Fp"Debug/pcicc32.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /Gs -GF /c
+"D:\Work\MyProjects\pcicc32\pcicc32_drv.c"
+"D:\Work\MyProjects\pcicc32\pcicc32_i.c"
+"D:\Work\MyProjects\pcicc32\pcicc32_io.c"
+"D:\Work\MyProjects\pcicc32\pcicc32_v.c"
+]
+Creating command line "cl.exe @C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP21.tmp"
+Erstellen der temporären Datei "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP22.tmp" mit Inhalten
+[
+int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /incremental:no /pdb:"Debug/pcicc32.pdb" /debug /machine:I386 /nodefaultlib /out:"Debug\pcicc32.SYS" /pdbtype:con /libpath:"\DDK\lib\i386\checked" -driver -subsystem:NATIVE,4.00
+.\Debug\pcicc32_drv.obj
+.\Debug\pcicc32_i.obj
+.\Debug\pcicc32_io.obj
+.\Debug\pcicc32_v.obj
+]
+Erstellen der Befehlzeile "link.exe @C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP22.tmp"
+Erstellen der temporären Datei "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP23.bat" mit Inhalten
+[
+@echo off
+copy .\Debug\pcicc32.SYS C:\WINNT\System32\Drivers\*.*
+]
+Erstellen der Befehlzeile "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP23.bat"
+Kompilierung läuft...
+pcicc32_drv.c
+pcicc32_i.c
+pcicc32_io.c
+pcicc32_v.c
+Linker-Vorgang läuft...
+<h3>Ausgabefenster</h3>
+Copying Driver to System32\Drivers
+ 1 Datei(en) kopiert.
+
+
+
+<h3>Ergebnisse</h3>
+pcicc32.SYS - 0 Fehler, 0 Warnung(en)
+</pre>
+</body>
+</html>
Index: wiener_pcicc32/SOURCE/pcicc32.dsp
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32.dsp (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32.dsp (revision 176)
@@ -0,0 +1,163 @@
+# Microsoft Developer Studio Project File - Name="pcicc32" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=pcicc32 - Win32 Debug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE
+!MESSAGE NMAKE /f "pcicc32.mak".
+!MESSAGE
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE
+!MESSAGE NMAKE /f "pcicc32.mak" CFG="pcicc32 - Win32 Debug"
+!MESSAGE
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE
+!MESSAGE "pcicc32 - Win32 Release" (basierend auf "Win32 (x86) Application")
+!MESSAGE "pcicc32 - Win32 Debug" (basierend auf "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "pcicc32 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D DBG=0 /YX /FD /c
+# ADD CPP /nologo /Gz /W3 /Gi /O2 /I "\DDK\inc" /I "." /D "NDEBUG" /D DBG=0 /D "_X86_" /D _WIN32_WINNT=0x500 /YX /FD /Gs -GF /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /machine:I386 /nodefaultlib /out:"Release\pcicc32.SYS" /libpath:"\DDK\lib\i386\free" -driver -subsystem:NATIVE,4.00
+# Begin Custom Build - Copying Driver to System32\Drivers
+TargetPath=.\Release\pcicc32.SYS
+TargetName=pcicc32
+InputPath=.\Release\pcicc32.SYS
+SOURCE="$(InputPath)"
+
+"$(SystemRoot)\System32\Drivers\$(TargetName)" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ copy $(TargetPath) $(SystemRoot)\System32\Drivers\*.*
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "pcicc32 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D DBG=1 /YX /FD /GZ /c
+# ADD CPP /nologo /Gz /W3 /Gm /Gi /Zi /Od /I "\DDK\inc" /I "." /D DBG=1 /D "_X86_" /D _WIN32_WINNT=0x500 /YX /FD /Gs -GF /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /incremental:no /debug /machine:I386 /nodefaultlib /out:"Debug\pcicc32.SYS" /pdbtype:con /libpath:"\DDK\lib\i386\checked" -driver -subsystem:NATIVE,4.00
+# Begin Custom Build - Copying Driver to System32\Drivers
+TargetPath=.\Debug\pcicc32.SYS
+TargetName=pcicc32
+InputPath=.\Debug\pcicc32.SYS
+SOURCE="$(InputPath)"
+
+"$(SystemRoot)\System32\Drivers\$(TargetName)" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ copy $(TargetPath) $(SystemRoot)\System32\Drivers\*.*
+
+# End Custom Build
+
+!ENDIF
+
+# Begin Target
+
+# Name "pcicc32 - Win32 Release"
+# Name "pcicc32 - Win32 Debug"
+# Begin Group "Quellcodedateien"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\pcicc32_drv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_i.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_io.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_v.c
+# End Source File
+# End Group
+# Begin Group "Header-Dateien"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\pcicc32.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_drv.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_io.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_local.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcicc32_v.h
+# End Source File
+# End Group
+# Begin Group "Ressourcendateien"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
Index: wiener_pcicc32/SOURCE/pcicc32.h
===================================================================
--- wiener_pcicc32/SOURCE/pcicc32.h (nonexistent)
+++ wiener_pcicc32/SOURCE/pcicc32.h (revision 176)
@@ -0,0 +1,157 @@
+#ifndef __PCICC32_H__
+#define __PCICC32_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------
+// IO definitions and common data structures between application and driver
+//
+// (c) 2000,2001 ARW Elektronik
+//
+// this source code is published under GPL (Open Source). You can use, redistrubute and
+// modify it unless this header is not modified or deleted. No warranty is given that
+// this software will work like expected.
+// This product is not authorized for use as critical component in life support systems
+// wihout the express written approval of ARW Elektronik Germany.
+//
+// Please announce changes and hints to ARW Elektronik
+//
+// what who when
+// started AR 16.04.2000
+// added irq functionality AR 24.02.2001
+// added until 'not Q' read/write mode AR 03.03.2001
+// added AUTOREAD AR 17.03.2001
+//
+
+//-------------------------------------------------------------------------
+// INCLUDES
+//
+// #include <devioctl.h> must be declared before inclusion when used for driver
+// #include <winioctl.h> must be declared before inclusion when used for applications
+
+//-------------------------------------------------------------------------
+// DEFINES
+//
+
+//----------------------------------------------------------------------------------------
+// macros for simple CAMAC NAF address calculation
+//
+#define NAF(n, a, f) ((ULONG)((n << 10) + (a << 6) + ((f & 0xf) << 2)))
+
+// to get a compatible view to WIN95 driver
+#define USER_CONTROL_CODE(x) (x)
+
+// VPCIC32D_ATTACH_CC32 and VPCIC32D_DETACH_CC32 are incompatible to WINNT - please use read and write commands
+
+// get the interrupt and timeout status from a CC32 interface (0x00220008)
+#define PCICC32_GET_STATUS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(2),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// clear the timeout status of a CC32 interface (0x0022000C)
+#define PCICC32_CLEAR_STATUS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(3),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// set the access parameter for this file (0x00220010)
+#define PCICC32_SET_ACCESS_PARA CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(4),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// allow or inhibit CC32 interrupt requests (0x00220014)
+#define PCICC32_CONTROL_INTERRUPTS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(5),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// requests thru blocking io the status of a pending or a rising interrupt (0x0022001C)
+#define PCICC32_INSTALL_IRQ_BLOCK CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(7),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// requests to access the PLX LCR for test and debug (0x00220020)
+#define PCICC32_ACCESS_LCR CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(8),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// set to check for control-code overflow
+#define PCICC32_LAST_CTL_CODE PCICC32_ACCESS_LCR
+
+// mask bits for interrupt status
+#define LAM_IRQ 0x00FFFFFF // there was a LAM responible for the timeout
+#define CONNECTION_TIMEOUT 0x08000000 // irq raised through a connection timout
+#define LAM_BUS_OR 0x10000000 // a LAM-BUS-OR is pending
+#define LAM_NOT_OR 0x20000000 // a LAM-NOT-OR is pending
+#define LAM_AND_OR 0x40000000 // a LAM-AND-OR is pending
+#define LAM_FF 0x80000000 // the LAM-Flip-Flop was set
+
+// switches for PCICC32_ACCESS_COMMAND.wAccessType
+#define WORD_ACCESS (UCHAR)2 // word
+#define LONG_ACCESS (UCHAR)4 // long
+
+// define bits for PCICC32_ACCESS_COMMAND.wBlockTransfer
+#define UNTIL_NOT_Q 0x0001 // read/write unttil 'not Q' switch
+#define AUTOREAD 0x0002 // PCIADA data pipelining access tuner switch
+
+// data lane size constants for PCICC32_ACCESS_LCR
+#define BYTE_ACCESS (UCHAR)1 // write byte wise (illegal)
+#define WORD_ACCESS (UCHAR)2 // word
+#define LONG_ACCESS (UCHAR)4 // long
+
+// PCICC32_ACCESS_LCR access constants
+#define LCR_READ 0 // read only access
+#define LCR_WRITE 1 // write and read back access
+#define LCR_OR 2 // read, bitwise 'or' content and read back access
+#define LCR_AND 3 // read, bitwise 'and' content and read back access
+#define LCR_WRITE_ONLY 4 // do not read back after write
+
+// this structure is output from VPCIC32_GET_STATUS call
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ USHORT bTimeout; // denotes a pending PCIADA timeout
+ USHORT bInterrupt; // denotes a pending LAM interrupt
+} PCICC32_STATUS;
+
+// this structure sets the access parameter for following reads or writes to this path
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ USHORT wAccessType; // set the current access type (WORD_ACCESS, LONG_ACCESS)
+ USHORT wBlockTransfer; // set AUTOREAD or UNTIL_NOT_Q
+} PCICC32_ACCESS_COMMAND;
+
+// this structure is used to control the interrupts
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ USHORT wEnable; // a 1 allows, a 0 inhibits interrupt requests
+} PCICC32_IRQ_CONTROL;
+
+// this structure returns from a blocking interrupt status call
+typedef struct
+{
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used)
+ ULONG dwInterruptFlags; // the return status at the return of the blocking call
+} PCICC32_IRQ_RESPONSE;
+
+// structure to access the local configuration space of PLX chip (test / debug only) with PCICC32_ACCESS_LCR
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ ULONG dwContent; // content to write, and, or
+ USHORT wRegisterAddress; // address offset of LCR register
+ UCHAR bAccessMode; // LCR_READ, write, or, and
+ UCHAR bBytesLane; // the data access width
+} PCICC32_LCR_ACCESS;
+
+#endif // __PCICC32_H__
Index: wiener_pcicc32/SOURCE/guid.h
===================================================================
--- wiener_pcicc32/SOURCE/guid.h (nonexistent)
+++ wiener_pcicc32/SOURCE/guid.h (revision 176)
@@ -0,0 +1,6 @@
+INTERFACENAME = { /* c4ad1dfa-3e35-4659-bf2b-c83cda6833e1 */
+ 0xc4ad1dfa,
+ 0x3e35,
+ 0x4659,
+ {0xbf, 0x2b, 0xc8, 0x3c, 0xda, 0x68, 0x33, 0xe1}
+ };
Index: wiener_pcicc32/pcicc32.inf
===================================================================
--- wiener_pcicc32/pcicc32.inf (nonexistent)
+++ wiener_pcicc32/pcicc32.inf (revision 176)
@@ -0,0 +1,104 @@
+;===========================================================
+; File : pcicc32.inf
+;
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany
+;
+;===========================================================
+
+
+[Version]
+Signature = $CHICAGO$
+Provider = %ARW%
+Class = %PCICC32_class_name%
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1}
+DriverVer = 06/18/2002,2.3.0.4
+
+
+;-----------------------------------------------------------
+; Driver information
+;-----------------------------------------------------------
+
+[Manufacturer]
+%ARW_MFG% = ARW.Mfg
+
+[ARW.Mfg]
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02
+
+[ClassInstall32]
+AddReg=PCICC32_class_addreg
+
+[PCICC32_class_addreg]
+HKR,,,,%PCICC32_class_name%
+HKR,,Icon,0,0
+
+
+;-----------------------------------------------------------
+; General installation section
+;-----------------------------------------------------------
+
+[CopyFiles_9050]
+pcicc32.sys,,,2
+
+
+;-----------------------------------------------------------
+; Windows 2000 installation section
+;-----------------------------------------------------------
+
+[Install_PCICC32.NT]
+AddReg = AddRegistry_NT_9050
+CopyFiles = CopyFiles_9050
+
+
+[Install_PCICC32.NT.Services]
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050
+
+
+[AddRegistry_NT_9050]
+
+
+[Service_Inst_9050]
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE
+ServiceBinary = %12%\pcicc32.sys
+
+
+;-----------------------------------------------------------
+; Event log registry entries
+;-----------------------------------------------------------
+
+[EventLog_Inst_9050]
+AddReg = EventLog_AddReg_9050
+
+
+[EventLog_AddReg_9050]
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys"
+HKR,,TypesSupported,0x00010001,7
+
+
+;-----------------------------------------------------------
+; Source file information
+;-----------------------------------------------------------
+
+[SourceDisksNames.x86]
+1 = %InstallDisk%,"",1
+
+[SourceDisksFiles]
+pcicc32.sys = 1
+
+[DestinationDirs]
+DefaultDestDir = 12 ; drivers
+
+
+;-----------------------------------------------------------
+; String information
+;-----------------------------------------------------------
+
+[Strings]
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk"
+ARW_MFG = "ARW Elektronik, Germany"
+ARW = "ARW Elektronik, Germany"
+PCICC32_class_name = "ARW BUS Interfaces"
Index: wiener_pcicc32/pcicc32_VC2013_Win7_Win8_Win8.1.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32_VC2013_Win7_Win8_Win8.1.zip
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcicc32/pcicc32.SYS
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcicc32/pcicc32.SYS
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property