Win32 API:IBackgroundCopyJob 接口(Bits.h)
IBackgroundCopyJob 接口是与 Windows Background Intelligent Transfer Service (BITS) 相关的 Win32 API 接口之一,用于创建和管理 BITS 作业。以下是关于 IBackgroundCopyJob 接口的一些基本信息:interface IBackgroundCopyJob : public IUnknown{public: virtual HRESULT STDMETHODCALLTYPE AddFile( /* [in] */ LPCWSTR RemoteUrl, /* [in] */ LPCWSTR LocalName) = 0; virtual HRESULT STDMETHODCALLTYPE AddFiles( /* [in] */ ULONG cFileCount, /* [size_is][in] */ BG_FILE_INFO* pFileArray) = 0; virtual HRESULT STDMETHODCA...
Win32 API:IBackgroundCopyFile 接口(Bits.h)
IBackgroundCopyFile 接口是与 Windows Background Intelligent Transfer Service (BITS) 相关的 Win32 API 接口之一,用于操作 BITS 作业中的文件。以下是关于 IBackgroundCopyFile 接口的一些基本信息:interface IBackgroundCopyFile : public IUnknown{public: virtual HRESULT STDMETHODCALLTYPE GetRemoteName( /* [out] */ LPWSTR* pVal) = 0; virtual HRESULT STDMETHODCALLTYPE GetLocalName( /* [out] */ LPWSTR* pVal) = 0; virtual HRESULT STDMETHODCALLTYPE GetProgress( /* [out] */ BG_FILE_PROGRESS* pVal) = 0;};这个接口继承自 IUnkno...
Win32 API:IBackgroundCopyError 接口(Bits.h)
IBackgroundCopyError 接口是与 Windows Background Intelligent Transfer Service (BITS) 相关的 Win32 API 接口之一,用于处理 BITS 作业中的错误信息。以下是关于 IBackgroundCopyError 接口的一些基本信息:interface IBackgroundCopyError : public IUnknown{public: virtual HRESULT STDMETHODCALLTYPE GetError( /* [out] */ BG_ERROR_CONTEXT* pContext, /* [out] */ HRESULT* pCode) = 0; virtual HRESULT STDMETHODCALLTYPE GetFile( /* [out] */ LPWSTR* pVal) = 0; virtual HRESULT STDMETHODCALLTYPE GetErrorDescription( /* [...
Win32 API:IBackgroundCopyCallback 接口(Bits.h)
IBackgroundCopyCallback 接口是与 Windows Background Intelligent Transfer Service (BITS) 相关的 Win32 API 接口之一。BITS 是一种用于在后台传输文件的技术,通常用于在后台下载或上传大文件、软件更新等。以下是关于 IBackgroundCopyCallback 接口的一些基本信息:interface IBackgroundCopyCallback : public IUnknown{public: virtual HRESULT STDMETHODCALLTYPE JobTransferred( /* [in] */ IBackgroundCopyJob* pJob) = 0; virtual HRESULT STDMETHODCALLTYPE JobError( /* [in] */ IBackgroundCopyJob* pJob, /* [in] */ IBackgroundCopyError* pError) = 0; virtu...
Win32 API:BG_JOB_TYPE 枚举(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,BG_JOB_TYPE 枚举用于指定 BITS 任务(Job)的类型。以下是 BG_JOB_TYPE 枚举的定义:typedef enum _BG_JOB_TYPE { BG_JOB_TYPE_DOWNLOAD, BG_JOB_TYPE_UPLOAD, BG_JOB_TYPE_UPLOAD_REPLY} BG_JOB_TYPE;这个枚举包含了以下几个成员: BG_JOB_TYPE_DOWNLOAD: 下载任务。 BG_JOB_TYPE_UPLOAD: 上传任务。 BG_JOB_TYPE_UPLOAD_REPLY: 上传回复任务。通过查询 BITS 任务的类型,可以了解任务是下载任务、上传任务还是上传回复任务。
Win32 API:BG_JOB_STATE 枚举(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,BG_JOB_STATE 枚举用于指定 BITS 任务(Job)的状态。以下是 BG_JOB_STATE 枚举的定义:typedef enum _BG_JOB_STATE { BG_JOB_STATE_QUEUED, BG_JOB_STATE_CONNECTING, BG_JOB_STATE_TRANSFERRING, BG_JOB_STATE_SUSPENDED, BG_JOB_STATE_ERROR, BG_JOB_STATE_TRANSIENT_ERROR, BG_JOB_STATE_TRANSFERRED, BG_JOB_STATE_ACKNOWLEDGED} BG_JOB_STATE;这个枚举包含了以下几个成员: BG_JOB_STATE_QUEUED: 任务在队列中等待执行。 BG_JOB_STATE_CONNECTING: 任务正在连接到服务器。 BG_JOB_STATE_TRANSFERRING: 任务正在传输数据。 BG_JOB_STATE...
Win32 API:BG_JOB_PROXY_USAGE 枚举(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,BG_JOB_PROXY_USAGE 枚举用于指定 BITS 任务(Job)是否使用代理服务器。以下是 BG_JOB_PROXY_USAGE 枚举的定义:typedef enum _BG_JOB_PROXY_USAGE { BG_JOB_PROXY_USAGE_PRECONFIG, BG_JOB_PROXY_USAGE_NO_PROXY, BG_JOB_PROXY_USAGE_OVERRIDE} BG_JOB_PROXY_USAGE;这个枚举包含了以下成员: BG_JOB_PROXY_USAGE_PRECONFIG: 使用系统预配置的代理设置。 BG_JOB_PROXY_USAGE_NO_PROXY: 不使用代理。 BG_JOB_PROXY_USAGE_OVERRIDE: 使用 BITS 任务自定义的代理设置。通过设置 BITS 任务的代理使用方式,可以控制 BITS 在进行下载或上传操作时是否使用代理服务器,以及如何使用代理服务器。
Win32 API:BG_JOB_PRIORITY 枚举(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,确实存在名为 BG_JOB_PRIORITY 的枚举,用于指定 BITS 任务(Job)的优先级。以下是 BG_JOB_PRIORITY 枚举的定义:typedef enum _BG_JOB_PRIORITY { BG_JOB_PRIORITY_FOREGROUND, BG_JOB_PRIORITY_HIGH, BG_JOB_PRIORITY_NORMAL, BG_JOB_PRIORITY_LOW} BG_JOB_PRIORITY;这个枚举包含了以下几个成员: BG_JOB_PRIORITY_FOREGROUND: 任务处于前台,具有最高优先级。 BG_JOB_PRIORITY_HIGH: 高优先级。 BG_JOB_PRIORITY_NORMAL: 普通优先级。 BG_JOB_PRIORITY_LOW: 低优先级。通过设置 BITS 任务的优先级,可以影响 BITS 服务对任务的调度和资源分配。
Win32 API:BG_JOB_PROGRESS 结构(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,BG_JOB_PROGRESS 结构用于描述 BITS 任务(Job)的进度。以下是 BG_JOB_PROGRESS 结构的定义:typedef struct _BG_JOB_PROGRESS { ULONGLONG BytesTotal; ULONGLONG BytesTransferred; ULONG FilesTotal; ULONG FilesTransferred;} BG_JOB_PROGRESS;这个结构包含了以下成员: BytesTotal: 所有文件的总字节数,以 ULONGLONG 类型表示。 BytesTransferred: 已传输的字节数,以 ULONGLONG 类型表示。 FilesTotal: 所有文件的总数量,以 ULONG 类型表示。 FilesTransferred: 已传输的文件数量,以 ULONG 类型表示。BG_JOB_PROGRESS 结构通常用于获取 BITS 任务的当前状态,包括任务中所有文件的传输进...
Win32 API:BG_FILE_PROGRESS 结构(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,BG_FILE_PROGRESS 结构用于描述文件传输的进度。以下是 BG_FILE_PROGRESS 结构的定义:typedef struct _BG_FILE_PROGRESS { ULONGLONG BytesTotal; ULONGLONG BytesTransferred;} BG_FILE_PROGRESS;这个结构包含两个成员: BytesTotal: 文件的总字节数,以 ULONGLONG 类型表示。 BytesTransferred: 已传输的字节数,同样以 ULONGLONG 类型表示。这个结构通常用于 BITS 任务的状态信息中,以提供关于文件传输进度的详细信息。
Win32 API:BG_FILE_INFO 结构(Bits.h)
在 BITS (Background Intelligent Transfer Service) 的 API 中,BG_FILE_INFO 结构用于描述文件的信息。这个结构在 Bits.h 头文件中定义。以下是 BG_FILE_INFO 结构的定义:typedef struct _BG_FILE_INFO { ULONGLONG FileSize; LPWSTR FileModificationTime; LPWSTR httpLastModifiedTime; BG_FILE_PROGRESS BytesTransferred;} BG_FILE_INFO;这个结构包含以下成员: FileSize: 文件的大小,以字节为单位,表示为 ULONGLONG 类型。 FileModificationTime: 字符串形式的文件修改时间。这是一个 Unicode 字符串,可以通过 LPWSTR 类型访问。通常采用格式如 "Wed, 29 Apr 2020 0...
Win32 API:BCRYPT_MULTI_OPERATION_TYPE 枚举(Bcrypt.h)
在 Bcrypt.h 头文件中,BCRYPT_MULTI_OPERATION_TYPE 枚举定义了多操作对象的类型。以下是该枚举的定义:typedef enum _BCRYPT_MULTI_OPERATION_TYPE { BCRYPT_OPERATION_TYPE_HASH, BCRYPT_OPERATION_TYPE_CIPHER, BCRYPT_OPERATION_TYPE_ASYMMETRIC_ENCRYPTION, BCRYPT_OPERATION_TYPE_SECRET_AGREEMENT, BCRYPT_OPERATION_TYPE_SIGNATURE} BCRYPT_MULTI_OPERATION_TYPE;这个枚举包含了以下几个成员: BCRYPT_OPERATION_TYPE_HASH: 表示多操作对象是用于哈希操作。 BCRYPT_OPERATION_TYPE_CIPHER: 表示多操作对象是用于对称加密操作。 BCRYPT_OPERATION_TYPE_ASYMMETRIC_ENCRYPTION: 表示多操作对象是用于非对称加密操作。 BCRYPT_O...
Win32 API:BCRYPT_HASH_OPERATION_TYPE 枚举(Bcrypt.h)
在 Bcrypt.h 头文件中,BCRYPT_HASH_OPERATION_TYPE 枚举定义了哈希操作的类型。以下是该枚举的定义:typedef enum _BCRYPT_HASH_OPERATION_TYPE { BCRYPT_HASH_OPERATION_HASH_DATA, BCRYPT_HASH_OPERATION_FINISH_HASH, BCRYPT_HASH_OPERATION_RESET_HASH} BCRYPT_HASH_OPERATION_TYPE;这个枚举包含以下几个成员: BCRYPT_HASH_OPERATION_HASH_DATA: 表示哈希操作是对输入数据进行哈希计算。 BCRYPT_HASH_OPERATION_FINISH_HASH: 表示哈希操作是完成哈希计算。 BCRYPT_HASH_OPERATION_RESET_HASH: 表示哈希操作是重置哈希计算的状态,使其返回到初始状态。这些枚举成员主要用于在使用 Windows Cryptography API 时指定哈希操作的类型。例如,你可以在调用 BCryptHashData 函数时使用 ...
Win32 API:CRYPT_PROVIDER_REF 结构(Bcrypt.h)
在 Win32 API 中,CRYPT_PROVIDER_REF 结构体实际上是在 Bcrypt.h 头文件中定义的,而不是在 WinCrypt.h 头文件中。可能存在一些误导。在 Bcrypt.h 头文件中,CRYPT_PROVIDER_REF 结构体定义如下:typedef struct _CRYPT_PROVIDER_REF { ULONG cbStruct; GUID guidProvider; ULONG cProviderRef; LPWSTR *rgProviderRef;} CRYPT_PROVIDER_REF, *PCRYPT_PROVIDER_REF;这个结构体的成员含义如下: cbStruct: 结构体的大小,以字节为单位。 guidProvider: 与提供者相关的 GUID。 cProviderRef: 与提供者关联的提供者引用的数量。 rgProviderRef: 包含提供者引用的数组,每个引用是一个字符串指针。这个结构体主要用于提供者引用的管理,提供者引用是一种用于标识和检索加密算法提供者的机制。通过这个结构体,可以获取与某个加密算法提供者...
Win32 API:BCryptBufferDesc 结构(Bcrypt.h)
BCryptBufferDesc 结构是 Windows Cryptography API (CNG) 中的一个结构体,用于描述一组缓冲区及其属性。以下是 BCryptBufferDesc 结构的定义:typedef struct _BCryptBufferDesc { ULONG ulVersion; ULONG cBuffers; PBCryptBuffer pBuffers;} BCRYPT_BUFFER_DESC, *PBCRYPT_BUFFER_DESC;结构中的字段含义如下: ulVersion: 结构的版本号,目前为 BCRYPTBUFFER_VERSION。 cBuffers: 缓冲区数组中的缓冲区数量。 pBuffers: 指向 BCryptBuffer 数组的指针,每个元素描述一个缓冲区及其属性。BCryptBuffer 结构用于描述单个缓冲区,其定义如下:typedef struct _BCryptBuffer { ULONG cbBuffer; ULONG BufferType; PVOID pvBuffer;} BCRYPT_BUFFER, *PB...
Win32 API:BCryptBuffer 结构(Bcrypt.h)
BCryptBuffer 结构是 Windows Cryptography API (CNG) 中的一个结构体,通常用于在函数调用中传递缓冲区参数。以下是 BCryptBuffer 结构的定义:typedef struct _BCryptBuffer { ULONG cbBuffer; ULONG BufferType; PVOID pvBuffer;} BCRYPT_BUFFER, *PBCRYPT_BUFFER;结构中的字段含义如下: cbBuffer: 缓冲区的大小,以字节为单位。 BufferType: 指定缓冲区的类型,表示缓冲区的用途。可以是以下值之一: - BCRYPT_CIPHER_DATA:表示缓冲区包含密码算法的数据。 - BCRYPT_PUBLIC_KEY_DATA:表示缓冲区包含公钥的数据。 - BCRYPT_PRIVATE_KEY_DATA:表示缓冲区包含私钥的数据。 - BCRYPT_RSAFULLPRIVATE_BLOB:表示缓冲区包含完整的 RSA 私钥 BLOB 数据。 pvBuffer: 指向缓冲区的指针。这个结构通常用于向...
Win32 API:BCRYPT_RSAKEY_BLOB 结构(Bcrypt.h)
在 Windows Cryptography API (CNG) 中,BCRYPT_RSAKEY_BLOB 结构体并不是一个直接存在的结构。然而,可以使用 BCryptExportKey 函数来导出 RSA 密钥的 Blob 数据,该 Blob 数据的格式通常是一种特定的结构,包含了 RSA 密钥的相关信息。以下是一个通常与 RSA 密钥导出相关的结构体的例子:typedef struct _BCRYPT_RSAKEY_BLOB { ULONG Magic; ULONG BitLength; ULONG cbPublicExp; ULONG cbModulus; ULONG cbPrime1; ULONG cbPrime2;} BCRYPT_RSAKEY_BLOB, *PBCRYPT_RSAKEY_BLOB;这个结构中的字段含义如下: Magic: 用于指示密钥类型的标志,通常是 BCRYPT_RSAPRIVATE_MAGIC 或 BCRYPT_RSAPUBLIC_MAGIC。 BitLength: RSA 密钥的位长度。 cbPublicExp: 公共指数的字节长度。...
Win32 API:BCRYPT_PSS_PADDING_INFO 结构(Bcrypt.h)
BCRYPT_PSS_PADDING_INFO 结构是 Windows Cryptography API (CNG) 中的一个结构体,用于指定 PSS(Probabilistic Signature Scheme)填充算法的参数。以下是 BCRYPT_PSS_PADDING_INFO 结构的定义:typedef struct _BCRYPT_PSS_PADDING_INFO { LPCWSTR pszAlgId; ULONG cbSalt;} BCRYPT_PSS_PADDING_INFO, *PBCRYPT_PSS_PADDING_INFO;结构中的字段含义如下: pszAlgId: 字符串,指定要使用的哈希算法的标识符。这通常是一个符合 CNG 算法标识符的字符串,例如,BCRYPT_SHA256_ALGORITHM 表示 SHA-256 算法。 cbSalt: 表示 PSS 填充中的盐(salt)的长度,以字节为单位。这个结构通常与签名或验证签名的函数一起使用,以指定 PSS 填充的参数。例如,BCryptSignHash 和 BCryptVerifySignature ...
Win32 API:BCRYPT_PKCS1_PADDING_INFO 结构(Bcrypt.h)
BCRYPT_PKCS1_PADDING_INFO 结构是 Windows Cryptography API (CNG) 中的一个结构体,用于指定 PKCS#1 标准中定义的填充信息。以下是 BCRYPT_PKCS1_PADDING_INFO 结构的定义:typedef struct _BCRYPT_PKCS1_PADDING_INFO { LPCWSTR pszAlgId;} BCRYPT_PKCS1_PADDING_INFO, *PBCRYPT_PKCS1_PADDING_INFO;结构中的字段含义如下: pszAlgId: 字符串,指定要使用的哈希算法的标识符。这通常是一个符合 CNG 算法标识符的字符串,例如,BCRYPT_SHA256_ALGORITHM 表示 SHA-256 算法。这个结构通常与加密或解密函数一起使用,以指定 PKCS#1 填充的参数。例如,BCryptEncrypt 和 BCryptDecrypt 函数可以使用这个结构作为其参数之一,以指定 PKCS#1 填充的算法和参数。以下是一个示例代码片段,演示如何使用 BCRYPT_PKCS1_PADDING_I...
Win32 API:BCRYPT_OID_LIST 结构(Bcrypt.h)
BCRYPT_OID_LIST 结构是 Windows Cryptography API (CNG) 中的一个结构体,用于表示对象标识符(OID)的列表。以下是 BCRYPT_OID_LIST 结构的定义:typedef struct _BCRYPT_OID_LIST { ULONG dwOIDCount; LPWSTR *pwszOID;} BCRYPT_OID_LIST, *PBCRYPT_OID_LIST;结构中的字段含义如下: dwOIDCount: 表示在 pwszOID 数组中的 OID 数目。 pwszOID: 指向一个指针数组,每个指针指向一个以 NULL 结尾的字符串,表示一个对象标识符。这个结构通常用于获取支持的算法或提供程序的 OID 列表。例如,可以使用 BCryptEnumAlgorithms 函数来检索支持的算法列表,并返回一个 BCRYPT_OID_LIST 结构,其中包含支持的算法的 OID。以下是一个示例代码片段,演示如何使用 BCRYPT_OID_LIST 结构:BCRYPT_OID_LIST *pOidList;NTSTATUS status ...