Freigeben über


Registrieren der neuen Funktionalität

Unterstützung für die Registrierung der neuen Funktionalität in einer Systemregistrierung muss in der neuen DLL zusammen mit der neuen Funktion bereitgestellt werden. OID-Supportfunktionen bieten Unterstützung bei dieser Registrierung. Regsvr32.exe registriert neue Funktionen. Dieses Tool ist in Windows enthalten.

Die neue DLL muss Die Einstiegspunkte DllRegisterServer und DllUnregisterServer für die Verwendung durch Regsvr32.exe bereitstellen. CryptoAPI-Funktionen wie CryptRegisterOIDFunction oder CryptUnregisterOIDFunction können in diesen Einstiegspunkten verwendet werden, wie im folgenden Beispiel gezeigt.

//  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;
}

Dieses Beispiel muss kompiliert und mit der neuen DLL verknüpft werden. Diese beiden Einstiegspunkte müssen zusammen mit dem Funktionseinstiegspunkt exportiert werden.

Um die neue Funktionalität auf einem Computer zu installieren, führen Sie Regsvr32.exe an einer Eingabeaufforderung aus, und geben Sie den Namen und Pfad der neuen DLL an. Regsvr32.exe greift über den Einstiegspunkt dllRegisterServer auf die CryptRegisterOIDFunction-Funktion zu und registriert die neue Funktion und dll.