Share via


SAFER_CODE_PROPERTIES_V2 구조체(winsafer.h)

SAFER_CODE_PROPERTIES 구조에는 코드 이미지에서 확인할 코드 이미지 정보와 조건이 포함됩니다. SAFER_CODE_PROPERTIES 구조체의 배열은 SaferIdentifyLevel 함수에 전달됩니다.

SAFER_CODE_PROPERTIES_V2 SAFER_CODE_PROPERTIES 재정의하며 Windows 스토어 앱 패키지에 대한 새 멤버를 포함하기 때문에 확장된 버전의 SAFER_CODE_PROPERTIES_V1 . 기존 이진 호출자는 cbSize 멤버를 확인하여 버전을 구분할 수 있습니다.

구문

typedef struct _SAFER_CODE_PROPERTIES_V2 {
  DWORD         cbSize;
  DWORD         dwCheckFlags;
  LPCWSTR       ImagePath;
  HANDLE        hImageFileHandle;
  DWORD         UrlZoneId;
  BYTE          ImageHash[SAFER_MAX_HASH_SIZE];
  DWORD         dwImageHashSize;
  LARGE_INTEGER ImageSize;
  ALG_ID        HashAlgorithm;
  LPBYTE        pByteBlock;
  HWND          hWndParent;
  DWORD         dwWVTUIChoice;
  LPCWSTR       PackageMoniker;
  LPCWSTR       PackagePublisher;
  LPCWSTR       PackageName;
  ULONG64       PackageVersion;
  BOOL          PackageIsFramework;
} SAFER_CODE_PROPERTIES_V2, *PSAFER_CODE_PROPERTIES_V2;

멤버

cbSize

이 구조체의 크기(바이트)입니다. 이는 향후 및 이전 버전과의 호환성을 위해 사용됩니다.

dwCheckFlags

이 구조를 평가할 때 고려되는 조건 유형입니다. 연결된 구조 요소의 일부 또는 전부가 제공되지 않으면 일부 플래그는 자동으로 무시될 수 있습니다. 이 매개 변수에 대해 0을 지정하면 전체 구조체의 내용이 무시됩니다.

다음 표에서는 가능한 값을 보여 줍니다. 이러한 값은 비트 OR 연산을 사용하여 결합할 수 있습니다.

의미
SAFER_CRITERIA_IMAGEPATH
0x00001
코드 이미지 경로를 확인합니다.
SAFER_CRITERIA_IMAGEHASH
0x00004
코드 해시를 확인합니다.
SAFER_CRITERIA_AUTHENTICODE
0x00008
Authenticode 서명을 확인합니다. 이 값을 사용하는 경우 hImageFileHandle 멤버 또는 ImagePath 멤버를 설정해야 합니다.
SAFER_CRITERIA_URLZONE
0x00010
원본의 URL을 확인합니다.
SAFER_CRITERIA_IMAGEPATH_NT
0x01000
Windows NT 이미지 경로를 확인합니다.
SAFER_CRITERIA_APPX_PACKAGE
0x00020
Windows 스토어 앱 패키지를 확인합니다. Windows 스토어 앱에서 사용할 수 있습니다.

ImagePath

경로에 따라 차별 검사에 사용할 정규화된 경로 및 파일 이름을 지정하는 문자열입니다. 이미지 경로는 파일을 열고 읽어 이 구조에 제공되지 않은 다른 차별 조건을 식별하는 데도 사용됩니다. 이 멤버는 NULL일 수 있습니다. 그러나 dwCheckFlags 멤버에 SAFER_CRITERIA_AUTHENTICODE 포함된 경우 이 멤버 또는 hImageFileHandle 멤버를 설정해야 합니다.

hImageFileHandle

GENERIC_READ 이상의 액세스 권한이 있는 코드 이미지에 대한 파일 핸들입니다. 핸들은 이 구조에 제공되지 않은 차별 조건을 계산하기 위해 파일을 명시적으로 다시 여는 대신 사용됩니다. 이 멤버는 NULL일 수 있습니다. 그러나 dwCheckFlagsSAFER_CRITERIA_AUTHENTICODE 포함된 경우 이 멤버 또는 ImagePath 멤버를 설정해야 합니다.

UrlZoneId

미리 결정된 인터넷 Explorer 보안 영역입니다. 다음 영역이 정의됩니다.

  • URLZONE_LOCAL_MACHINE
  • URLZONE_INTRANET
  • URLZONE_TRUSTED
  • URLZONE_INTERNET
  • URLZONE_UNTRUSTED
이 멤버는 0으로 설정할 수 있습니다.

ImageHash[SAFER_MAX_HASH_SIZE]

이미지의 미리 계산된 해시입니다. 제공된 해시는 ImageSize 멤버와 dwImageHashSize 멤버가 모두 0이 아니고 HashAlgorithm 멤버가 Wincrypt.h의 유효한 해시 알고리즘을 포함하는 경우 유효한 것으로 해석됩니다.

제공된 해시가 이러한 조건을 충족하지 못하면 해시는 다음을 통해 자동으로 다시 계산됩니다.

  • 둘 다 0이 아닌 경우 ImageSize 멤버 및 pByteBlock 멤버를 사용합니다.
  • NULL이 아닌 경우 hImageFileHandle 멤버를 사용하세요.
  • NULL이 아닌 경우 ImagePath 멤버를 열고 사용합니다.

dwImageHashSize

ImageHash 멤버의 크기(바이트)입니다.

ImageSize

pByteBlock 멤버의 크기(바이트)입니다. pByteBlock 멤버가 NULL인 경우 이 멤버는 사용되지 않습니다.

HashAlgorithm

ImageHash 멤버를 만드는 데 사용되는 해시 알고리즘입니다.

pByteBlock

검사 중인 코드의 이미지를 포함하는 메모리 블록입니다. 이 멤버는 선택 사항입니다. 이 멤버를 지정하면 ImageSize 멤버도 제공해야 합니다.

hWndParent

Authenticode 서명자 인증서 확인에 사용되는 인수입니다. 이러한 인수는 WinVerifyTrust 함수에 전달되고 사용자에게 위임된 인증서를 수락하거나 거부하라는 메시지를 표시하는 UI(사용자 인터페이스)를 제어합니다.

dwWVTUIChoice

사용된 UI 유형을 나타냅니다. 다음 표에서는 가능한 값을 보여 줍니다.

의미
WTD_UI_ALL
모든 UI를 표시합니다.
WTD_UI_NONE
UI를 표시하지 않습니다.
WTD_UI_NOBAD
오류가 없는 경우에만 UI를 표시합니다.
WTD_UI_NOGOOD
오류가 발생한 경우에만 UI를 표시합니다.

PackageMoniker

패키지 모니커 속성입니다. Windows 스토어 앱에서 사용할 수 있습니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 멤버를 사용할 수 없습니다.

PackagePublisher

패키지 게시자 속성입니다. Windows 스토어 앱에서 사용할 수 있습니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 멤버를 사용할 수 없습니다.

PackageName

패키지 이름 속성입니다. Windows 스토어 앱에서 사용할 수 있습니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 멤버를 사용할 수 없습니다.

PackageVersion

패키지 버전 속성입니다. Windows 스토어 앱에서 사용할 수 있습니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 멤버를 사용할 수 없습니다.

PackageIsFramework

패키지는 프레임워크 패키지입니다. Windows 스토어 앱에서 사용할 수 있습니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 멤버를 사용할 수 없습니다.

요구 사항

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