;/*++
;
;Copyright (c) 2019-2021 Red Hat Inc.
;
;
;Module Name:
;    viosock.inf
;
;Abstract:
;
;Installation Notes:
;    Step by step driver installation wiki:
;        https://github.com/virtio-win/kvm-guest-drivers-windows/wiki/Driver-installation
;
;--*/

[Version]
Signature="$WINDOWS NT$"
Class=System
ClassGuid={4d36e97d-e325-11ce-bfc1-08002be10318}
Provider=%VENDOR%
DriverVer = 07/09/2025,100.101.104.28500
CatalogFile=viosock.cat
DriverPackageType = PlugAndPlay
DriverPackageDisplayName = %VirtioSocket.DeviceDesc%
PnpLockdown = 1

[DestinationDirs]
DefaultDestDir = 12
VirtioSocket_Lib_CopyFiles = 11
VirtioSocket_Lib_CopyFiles.WOW64 = 16425

[SourceDisksFiles]
viosock.sys  = 1,,
viosocklib_x64.dll = 1
viosocklib_x86.dll = 1
viosockwspsvc.exe = 1

[SourceDisksNames]
1 = %DiskId1%,,,""

;*****************************************
; viosock  Install Section
;*****************************************

[Manufacturer]
%VENDOR%=VirtioSocket,NTamd64.10.0

[VirtioSocket.NTamd64.10.0]
;
; Hw Ids are PCI\VEN_1AF4&DEV_1012&SUBSYS_00131AF4&REV_00
;
%VirtioSocket.DeviceDesc%=VirtioSocket_Device, PCI\VEN_1AF4&DEV_1012&SUBSYS_00131AF4&REV_00, PCI\VEN_1AF4&DEV_1012
%VirtioSocket.DeviceDesc%=VirtioSocket_Device, PCI\VEN_14F4&DEV_1053&SUBSYS_11001AF4&REV_01, PCI\VEN_1AF4&DEV_1053

[VirtioSocket_Device.NT]
CopyFiles=Drivers_Dir,VirtioSocket_Lib_CopyFiles,VirtioSocket_Lib_CopyFiles.WOW64

[VirtioSocket_Device.NT.HW]
AddReg=VirtioSocket_AddReg

[VirtioSocket_AddReg]
HKR,Interrupt Management,,0x00000010
HKR,Interrupt Management\MessageSignaledInterruptProperties,,0x00000010
HKR,Interrupt Management\MessageSignaledInterruptProperties,MSISupported,0x00010001,1
HKR,Interrupt Management\MessageSignaledInterruptProperties,MessageNumberLimit,0x00010001,1

[Drivers_Dir]
viosock.sys

[VirtioSocket_Lib_CopyFiles]
viosocklib.dll,viosocklib_x64.dll,,0x00004000   ;  COPYFLG_IN_USE_TRY_RENAME
viosockwspsvc.exe

[VirtioSocket_Lib_CopyFiles.WOW64]
viosocklib.dll,viosocklib_x86.dll,,0x00004000   ;  COPYFLG_IN_USE_TRY_RENAME

;-------------- Service installation

[VirtioSocket_Device.NT.Services]
AddService = VirtioSocket, 0x00000002, VirtioSocket_Service_Inst
AddService = VirtioSocketWSP, 0x00000800, VirtioSockWSP_Service_Inst

; -------------- VirtioSocket driver install sections
[VirtioSocket_Service_Inst]
DisplayName    = %VirtioSocket.ServiceDesc%
ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
StartType      = 3               ; SERVICE_DEMAND_START
ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\viosock.sys

; -------------- WSP service install sections
[VirtioSockWSP_Service_Inst]
DisplayName    = %VirtioSockWSP.ServiceDesc%
ServiceType    = 0x10            ; SERVICE_WIN32_OWN_PROCESS
StartType      = 2               ; SERVICE_AUTO_START
ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
ServiceBinary  = %11%\viosockwspsvc.exe

;--- VirtioSocket_Device WDF ------
;

[VirtioSocket_Device.NT.Wdf]
KmdfService =  VirtioSocket, VirtioSocket_wdfsect

[VirtioSocket_wdfsect]
KmdfLibraryVersion = 1.15

[Strings]
VENDOR = "Red Hat, Inc."
DiskId1 = "VirtIO Socket Installation Disk #1"
VirtioSocket.DeviceDesc = "VirtIO Socket Driver"
VirtioSockWSP.ServiceDesc = "VirtIO Socket WSP Service"
VirtioSocket.ServiceDesc = "VirtIO Socket Service"
