Các chức năng ñược mô tả trong phần này thuộc về API ñược mô tả như là các chức năng cung cấp dịch vụ cho thành phần.
Trong mô hình khối DMIv1.x, ñiểm vào của hàm DmiInvoke() là một khối lệnh DMI. Hàm Dminvoke() ñược CI xây dựng gồm một khối lệnh và gọi hàm xử lý DmiProcess() ñể dịch các lệnh thành các thao thác Get và Set thích hợp. Thay vào ñó, CI hướng thủ tục bao gồm năm ñiểm vào chung (toàn cục) trong chương trình của thành phần. Các thủ tục này có thể ñược gọi trực tiếp từ Modul cung cấp dịch vụ.
Mã CISTR có thể ñăng ký với Modul cung cấp dịch vụ ñể ghi ñè lên cơ chế truy cập hiện tại. Thay vì thao tác với dữ liệu trong cơ sở dữ liệu MIF hoặc cách gọi chương trình, các Modul cung cấp dịch vụ sẽ gọi cho các ñiểm vào ñược cung cấp. Một khi các xóa ñăng ký (unregisters) thành phần, các DMI-SP sẽ quay lại "phương pháp thông thường" xử lý các yêu cầu các dữ liệu như ñịnh nghĩa trong MIF. Bằng cách này, CISTR có thể tạm thời làm gián ñoạn xử lý bình thường ñể thực hiện một số chức năng ñặc biệt. Lưu ý rằng việc ñăng ký thông qua giao diện trực tiếp sẽ ghi ñè lên các thuộc tính ñã ñược phục vụ thông qua giao diện trực tiếp.
2.2.2.1. Chức năng ñăng ký DMI (DmiRegisterCi)
Hàm gọi DmiRegisterCi() ñược sử dụng ñể ñăng ký một giao diện có thể gọi cho các thành phần có cài ñặt chương trình thường trú CISTR và/hoặc
lấy phiên bản của DMI-SP. DMI-SP của phiên bản DMIv2.0s có thực thi an ninh mở rộng, sẽ kiểm tra xem tiến trình gọi có ñủ thẩm quyền và Hàm gọi DmiRegisterCi() có ñược ghi ñè lên một ñăng ký của CISTR trước ñó không.
Thông số tên Hướng Mô tả
RegInfo (Thông tin ñăng ký) Handle(Xử lý) DmiSpecLevel ñặc tả cấp của DMI Vào Ra Ra
Cấu trúc dữ liệu có chứa các ðịnh danh thành phần, nhóm và thuộc tính, cũng như con trỏ các ñiểm vào của CISTR.
DMI-SP giao một giá trị handle (xử lý) duy nhất ñể xác ñịnh CISTR
Chuỗi chỉ phiên bản của DMI-SP.
Bảng 2.4 Chức năng ñăng ký DMI
2.2.2.2. Chức năng xóa ñăng ký DMI (DmiUnregisterCi)
Hàm gọi DmiUnregisterCi() thông báo với DMI-SP ñể loại bỏ một giao diện trực tiếp của CISTR từ bảng giao diện ñã ñăng ký tại DMI-SP. Hàm gọi hướng thủ tục này ñã ñược ñơn giản hóa so với mô hình của phiên bản DMIv1.
Hàm gọi này chỉ yêu cầu một tham số duy nhất: ñó là số handle (xử lý) mà CISTR ñã nhận tại thời ñiểm ñăng ký.
Thông số tên Hướng Mô tả
Handle (Xử lý) Vào handle (Xử lý) ñịnh danh duy nhất cho một CISTR
Bảng 2.5 Chức năng xóa ñăng ký DMI
2.2.2.3.Chức năng phát sinh sự kiện DMI (DmiOriginateEvent)
Hàm gọi này tạo ra một sự kiện rồi thực hiện lọc và cung cấp cho ứng dụng. Bất kỳ chỉ báo nào cần thiết lọc ñược thực hiện bởi chức năng này trước khi sự kiện ñược chuyển tiếp ñến các ứng dụng quản lý. Lưu ý thực hiện: giá trị compID là (0) có nghĩa rằng sự kiện ñã ñược tạo ra bởi một cái gì ñó không phải do một thành phần ñược cài ñặt.
2.2.3. Chức năng cung cấp bởi thành phần
2.2.3.1. Chức năng nhận thuộc tính (CiGetAttribute)
Hàm gọi này cho phép lấy giá trị của một thuộc tính hoặc nhiều thuộc tính trong một nhóm. Mặc dù lệnh DmiGetAttributes từ MI cho phép lấy thuộc tính của nhiều nhóm, nhà cung cấp dịch vụ DMI phải tuần tự hóa lệnh thành một chuỗi các hàm gọi cho từng nhóm ở cấp ñộ giao diện thành phần CI.
Chức năng này trả về một con trỏ ñến một ñối tượng dữ liệu thuộc tính DMI. ðối tượng này chứa ñịnh danh, chủng loại và con trỏ ñến giá trị của thuộc tính cần truy nhập. Các ñịnh danh thành phần, ñịnh danh nhóm, và ñịnh danh thuộc tính là các tham số của hàm gọi.
Nếu nhóm nào không phải là một bảng, thì trường danh sách khóa sẽ là một con trỏ NULL. Nếu nhóm là một bảng, trường danh sách khóa có thể ñược sử dụng. Nếu trường danh sách khóa ñược cung cấp thì giá trị thuộc tính từ hàng yêu cầu ñược trả lại. Nếu trường danh sách khóa không có thì các giá trị thuộc tính hàng ñầu tiên sẽ ñược trả lại.
2.2.3.2. Chức năng nhận thuộc tính tiếp theo (CiGetNextAttribute)
Chức năng này lấy các giá trị của thuộc tính kế tiếp ngay thuộc tính tham chiếu hiện tại. ðối tượng này chứa ñịnh danh, chủng loại và con trỏ ñến giá trị của thuộc tính ñứng sau thuộc tính tham chiếu. Các ñịnh danh thành phần, ñịnh danh nhóm và ñịnh danh thuộc tính… là các tham số của hàm gọi.
2.2.3.3. Chức năng thiết lập thuộc tính (CiSetAttribute)
Chức năng này ñược gọi ñể thiết lập các thuộc tính quy ñịnh với giá trị nhất ñịnh. Các ñịnh danh thành phần, ñịnh danh nhóm, và ñịnh danh thuộc tính… là các tham số của hàm gọi.
Nếu nhóm nào không phải là một bảng, thì trường danh sách khóa sẽ là một con trỏ NULL. Nếu nhóm là một bảng, trường danh sách khóa có thể ñược sử dụng. Nếu trường danh sách khóa ñược cung cấp thì giá trị thuộc tính trong hàng sẽ ñược thiết lập. Nếu trường danh sách khóa không có thì các giá trị thuộc tính hàng ñầu tiên sẽ ñược thiết lập.
2.2.3.4. Một số chức năng khác
- Hàm CiSetAttribute cho phép thiết lập, thay ñổi thuộc tính.
- Hàm CiReserveAttribute cho phép tra vấn xem một thuộc tính ñược thiết lập.
- Hàm CiReleaseAttribute cho phép giải phóng thuộc tính.