雖然 Plug-Play 硬體 ID 通常應利用 HardwareId 服務物件原始碼中的屬性來指定,但有時服務物件廠商可能需要更多彈性。 例如,硬體 ID 需要在不重新分配整個服務物件組件的情況下更改。
為了支援這些情況,Microsoft Point of Service for .NET(POS for .NET)在 XML 檔案中指定硬體關聯。 這些 XML 檔案是從登錄檔鍵 HKEY_LOCAL_MACHINE/SOFTWARE/POSfor.NET/ControlConfigs 指定的目錄讀取的。 在建立可用服務物件與裝置清單時,處理 PosExplorer 該目錄中的每個檔案,並在可能的情況下將裝置關聯起來。 服務物件或應用程式都不需要額外操作。
Schema
即插即用設定檔必須以頂層節點 PointOfServiceConfig 開頭,並以 Version 屬性表示檔案的 XML 版本。
接著,可以有任意數量的 ServiceObject 子節點。 每個服務物件節點必須包含 Type 屬性 Name ,以表示 POS 裝置類型及服務物件名稱。 這兩個欄位會與可用的服務物件比對,以判斷哪些(若有的話)應與子節點 HardwareID 中指定的裝置相關聯。
ServiceObject 節點上也有一個可選屬性。 Override 若設定此屬性,XML 檔案中的裝置關聯會覆蓋組裝中所包含的關聯。
ServiceObject 節點包含名為 HardwareId 的子節點,這些子節點具有 From 和 To 屬性。 這些屬性的內容與 HardwareId 服務物件組合中屬性相同,並指定要與服務物件關聯的硬體 ID 範圍。
Example
範例展示了一個典型的 XML 即插即用設定檔。
<PointOfServiceConfig Version="1.0">
<ServiceObject Type="Msr" Name="ExampleMsr" Override="yes">
<HardwareId From="HID\Vid_0801&Pid_0002&Rev_0100"
To="HID\Vid_0801&Pid_0002&Rev_9999" />
</ServiceObject>
</PointOfServiceConfig>
硬體識別優先順序
若 OverrideServiceObject 節點的屬性被設定,則 XML 中指定的裝置關聯優先,服務物件上的任何 HardwareId 屬性都會被丟棄。
若 Override 屬性未設定,則 XML 與 HardwareID 均不具優先權。 相反地, PosExplorer 會將所有指定裝置的聯集與服務物件關聯起來。