공급자 프레임워크 유틸리티 클래스

[현재 최종 상태로 간주되는 WMI 공급자 프레임워크의 일부인 WMI C++ 클래스로, 이러한 라이브러리에 영향을 미치는 보안과 관련되지 않은 문제에 대해서는 더 이상 개발, 개선 또는 업데이트가 이루어지지 않습니다. 모든 새로운 개발에서는 MI API를 사용해야 합니다.]

공급자 프레임워크 라이브러리 Framedyd.dll(디버그 버전) 및 Framedyn.dll(릴리스 버전)은 여러 공급자 도우미 클래스를 구현합니다. Framedyn.dll의 일부 함수가 헤더 파일에서 제거되었습니다. 이러한 함수를 계속 사용하려면 Fwcommon.h를 포함하기 전에 코드에 #define FRAMEWORK_ALLOW_DEPRECATED를 추가합니다.

더 이상 필요하지 않은 개별 공급자를 언로드할 수 있습니다.

이 기능을 사용하려면 MainDll.cpp에서 공급자에 대해 다음 세 가지 변경을 수행해야 합니다.

  • CWbemProviderGlue::FrameworkLoginDLL을 호출하는 함수 DllMain에서 long에 대한 포인터인 두 번째 매개 변수를 추가해야 합니다.
  • CWbemProviderGlue::FrameworkLogoffDLL을 호출하는 함수 DllCanUnloadNow에서 long에 대한 포인터인 두 번째 매개 변수를 추가해야 합니다.
  • CWbemGlueFactory의 인스턴스를 만드는 함수 DllGetClassObject에서 long에 대한 포인터인 매개 변수를 추가해야 합니다.

세 경우 모두 long에 대한 포인터는 동일한 포인터여야 합니다.

참고

Maindll.cpp에서 DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServerDllMain 루틴은 try/catch 블록에 래핑되어야 합니다.

 

주의

공급자 디버그는 Framedyd.dll 대해 Framedyd.lib와의 링크를 빌드합니다. Framedyd.dll은 시스템 경로에 포함되지 않은 Microsoft Windows SDK(소프트웨어 개발 키트) \bin 디렉터리에 있습니다. Windows Management 서비스를 사용하여 공급자의 디버그 빌드를 테스트하면 Framedyd.dll 또는 그 종속성 중 하나가 없어 프레임워크 공급자가 로드되지 않습니다. 따라서 Windows SDK \bin 디렉터리에서 \system32\wbem 디렉터리로 Framedyd.dll을 복사하거나 Windows SDK \bin 디렉터리를 시스템 검색 경로에 추가해야 합니다.

 

다음 표에는 공급자 프레임워크 유틸리티 클래스가 나열되어 있습니다.

유틸리티 클래스 설명
CHString WMI에 대한 문자열 비교 및 조작 함수를 제공합니다.
CHStringArray CHString의 배열을 만들고 조작하기 위해 포함됩니다.
TRefPointerCollection 포인터용 컨테이너 클래스에 대한 액세스 권한을 부여합니다.
WBEMTime 다양한 Windows 및 ANSI C 런타임 시간 형식 간의 변환을 용이하게 합니다.
WBEMTimeSpan WBEMTime 개체 간의 시간 범위 차이를 계산하고 유지하는 데 사용되는 도우미 함수를 포함합니다.

 

참고

CHStringCHStringArray 클래스는 MFC(Microsoft Foundation Classes) CStringCStringArray와 유사합니다. WMI 버전이 있어 개발자가 MFC에 액세스하지 않고도 문자열 조작 및 비교 메서드에 액세스할 수 있습니다. WBEMTimeWBEMTimeSpan 클래스도 MFC CTimeCTimeSpan 클래스와 유사합니다. WMI 버전은 시간을 나노초 단위로 정확하게 저장할 수 있으며 BSTR로 변환할 수도 있습니다. CString, CStringArray, CTime 및 CTimeSpan 클래스에 대한 자세한 내용은 MSDN의 Microsoft Foundation 클래스를 참조하세요 .

 

WBEMTime 메서드에서 반환된 BSTR 값은 날짜 및 시간 형식("yyyymmddHHMMSS.mmmmmmsUUU") 입니다.

WBEMTimeSpan 메서드에서 반환된 BSTR 값은 격 형식("ddddddddHHMMSS.mmmmmm:000")입니다.

시간 및 시간 범위는 내부적으로 나노초로 저장되지만 반드시 나노초 정확도로 저장되는 것은 아닙니다. 그 이유는 WBEMTime 개체는 초(구조체 tmtime_t)에 정확한 시간 형식을 사용하여 생성할 수 있기 때문입니다. 인공 소수 자릿수를 추가해도 정확도가 높아지지는 않습니다.