Arquivos INF para Plug-Ins PSHED
Um plug-in PSHED é instalado por um arquivo inf (informações). Os arquivos INF para plug-ins PSHED contêm as seguintes seções de arquivo INF padrão:
Seção Cadeias de Caracteres INF
Na seção Modelos INF, o fornecedor da plataforma pode usar qualquer ID (identificador de hardware) para o plug-in PSHED. A ID de hardware é especificada usando a entrada hw-id na seção Modelos e pode ser uma ID de hardware no namespace acPI ou em outro namespace do dispositivo. O fornecedor também pode especificar uma ID compatível com um valor PNP0C33. Essa ID compatível é usada para definir para um dispositivo de erro de hardware compatível com a Microsoft. O fornecedor especifica a ID compatível usando a entrada compatible-id na seção Modelos .
O arquivo INF de um plug-in PSHED também deve incluir uma diretiva AddReg que faça referência a uma seção no arquivo que adiciona uma entrada à chavede plug-insPSHED\do controle\System\CurrentControlSet\ no registro. Essa entrada informa ao PSHED que o plug-in PSHED está instalado no sistema. Isso permite que o PSHED verifique se todos os plug-ins PSHED instalados são carregados com êxito sempre que o sistema é iniciado.
Por exemplo:
;
; Example PSHED plug-in INF file
;
[Version]
Signature = "$Windows NT$"
Class = System ; Specify appropriate Class
ClassGuid = {4d36e97d-e325-11ce-bfc1-08002be10318} ; Specify appropriate ClassGuid
Provider = %Msft%
CatalogFile = "ExamplePSHEDPlugin.cat"
DriverVer = 01/01/06,1.0
PnpLockdown = 1
[SourceDiskNames]
1 = %DiskName%
[SourceDiskFiles]
%FileName% = 1
[DestinationDirs]
ExamplePSHEDPlugin.DriverFiles = 13
[Manufacturer]
%Msft% = Microsoft,NTamd64
[Microsoft.NTamd64]
%DeviceDesc% = ExamplePSHEDPluginInstall,%DeviceId%
[ExamplePSHEDPluginInstall]
OptionDesc = %Description%
CopyFiles = ExamplePSHEDPlugin.DriverFiles
AddReg = ExamaplePSHEDPlugin.AddReg
[ExamplePSHEDPluginInstall.Services]
AddService = %ServiceName%,,ExamplePSHEDPlugin.Service
[ExamplePSHEDPlugin.DriverFiles]
%FileName%,,,0x00000040 ; COPYFLG_OVERWRITE_OLDER_ONLY
[ExamplePSHEDPlugin.AddReg]
HKLM,%PSHEDControlPath%,%ServiceName%,0x00000000,%FileName%
[ExamplePSHEDPlugin.Service]
DisplayName = %ServiceName%
Description = %ServiceDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %13%\%FileName%
[Strings]
%Msft% = "Microsoft Corporation"
%DiskName% = "Example PSHED Plug-In Installation Disk"
%FileName% = "ExamplePSHEDPlugin.sys"
%DeviceDesc% = "Example PSHED Plug-In Device"
%DeviceId% = "ACPI\PSHEDPI"
%Description% = "Example PSHED Plug-In"
%ServiceName% = "ExamplePSHEDPlugin"
%ServiceDesc% = "Example PSHED Plug-In"
%PSHEDControlPath% = "System\CurrentControlSet\Control\PSHED\Plugins"