DWORD size;
};
+/* Align up to a DWORD_PTR boundary
+ */
+#define ALIGN_DWORD_PTR(x) (((x) + sizeof(DWORD_PTR) - 1) & ~(sizeof(DWORD_PTR) - 1))
+
/* Decodes the items in a sequence, where the items are described in items,
* the encoded data are in pbEncoded with length cbEncoded. Decodes into
* pvStructInfo. nextData is a pointer to the memory location at which the
if (ret)
{
/* Account for alignment padding */
- if (items[i].size % sizeof(DWORD))
- items[i].size += sizeof(DWORD) -
- items[i].size % sizeof(DWORD);
+ items[i].size = ALIGN_DWORD_PTR(items[i].size);
TRACE("item %d size: %d\n", i, items[i].size);
if (nextData && items[i].hasPointer &&
items[i].size > items[i].minSize)
return ret;
}
+HRESULT WINAPI DriverInitializePolicy(CRYPT_PROVIDER_DATA *data)
+{
+ FIXME("stub\n");
+ return S_OK;
+}
+
+HRESULT WINAPI DriverCleanupPolicy(CRYPT_PROVIDER_DATA *data)
+{
+ FIXME("stub\n");
+ return S_OK;
+}
+
+HRESULT WINAPI DriverFinalPolicy(CRYPT_PROVIDER_DATA *data)
+{
+ FIXME("stub\n");
+ return S_OK;
+}
+
/* Assumes data->pWintrustData->u.pFile exists. Makes sure a file handle is
* open for the file.
*/
@ stdcall CryptSIPVerifyIndirectData(ptr ptr)
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
-@ stub DriverCleanupPolicy
-@ stub DriverFinalPolicy
-@ stub DriverInitializePolicy
+@ stdcall DriverCleanupPolicy(ptr)
+@ stdcall DriverFinalPolicy(ptr)
+@ stdcall DriverInitializePolicy(ptr)
@ stub FindCertsByIssuer
@ stdcall GenericChainCertificateTrust(ptr)
@ stdcall GenericChainFinalProv(ptr)