Поделиться через


Функция 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

Указатель на переменную для получения типа значения. Тип, возвращаемый с помощью этого параметра, будет одним из следующих.

Значение Значение
REG_DWORD
32-разрядное число.
REG_EXPAND_SZ
Строка Юникода, содержащая нерасширенные ссылки на переменные среды, такие как "%PATH%". Приложения должны убедиться, что строка содержит завершающий символ NULL, прежде чем использовать ее. Дополнительные сведения о том, когда строка не содержит завершающий символ NULL, см. в разделе RegQueryValueEx.
REG_MULTI_SZ
Массив строк Юникода, заканчивающихся null. Приложения должны убедиться, что массив правильно завершается двумя символами NULL, прежде чем использовать его. Дополнительные сведения о том, когда массив не завершается двумя символами NULL, см. в разделе RegQueryValueEx.
REG_SZ
Строка Юникода. Приложения должны убедиться, что строка содержит завершающий символ NULL, прежде чем использовать ее. Дополнительные сведения о том, когда строка не содержит завершающий символ NULL, см. в разделе RegQueryValueEx.
 

Параметр pdwValueType может иметь значение NULL , если возвращаемый тип не требуется.

[out] pbValueData

Указатель на буфер для получения значения, связанного с параметром pwszValueName . Буфер должен быть достаточно большим, чтобы содержать завершающий символ NULL . Этот параметр может иметь значение NULL , если возвращаемые данные не требуются.

Этот параметр также может иметь значение NULL , чтобы определить размер буфера для выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

[in, out] pcbValueData

Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает pbValueData.

В большинстве случаев значение, возвращаемое в *pcbValueData , включает размер завершающего символа NULL в строке. Сведения о ситуациях, когда символ NULL не включен, см. в разделе Примечания статьи RegQueryValueEx.

Примечание При обработке данных, возвращаемых в буфере, приложения должны использовать фактический размер возвращаемых данных. Фактический размер может быть немного меньше размера буфера, указанного на входных данных. (На входных данных размеры буфера обычно указываются достаточно большими, чтобы убедиться, что в буфере помещаются самые большие выходные данные.) В выходных данных переменная, на которую указывает этот параметр, обновляется с учетом фактического размера данных, скопированных в буфер.
 

Возвращаемое значение

Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается сбоем, она возвращает ноль (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Эта функция имеет следующий код ошибки.

Значение Описание
ERROR_MORE_DATA
Если буфер, заданный параметром pbValueData , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbValueData.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

Функции поддержки OID