From: Doron Holan [MSFT] on
yes, you could write a KMDF bus driver that enumerated a PDO on which you
loaded a HID stack (you can use the KMDF HID sample in the latest WDK to see
how this would work). in this case the PDO would not be raw because you
would be loading hidclass on top of it

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"gti4ever" <gti4ever(a)discussions.microsoft.com> wrote in message
news:8F10B932-3508-4F25-8BAF-0338F8EE2DC5(a)microsoft.com...
> Thanks Doron, I found the problem in my code, it works ok now.
>
> If you don't mind, I'd like to ask you a design question. The driver that
> I
> was experimenting with is actually a virtual HID minidriver, that is why I
> need a raw PDO to send test data to it.
>
> I am just wondering, is it possible to create a regular UMDF + KMDF hybrid
> driver and use that KMDF driver to enumerate a raw PDO as a HID
> minidriver?
> Can this be done? I just want to get your opinion before I start implement
> it.
>
> Thanks.
>
> G.
>
>
>
>
>
> "Doron Holan [MSFT]" wrote:
>
>> look at the setup logs and see what went wrong. how did you try to
>> install
>> the FDO? with devcon or through the device manager UI?
>>
>> d
>>
>> --
>>
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>>
>
From: gti4ever on
Hi Doron,

I thought the problem went away but it turned out it only worked for Win 7.
Under XP, I am still getting the "cannot find the hardware device (0x41)"
error.

I used Devcon for the installation since it is a virtual driver. Here is
part of the log file that related to the raw PDO:

#I124 Doing copy-only install of
"{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [testDevice1.Inst.NT.Interfaces] from
"c:\windows\inf\oem37.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of
"{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01".
#I163 Device not started: Device has problem: 0x29:
CM_PROB_LEGACY_SERVICE_NO_DEVICES.
#I121 Device install of
"{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01" finished
successfully.

Is there a limitation on XP that prevent this from working?

Thanks.

G.


"Doron Holan [MSFT]" wrote:

> look at the setup logs and see what went wrong. how did you try to install
> the FDO? with devcon or through the device manager UI?
>
> d
>
> --

From: Abhishek R [MSFT] on
Could you post your INF file?

"gti4ever" <gti4ever(a)discussions.microsoft.com> wrote in message
news:8DACB208-1FA8-41CB-A15F-5303BCC12F88(a)microsoft.com...
> Hi Doron,
>
> I thought the problem went away but it turned out it only worked for Win
> 7.
> Under XP, I am still getting the "cannot find the hardware device (0x41)"
> error.
>
> I used Devcon for the installation since it is a virtual driver. Here is
> part of the log file that related to the raw PDO:
>
> #I124 Doing copy-only install of
> "{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01".
> #-166 Device install function: DIF_REGISTER_COINSTALLERS.
> #I056 Coinstallers registered.
> #-166 Device install function: DIF_INSTALLINTERFACES.
> #-011 Installing section [testDevice1.Inst.NT.Interfaces] from
> "c:\windows\inf\oem37.inf".
> #I054 Interfaces installed.
> #-166 Device install function: DIF_INSTALLDEVICE.
> #I123 Doing full install of
> "{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01".
> #I163 Device not started: Device has problem: 0x29:
> CM_PROB_LEGACY_SERVICE_NO_DEVICES.
> #I121 Device install of
> "{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01"
> finished
> successfully.
>
> Is there a limitation on XP that prevent this from working?
>
> Thanks.
>
> G.
>
>
> "Doron Holan [MSFT]" wrote:
>
>> look at the setup logs and see what went wrong. how did you try to
>> install
>> the FDO? with devcon or through the device manager UI?
>>
>> d
>>
>> --
>
From: gti4ever on
Abhishek,

Here is the INF file. It is basically a combination of WDK virtual HID mini
driver and UMDF filter driver INF files.


[Version]
Signature="$WINDOWS NT$"
Class=HIDClass
ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider=%VENDOR%
CatalogFile=test.cat
LayoutFile=Layout.inf
DriverVer=09/21/2009,6.1.7600.16385

;
; Layout.inf (etc.) list all files shipped with the operating system so the
; source description sections are only needed if other files are needed.
;
; In order to use IHV drivers, the SourceDisksNames section must list the
; disk(s) containing the drivers and the SourceDisksFiles section must list
; which disk number each file to be copied is found on.
; Disk number 99 is used to avoid a conflict with the disk numbers defined
; in layout.inf
;
; Files used in a driver installation need to be digitally signed otherwise
; installation may fail. See documentation elsewhere in the DDK regarding
; driver signing.

[SourceDisksNames.x86]
99 = %DISK_NAME%,,,\i386

[SourceDisksNames.amd64]
99 = %DISK_NAME%,,,\amd64

[SourceDisksFiles]
KMDFTest.sys = 99
hidkmdf.sys = 99
WdfCoInstaller01009.dll = 99

[DestinationDirs]
CopyFilesSYS = 12 ; should it be 10 to take care of 98 stuff??????
CopyFilesDLL = 11 ;
CopyFunctionDriver = 12 ;

[Manufacturer]
%VENDOR%=Vendor,NTx86,NTia64,NTAMD64,NTAMD64.6.1,NTx86.6.1

; For XP and later
[Vendor.NTx86]
%test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice

[Vendor.NTx86.6.1]
%test% = test.Inst.Win7, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice

[Vendor.NTia64]
%test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice

[Vendor.NTAMD64]
%test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice

[Vendor.NTAMD64.6.1]
%test% = test.Inst.Win7, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice

[ControlFlags]
ExcludeFromSelect = {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice

;--------------------------------------------
;Windows 7 only
;
;-------------------------------------------------
;[test.Inst.Win7]

[test.Inst.Win7.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL

[test.Inst.Win7.NT.HW]
AddReg = test_Win7_Parameters.AddReg

[test.Inst.Win7.NT.Services]
AddService = test,0x00000002,test_Service_Inst

[test_Win7_Parameters.AddReg]
HKR,,"UpperFilters",0x00010000,"mshidkmdf"

;===============================================================
; test install section till Windows Vista
;===============================================================

;[test.Inst]

[test.Inst.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL,CopyFunctionDriver

[test.Inst.NT.HW]
AddReg = test_Parameters.AddReg

[test.Inst.NT.Services]
AddService = test,0x00000002,test_Service_Inst,
AddService = hidkmdf,, HidShim_Service_Inst

[CopyFunctionDriver]
hidkmdf.sys

[test_Parameters.AddReg]
HKR,,"UpperFilters",0x00010000,"hidkmdf"

; -------------- devlower Driver install section
[HidShim_Service_Inst]
DisplayName = %HIDSHIM.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\hidkmdf.sys
LoadOrderGroup = PNP Filter




;---------------------------------------------------
;Common section
;----------------------------------------------------
[CopyFilesSYS]
KMDFTest.sys

[CopyFilesDLL]
WdfCoInstaller01009.dll


[test_Service_Inst]
DisplayName = %test%
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_DEMAND_START%
ErrorControl = %SERVICE_ERROR_IGNORE%
ServiceBinary = %12%\KMDFTest.sys


;===============================================================
; testDevice install section
; - Only a Null service is installed.
;===============================================================
[testDevice.Inst]

[testDevice.Inst.NT]

[testDevice.Inst.NT.Services]
AddService = ,0x00000002, ; NULL Service

;===============================================================
; testDevice install section
; - Only a Null service is installed.
;===============================================================
;[testDevice1.Inst]

[testDevice1.Inst.NT]
CopyFiles = UMDriverCopy

[testDevice1.Inst.NT.hw]
AddReg=testDevice1_AddReg

[testDevice1.Inst.NT.CoInstallers]
AddReg=CoInstaller_AddReg
CopyFiles=CoInstaller_CopyFiles

[testDevice1.Inst.NT.Services]
AddService = WUDFRd,,WUDFRD_ServiceInstall

[testDevice1.Inst.NT.Wdf]
UmdfService="UMDFTest", UMDFTest_Install
UmdfServiceOrder=UMDFTest

[UMDriverCopy]
UMDFTest.dll

[testDevice1_AddReg]
HKR,,"UpperFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ |
FLG_ADDREG_APPEND

[WUDFRD_ServiceInstall]
DisplayName = %WudfRdDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base

[UMDFTest_Install]
UmdfLibraryVersion=1.9.0
DriverCLSID = "{6247DF9B-6C7B-4aee-9935-DB7CA478BCDD}"
ServiceBinary = "%12%\UMDF\UMDFTest.dll"

[DestinationDirs]
UMDriverCopy=12,UMDF ; copy to drivers\umdf

[SourceDisksFiles]
WdfCoInstaller01009.dll = 99
WudfUpdate_01009.dll = 99
UMDFTest.dll = 99

[CoInstaller_CopyFiles]
WdfCoInstaller01009.dll
WudfUpdate_01009.dll

[CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01009.dll"

;================================================================
;--- WDF Coinstaller installation ------
;
[DestinationDirs]
test.Inst_CoInstaller_CopyFiles = 11

[test.Inst.NT.CoInstallers]
AddReg=test.Inst_CoInstaller_AddReg
CopyFiles=test.Inst_CoInstaller_CopyFiles

[test.Inst_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01009.dll,WdfCoInstaller"

[test.Inst_CoInstaller_CopyFiles]
wdfcoinstaller01009.dll

[SourceDisksFiles]
wdfcoinstaller01009.dll=99 ; make sure the number matches with
SourceDisksNames

[test.Inst.NT.Wdf]
KmdfService = test, test_wdfsect

[test_wdfsect]
KmdfLibraryVersion = 1.9



[Strings]
; *******Localizable Strings*******
VENDOR = "Microsoft"
test = "test virtual HID device"
testDevice = "test Virtual HID Device"
testDevice1 = "test Virtual HID Device raw PDO"
DISK_NAME = "test HID Device Install Disk"
HIDSHIM.SVCDESC= "Service for HID-KMDF Shim layer"
WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework
Reflector"

; *******Non Localizable Strings*******

SERVICE_BOOT_START = 0x0
SERVICE_SYSTEM_START = 0x1
SERVICE_AUTO_START = 0x2
SERVICE_DEMAND_START = 0x3
SERVICE_DISABLED = 0x4

SERVICE_KERNEL_DRIVER = 0x1
SERVICE_ERROR_IGNORE = 0x0
SERVICE_ERROR_NORMAL = 0x1
SERVICE_ERROR_SEVERE = 0x2
SERVICE_ERROR_CRITICAL = 0x3

REG_EXPAND_SZ = 0x00020000
REG_DWORD = 0x00010001
REG_MULTI_SZ = 0x00010000
REG_BINARY = 0x00000001
REG_SZ = 0x00000000



From: Abhishek R [MSFT] on
Try installing specifying your UMDF driver as the function driver for the
device. I.e. specify the 0x2 flag in the following AddService directive.

> [testDevice1.Inst.NT.Services]
> AddService = WUDFRd,,WUDFRD_ServiceInstall


"gti4ever" <gti4ever(a)discussions.microsoft.com> wrote in message
news:7F7520CF-767E-4FD1-9BBF-996CFDE4BC41(a)microsoft.com...
> Abhishek,
>
> Here is the INF file. It is basically a combination of WDK virtual HID
> mini
> driver and UMDF filter driver INF files.
>
>
> [Version]
> Signature="$WINDOWS NT$"
> Class=HIDClass
> ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
> Provider=%VENDOR%
> CatalogFile=test.cat
> LayoutFile=Layout.inf
> DriverVer=09/21/2009,6.1.7600.16385
>
> ;
> ; Layout.inf (etc.) list all files shipped with the operating system so
> the
> ; source description sections are only needed if other files are needed.
> ;
> ; In order to use IHV drivers, the SourceDisksNames section must list
> the
> ; disk(s) containing the drivers and the SourceDisksFiles section must
> list
> ; which disk number each file to be copied is found on.
> ; Disk number 99 is used to avoid a conflict with the disk numbers
> defined
> ; in layout.inf
> ;
> ; Files used in a driver installation need to be digitally signed
> otherwise
> ; installation may fail. See documentation elsewhere in the DDK
> regarding
> ; driver signing.
>
> [SourceDisksNames.x86]
> 99 = %DISK_NAME%,,,\i386
>
> [SourceDisksNames.amd64]
> 99 = %DISK_NAME%,,,\amd64
>
> [SourceDisksFiles]
> KMDFTest.sys = 99
> hidkmdf.sys = 99
> WdfCoInstaller01009.dll = 99
>
> [DestinationDirs]
> CopyFilesSYS = 12 ; should it be 10 to take care of 98 stuff??????
> CopyFilesDLL = 11 ;
> CopyFunctionDriver = 12 ;
>
> [Manufacturer]
> %VENDOR%=Vendor,NTx86,NTia64,NTAMD64,NTAMD64.6.1,NTx86.6.1
>
> ; For XP and later
> [Vendor.NTx86]
> %test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
> %testDevice% = testDevice.Inst, HID\testVirtualDevice
> %testDevice1% = testDevice1.Inst,
> {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
>
> [Vendor.NTx86.6.1]
> %test% = test.Inst.Win7,
> {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
> %testDevice% = testDevice.Inst, HID\testVirtualDevice
> %testDevice1% = testDevice1.Inst,
> {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
>
> [Vendor.NTia64]
> %test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
> %testDevice% = testDevice.Inst, HID\testVirtualDevice
> %testDevice1% = testDevice1.Inst,
> {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
>
> [Vendor.NTAMD64]
> %test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
> %testDevice% = testDevice.Inst, HID\testVirtualDevice
> %testDevice1% = testDevice1.Inst,
> {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
>
> [Vendor.NTAMD64.6.1]
> %test% = test.Inst.Win7,
> {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
> %testDevice% = testDevice.Inst, HID\testVirtualDevice
> %testDevice1% = testDevice1.Inst,
> {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
>
> [ControlFlags]
> ExcludeFromSelect = {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
>
> ;--------------------------------------------
> ;Windows 7 only
> ;
> ;-------------------------------------------------
> ;[test.Inst.Win7]
>
> [test.Inst.Win7.NT]
> CopyFiles = CopyFilesSYS, CopyFilesDLL
>
> [test.Inst.Win7.NT.HW]
> AddReg = test_Win7_Parameters.AddReg
>
> [test.Inst.Win7.NT.Services]
> AddService = test,0x00000002,test_Service_Inst
>
> [test_Win7_Parameters.AddReg]
> HKR,,"UpperFilters",0x00010000,"mshidkmdf"
>
> ;===============================================================
> ; test install section till Windows Vista
> ;===============================================================
>
> ;[test.Inst]
>
> [test.Inst.NT]
> CopyFiles = CopyFilesSYS, CopyFilesDLL,CopyFunctionDriver
>
> [test.Inst.NT.HW]
> AddReg = test_Parameters.AddReg
>
> [test.Inst.NT.Services]
> AddService = test,0x00000002,test_Service_Inst,
> AddService = hidkmdf,, HidShim_Service_Inst
>
> [CopyFunctionDriver]
> hidkmdf.sys
>
> [test_Parameters.AddReg]
> HKR,,"UpperFilters",0x00010000,"hidkmdf"
>
> ; -------------- devlower Driver install section
> [HidShim_Service_Inst]
> DisplayName = %HIDSHIM.SVCDESC%
> ServiceType = 1 ; SERVICE_KERNEL_DRIVER
> StartType = 3 ; SERVICE_DEMAND_START
> ErrorControl = 1 ; SERVICE_ERROR_NORMAL
> ServiceBinary = %12%\hidkmdf.sys
> LoadOrderGroup = PNP Filter
>
>
>
>
> ;---------------------------------------------------
> ;Common section
> ;----------------------------------------------------
> [CopyFilesSYS]
> KMDFTest.sys
>
> [CopyFilesDLL]
> WdfCoInstaller01009.dll
>
>
> [test_Service_Inst]
> DisplayName = %test%
> ServiceType = %SERVICE_KERNEL_DRIVER%
> StartType = %SERVICE_DEMAND_START%
> ErrorControl = %SERVICE_ERROR_IGNORE%
> ServiceBinary = %12%\KMDFTest.sys
>
>
> ;===============================================================
> ; testDevice install section
> ; - Only a Null service is installed.
> ;===============================================================
> [testDevice.Inst]
>
> [testDevice.Inst.NT]
>
> [testDevice.Inst.NT.Services]
> AddService = ,0x00000002, ; NULL Service
>
> ;===============================================================
> ; testDevice install section
> ; - Only a Null service is installed.
> ;===============================================================
> ;[testDevice1.Inst]
>
> [testDevice1.Inst.NT]
> CopyFiles = UMDriverCopy
>
> [testDevice1.Inst.NT.hw]
> AddReg=testDevice1_AddReg
>
> [testDevice1.Inst.NT.CoInstallers]
> AddReg=CoInstaller_AddReg
> CopyFiles=CoInstaller_CopyFiles
>
> [testDevice1.Inst.NT.Services]
> AddService = WUDFRd,,WUDFRD_ServiceInstall
>
> [testDevice1.Inst.NT.Wdf]
> UmdfService="UMDFTest", UMDFTest_Install
> UmdfServiceOrder=UMDFTest
>
> [UMDriverCopy]
> UMDFTest.dll
>
> [testDevice1_AddReg]
> HKR,,"UpperFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ |
> FLG_ADDREG_APPEND
>
> [WUDFRD_ServiceInstall]
> DisplayName = %WudfRdDisplayName%
> ServiceType = 1
> StartType = 3
> ErrorControl = 1
> ServiceBinary = %12%\WUDFRd.sys
> LoadOrderGroup = Base
>
> [UMDFTest_Install]
> UmdfLibraryVersion=1.9.0
> DriverCLSID = "{6247DF9B-6C7B-4aee-9935-DB7CA478BCDD}"
> ServiceBinary = "%12%\UMDF\UMDFTest.dll"
>
> [DestinationDirs]
> UMDriverCopy=12,UMDF ; copy to drivers\umdf
>
> [SourceDisksFiles]
> WdfCoInstaller01009.dll = 99
> WudfUpdate_01009.dll = 99
> UMDFTest.dll = 99
>
> [CoInstaller_CopyFiles]
> WdfCoInstaller01009.dll
> WudfUpdate_01009.dll
>
> [CoInstaller_AddReg]
> HKR,,CoInstallers32,0x00010000,"WudfUpdate_01009.dll"
>
> ;================================================================
> ;--- WDF Coinstaller installation ------
> ;
> [DestinationDirs]
> test.Inst_CoInstaller_CopyFiles = 11
>
> [test.Inst.NT.CoInstallers]
> AddReg=test.Inst_CoInstaller_AddReg
> CopyFiles=test.Inst_CoInstaller_CopyFiles
>
> [test.Inst_CoInstaller_AddReg]
> HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01009.dll,WdfCoInstaller"
>
> [test.Inst_CoInstaller_CopyFiles]
> wdfcoinstaller01009.dll
>
> [SourceDisksFiles]
> wdfcoinstaller01009.dll=99 ; make sure the number matches with
> SourceDisksNames
>
> [test.Inst.NT.Wdf]
> KmdfService = test, test_wdfsect
>
> [test_wdfsect]
> KmdfLibraryVersion = 1.9
>
>
>
> [Strings]
> ; *******Localizable Strings*******
> VENDOR = "Microsoft"
> test = "test virtual HID device"
> testDevice = "test Virtual HID Device"
> testDevice1 = "test Virtual HID Device raw PDO"
> DISK_NAME = "test HID Device Install Disk"
> HIDSHIM.SVCDESC= "Service for HID-KMDF Shim layer"
> WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework
> Reflector"
>
> ; *******Non Localizable Strings*******
>
> SERVICE_BOOT_START = 0x0
> SERVICE_SYSTEM_START = 0x1
> SERVICE_AUTO_START = 0x2
> SERVICE_DEMAND_START = 0x3
> SERVICE_DISABLED = 0x4
>
> SERVICE_KERNEL_DRIVER = 0x1
> SERVICE_ERROR_IGNORE = 0x0
> SERVICE_ERROR_NORMAL = 0x1
> SERVICE_ERROR_SEVERE = 0x2
> SERVICE_ERROR_CRITICAL = 0x3
>
> REG_EXPAND_SZ = 0x00020000
> REG_DWORD = 0x00010001
> REG_MULTI_SZ = 0x00010000
> REG_BINARY = 0x00000001
> REG_SZ = 0x00000000
>
>
>