Функция CryptGetOIDFunctionValue (wincrypt.h)
Функция CryptGetOIDFunctionValue запрашивает значение, связанное с OID. Запрос выполняется для определенного именованного значения, связанного с OID, именем функции и типом кодирования. Функция может возвращать тип запрашиваемого значения, само значение или и то, и другое.
Синтаксис
BOOL CryptGetOIDFunctionValue(
[in] DWORD dwEncodingType,
[in] LPCSTR pszFuncName,
[in] LPCSTR pszOID,
[in] LPCWSTR pwszValueName,
[out] DWORD *pdwValueType,
[out] BYTE *pbValueData,
[in, out] DWORD *pcbValueData
);
Параметры
[in] dwEncodingType
Указывает тип кодировки для сопоставления. В настоящее время используются только X509_ASN_ENCODING и PKCS_7_ASN_ENCODING; однако в будущем могут быть добавлены дополнительные типы кодирования. Чтобы сопоставить оба текущих типа кодирования, используйте X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pszFuncName
Указатель на строку, завершающуюся нулевым значением, которая содержит имя набора функций OID.
[in] pszOID
Если слово высокого порядка в OID не равно нулю, pszOID — это указатель на строку OID, завершаемую null, например "2.5.29.1", или строку ASCII , завершаемую null, например "file". Если высокоупорядоченное слово OID равно нулю, слово нижнего порядка указывает числовой идентификатор, который будет использоваться в качестве идентификатора объекта.
[in] pwszValueName
Указатель на строку Юникода, завершающуюся null, которая содержит имя запрашиваемого значения.
[out] pdwValueType
Указатель на переменную для получения типа значения. Тип, возвращаемый с помощью этого параметра, будет одним из следующих.
Значение | Значение |
---|---|
|
32-разрядное число. |
|
Строка Юникода, содержащая нерасширенные ссылки на переменные среды, такие как "%PATH%". Приложения должны убедиться, что строка содержит завершающий символ NULL, прежде чем использовать ее. Дополнительные сведения о том, когда строка не содержит завершающий символ NULL, см. в разделе RegQueryValueEx. |
|
Массив строк Юникода, заканчивающихся null. Приложения должны убедиться, что массив правильно завершается двумя символами NULL, прежде чем использовать его. Дополнительные сведения о том, когда массив не завершается двумя символами NULL, см. в разделе RegQueryValueEx. |
|
Строка Юникода. Приложения должны убедиться, что строка содержит завершающий символ NULL, прежде чем использовать ее. Дополнительные сведения о том, когда строка не содержит завершающий символ NULL, см. в разделе RegQueryValueEx. |
Параметр pdwValueType может иметь значение NULL , если возвращаемый тип не требуется.
[out] pbValueData
Указатель на буфер для получения значения, связанного с параметром pwszValueName . Буфер должен быть достаточно большим, чтобы содержать завершающий символ NULL . Этот параметр может иметь значение NULL , если возвращаемые данные не требуются.
Этот параметр также может иметь значение NULL , чтобы определить размер буфера для выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbValueData
Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает pbValueData.
В большинстве случаев значение, возвращаемое в *pcbValueData , включает размер завершающего символа NULL в строке. Сведения о ситуациях, когда символ NULL не включен, см. в разделе Примечания статьи RegQueryValueEx.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).
Если функция завершается сбоем, она возвращает ноль (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Эта функция имеет следующий код ошибки.
Значение | Описание |
---|---|
|
Если буфер, заданный параметром pbValueData , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbValueData. |
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |