다음을 통해 공유


새 기능 등록

시스템 레지스트리에 새 기능을 등록하기 위한 지원은 새 함수와 함께 새 DLL에 제공되어야 합니다. OID 지원 함수는 이 등록에 대한 지원을 제공합니다. Regsvr32.exe 새 함수를 등록합니다. 이 도구는 Windows에 포함되어 있습니다.

새 DLL은 Regsvr32.exe 사용할 DllRegisterServerDllUnregisterServer 진입점을 제공해야 합니다. 다음 예제와 같이 CryptRegisterOIDFunction 또는 CryptUnregisterOIDFunction과 같은 CryptoAPI 함수를 이러한 진입점 내에서 사용할 수 있습니다.

//  The DllRegisterServer Entry Point
STDAPI DllRegisterServer(void)
{
    if(!CryptRegisterOIDFunction(
         X509_ASN_ENCODING,                  // Encoding type
         CRYPT_OID_ENCODE_OBJECT_FUNC,       // Function name
         szOID_NEW_CERTIFICATE_TYPE,         // OID
         L"NewCert.dll",                     // Dll name
         L"NewCertificateTypeEncodeObject"   // Override function
         ))                                  //   name
       {
         return E_FAIL;
       }
    else
       {
         return S_OK;
       }
}

// The DllUnregisterServer Entry Point
STDAPI DllUnregisterServer(void)
{
    HRESULT     hr = S_OK;

    if(!CryptUnregisterOIDFunction(
          X509_ASN_ENCODING,             // Encoding type
          CRYPT_OID_ENCODE_OBJECT_FUNC,  // Function name
          szOID_NEW_CERTIFICATE_TYPE     // OID
          ))
    {
       if(ERROR_FILE_NOT_FOUND != GetLastError())
               hr = E_FAIL;
    }
    return hr;
}

이 예제를 컴파일하고 새 DLL에 연결해야 합니다. 함수 진입점과 함께 이러한 두 진입점을 내보내야 합니다.

컴퓨터에 새 기능을 설치하려면 명령 프롬프트에서 Regsvr32.exe 실행하여 새 DLL의 이름과 경로를 지정합니다. Regsvr32.exe DllRegisterServer 함수 진입점을 통해 CryptRegisterOIDFunction 함수에 액세스하고 새 함수 및 DLL을 등록합니다.