다음을 통해 공유


WINTRUST_DATA 구조체(wintrust.h)

[ WINTRUST_DATA 구조는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다.]

WINTRUST_DATA 구조는 WinVerifyTrust를 호출하여 필요한 정보를 트러스트 공급자에 전달할 때 사용됩니다.

구문

typedef struct _WINTRUST_DATA {
  DWORD                               cbStruct;
  LPVOID                              pPolicyCallbackData;
  LPVOID                              pSIPClientData;
  DWORD                               dwUIChoice;
  DWORD                               fdwRevocationChecks;
  DWORD                               dwUnionChoice;
  union {
#if ...
    WINTRUST_FILE_INFO_                *pFile;
#else
    struct WINTRUST_FILE_INFO_         *pFile;
#endif
#if ...
    WINTRUST_CATALOG_INFO_             *pCatalog;
#else
    struct WINTRUST_CATALOG_INFO_      *pCatalog;
#endif
#if ...
    WINTRUST_BLOB_INFO_                *pBlob;
#else
    struct WINTRUST_BLOB_INFO_         *pBlob;
#endif
#if ...
    WINTRUST_SGNR_INFO_                *pSgnr;
#else
    struct WINTRUST_SGNR_INFO_         *pSgnr;
#endif
#if ...
    WINTRUST_CERT_INFO_                *pCert;
#else
    struct WINTRUST_CERT_INFO_         *pCert;
#endif
#if ...
    WINTRUST_DETACHED_SIG_INFO_        *pDetachedSig;
#else
    struct WINTRUST_DETACHED_SIG_INFO_ *pDetachedSig;
#endif
  };
  DWORD                               dwStateAction;
  HANDLE                              hWVTStateData;
  WCHAR                               *pwszURLReference;
  DWORD                               dwProvFlags;
  DWORD                               dwUIContext;
  struct WINTRUST_SIGNATURE_SETTINGS_ *pSignatureSettings;
} WINTRUST_DATA, *PWINTRUST_DATA;

멤버

cbStruct

이 구조체의 크기(바이트)입니다.

pPolicyCallbackData

정책별 데이터를 정책 공급자에 전달하는 데 사용되는 데이터 버퍼에 대한 포인터입니다. 이 멤버는 NULL일 수 있습니다.

pSIPClientData

SIP( 주체 인터페이스 패키지 ) 관련 데이터를 SIP 공급자에 전달하는 데 사용되는 데이터 버퍼에 대한 포인터입니다. 이 멤버는 NULL일 수 있습니다.

dwUIChoice

사용할 UI(사용자 인터페이스)의 종류를 지정합니다. 이 멤버는 다음 값 중 하나여야 합니다.

의미
WTD_UI_ALL
1
모든 UI를 표시합니다.
WTD_UI_NONE
2
UI를 표시하지 않습니다.
WTD_UI_NOBAD
3
음수 UI를 표시하지 마세요.
WTD_UI_NOGOOD
4
양수 UI를 표시하지 마세요.

fdwRevocationChecks

인증서 해지 검사 옵션. 이 멤버는 선택한 정책 공급자가 수행한 에 해지 확인을 추가하도록 설정할 수 있습니다. 이 멤버는 다음 값 중 하나여야 합니다.

의미
WTD_REVOKE_NONE
0
winVerifyTrust 함수의 pgActionID 매개 변수에 설정된 HTTPSPROV_ACTION 값과 함께 WTD_REVOKE_NONE 플래그를 사용하는 경우 추가 해지 검사가 수행되지 않습니다. 코드 서명을 확인할 때 WinVerifyTrust 함수가 네트워크 검색을 시도하지 않도록 하려면 dwProvFlags 매개 변수에서 WTD_CACHE_ONLY_URL_RETRIEVAL 설정해야 합니다.
WTD_REVOKE_WHOLECHAIN
1
해지 검사는 전체 체인에서 수행됩니다.

dwUnionChoice

사용할 공용 구조체 멤버를 지정하므로 트러스트를 확인할 개체의 형식입니다. 이 멤버는 다음 값 중 하나여야 합니다.

의미
WTD_CHOICE_FILE
1
pFile에서 가리키는 파일을 사용합니다.
WTD_CHOICE_CATALOG
2
pCatalog에서 가리키는 카탈로그를 사용합니다.
WTD_CHOICE_BLOB
3
pBlob에서 가리키는 BLOB을 사용합니다.
WTD_CHOICE_SIGNER
4
pSgnr에서 가리키는 [WINTRUST_SGNR_INFO](/windows/desktop/api/wintrust/ns-wintrust-wintrust_sgnr_info) 구조를 사용합니다.
WTD_CHOICE_CERT
5
pCert가 가리키는 인증서를 사용합니다.

pFile

WINTRUST_FILE_INFO 구조체에 대한 포인터입니다.

pCatalog

WINTRUST_CATALOG_INFO 구조체에 대한 포인터입니다.

pBlob

WINTRUST_BLOB_INFO 구조체에 대한 포인터입니다.

pSgnr

WINTRUST_SGNR_INFO 구조체에 대한 포인터입니다.

pCert

WINTRUST_CERT_INFO 구조체에 대한 포인터입니다.

pDetachedSig

dwStateAction

수행할 작업을 지정합니다. 다음 값 중 하나일 수 있습니다.

의미
WTD_STATEACTION_IGNORE
0x00000000
hWVTStateData 멤버를 무시합니다.
WTD_STATEACTION_VERIFY
0x00000001
dwUnionChoice 멤버가 지정한 개체(일반적으로 파일)의 트러스트를 확인합니다. hWVTStateData 멤버는 상태 데이터에 대한 핸들을 받습니다. 이 핸들은 후속 호출에서 WTD_STATEACTION_CLOSE 작업을 지정하여 해제해야 합니다.
WTD_STATEACTION_CLOSE
0x00000002
이전에 WTD_STATEACTION_VERIFY 작업으로 할당된 hWVTStateData 멤버를 해제합니다. 이 작업은 WTD_STATEACTION_VERIFY 작업을 사용할 때마다 지정해야 합니다.
WTD_STATEACTION_AUTO_CACHE
0x00000003
카탈로그 데이터를 WINTRUST_DATA 구조에 쓴 다음 해당 구조를 캐시합니다. 이 작업은 dwUnionChoice 멤버에 WTD_CHOICE_CATALOG 포함된 경우에만 적용됩니다.
WTD_STATEACTION_AUTO_CACHE_FLUSH
0x00000004
캐시된 카탈로그 데이터를 플러시합니다. 이 작업은 dwUnionChoice 멤버에 WTD_CHOICE_CATALOG 포함된 경우에만 적용됩니다.

hWVTStateData

상태 데이터에 대한 핸들입니다. 이 멤버의 내용은 dwStateAction 멤버의 값에 따라 달라집니다.

pwszURLReference

다음에 사용하도록 예약됩니다. NULL로 설정합니다.

dwProvFlags

신뢰 공급자 설정을 지정하는 DWORD 값입니다. 다음 값 중 0개 이상의 비트 조합일 수 있습니다.

의미
WTD_USE_IE4_TRUST_FLAG
1(0x1)
신뢰는 인터넷 Explorer 4.0에서 구현하는 것과 동일한 방식으로 확인됩니다.
WTD_NO_IE4_CHAIN_FLAG
2(0x2)
인터넷 Explorer 4.0 체인 기능은 사용되지 않습니다.
WTD_NO_POLICY_USAGE_FLAG
4(0x4)
Authenticode에 대한 코드 서명과 같은 정책 공급자의 기본 확인은 수행되지 않으며 인증서는 모든 사용에 유효한 것으로 간주됩니다.
WTD_REVOCATION_CHECK_NONE
16(0x10)
해지 확인이 수행되지 않습니다.
WTD_REVOCATION_CHECK_END_CERT
32(0x20)
해지 검사는 최종 인증서에서만 수행됩니다.
WTD_REVOCATION_CHECK_CHAIN
64(0x40)
해지 검사는 전체 인증서 체인에서 수행됩니다.
WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
128(0x80)
해지 검사는 루트 인증서를 제외한 전체 인증서 체인에서 수행됩니다.
WTD_SAFER_FLAG
256 (0x100)
지원되지 않습니다.
WTD_HASH_ONLY_FLAG
512 (0x200)
해시만 확인됩니다.
WTD_USE_DEFAULT_OSVER_CHECK
1024 (0x400)
기본 운영 체제 버전 검사가 수행됩니다. 이 플래그는 카탈로그 서명된 파일을 확인하는 데만 사용됩니다.
WTD_LIFETIME_SIGNING_FLAG
2048 (0x800)
이 플래그를 설정하지 않으면 타임스탬프를 찍은 모든 서명이 영원히 유효한 것으로 간주됩니다. 이 플래그를 설정하면 서명의 유효한 수명이 서명 인증서의 수명으로 제한됩니다. 이렇게 하면 타임스탬프를 적용한 서명이 만료됩니다.
WTD_CACHE_ONLY_URL_RETRIEVAL
4096 (0x1000)
해지 검사에 로컬 캐시만 사용합니다. 네트워크를 통해 해지 검사를 방지합니다.

Windows XP: 이 값은 지원되지 않습니다.

WTD_DISABLE_MD2_MD4
8192 (0x2000)
MD2 및 MD4 해시 알고리즘 사용을 사용하지 않도록 설정합니다. MD2 또는 MD4를 사용하여 파일에 서명하고 이 플래그가 설정된 경우 NTE_BAD_ALGID 오류가 반환됩니다.
참고 이 플래그는 WINDOWS 7 SP1 이상 운영 체제에서 지원됩니다.
 
WTD_MOTW
16384 (0x4000)
이 플래그를 지정하면 확인 중인 파일이 웹에서 다운로드되었으며 웹의 Mark 특성이 있다고 가정합니다. 웹 파일 표시에 적용하려는 정책이 적용됩니다.
참고 이 플래그는 Windows 8.1 이상 운영 체제 또는 KB2862966 설치한 시스템에서 지원됩니다.
 

dwUIContext

WinVerifyTrust 함수의 사용자 인터페이스 컨텍스트를 지정하는 DWORD 값입니다. 이렇게 하면 Authenticode 대화 상자의 텍스트가 파일에서 수행한 작업과 일치합니다. 다음 값 중 하나일 수 있습니다.

의미
WTD_UICONTEXT_EXECUTE
0
실행할 파일에 대해 WinVerifyTrust 를 호출할 때 사용합니다. 이것은 기본값입니다.
WTD_UICONTEXT_INSTALL
1
설치할 파일에 대해 WinVerifyTrust 를 호출할 때 사용합니다.

pSignatureSettings

WINTRUST_SIGNATURE_SETTINGS 구조체에 대한 포인터입니다.

Windows 8 및 Windows Server 2012: 이 멤버에 대한 지원이 시작됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 wintrust.h