This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/winefs.h

200 lines
6.2 KiB
C

/*
* winefs.h Win32 Encryption File System (EFS) functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef __WINEFS_H__
#define __WINEFS_H__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Algorithm identifier data type */
#if (NTDDI_VERSION >= 0x05010000)
#ifndef ALGIDDEF
#define ALGIDDEF
typedef unsigned int ALG_ID;
#endif
#endif
/* Maximum SID size */
#if (NTDDI_VERSION >= 0x05000000)
#define MAX_SID_SIZE 256
#endif
/* EFS access types */
#if (NTDDI_VERSION >= 0x06000000)
#define EFS_METADATA_ADD_USER 0x00000001L
#define EFS_METADATA_REMOVE_USER 0x00000002L
#define EFS_METADATA_REPLACE_USER 0x00000004L
#define EFS_METADATA_GENERAL_OP 0x00000008L
#endif
/* Certificate blob */
#if (NTDDI_VERSION >= 0x05000000)
typedef struct _CERTIFICATE_BLOB {
DWORD dwCertEncodingType;
DWORD cbData;
PBYTE pbData;
} EFS_CERTIFICATE_BLOB;
typedef EFS_CERTIFICATE_BLOB *PEFS_CERTIFICATE_BLOB;
#endif
/* EFS hash blob */
#if (NTDDI_VERSION >= 0x05000000)
typedef struct _EFS_HASH_BLOB {
DWORD cbData;
PBYTE pbData;
} EFS_HASH_BLOB;
typedef EFS_HASH_BLOB *PEFS_HASH_BLOB;
#endif
/* EFS RPC blob */
#if (NTDDI_VERSION >= 0x05010000)
typedef struct _EFS_RPC_BLOB {
DWORD cbData;
PBYTE pbData;
} EFS_RPC_BLOB;
typedef EFS_RPC_BLOB *PEFS_RPC_BLOB;
#endif
/* EFS pin blob */
#if (NTDDI_VERSION >= 0x06000000)
typedef struct _EFS_PIN_BLOB {
DWORD cbPadding;
DWORD cbData;
PBYTE pbData;
} EFS_PIN_BLOB;
typedef EFS_PIN_BLOB *PEFS_PIN_BLOB;
#endif
/* EFS key information */
#if (NTDDI_VERSION >= 0x05010000)
typedef struct _EFS_KEY_INFO {
DWORD dwVersion;
ULONG Entropy;
ALG_ID Algorithm;
ULONG KeyLength;
} EFS_KEY_INFO;
typedef EFS_KEY_INFO *PEFS_KEY_INFO;
#endif
/* EFS compatibility information */
#if (NTDDI_VERSION >= 0x06010000)
typedef struct _EFS_COMPATIBILITY_INFO {
DWORD EfsVersion;
} EFS_COMPATIBILITY_INFO;
typedef EFS_COMPATIBILITY_INFO *PEFS_COMPATIBILITY_INFO;
#endif
/* EFS decryption status information */
#if (NTDDI_VERSION >= 0x06000000)
typedef struct _EFS_DECRYPTION_STATUS_INFO {
DWORD dwDecryptionError;
DWORD dwHashOffset;
DWORD cbHash;
} EFS_DECRYPTION_STATUS_INFO;
typedef EFS_DECRYPTION_STATUS_INFO *PEFS_DECRYPTION_STATUS_INFO;
#endif
/* EFS encryption status information */
#if (NTDDI_VERSION >= 0x06000000)
typedef struct _EFS_ENCRYPTION_STATUS_INFO {
BOOL fHasCurrentKey;
DWORD dwEncryptionError;
} EFS_ENCRYPTION_STATUS_INFO;
typedef EFS_ENCRYPTION_STATUS_INFO *PEFS_ENCRYPTION_STATUS_INFO;
#endif
/* Encryption certificate */
#if (NTDDI_VERSION >= 0x05000000)
typedef struct _ENCRYPTION_CERTIFICATE {
DWORD cbTotalLength;
SID *pUserSid;
PEFS_CERTIFICATE_BLOB pCertBlob;
} ENCRYPTION_CERTIFICATE;
typedef ENCRYPTION_CERTIFICATE *PENCRYPTION_CERTIFICATE;
#endif
/* Encryption certificate hash */
#if (NTDDI_VERSION >= 0x05000000)
typedef struct _ENCRYPTION_CERTIFICATE_HASH {
DWORD cbTotalLength;
SID *pUserSid;
PEFS_HASH_BLOB pHash;
LPWSTR lpDisplayInformation;
} ENCRYPTION_CERTIFICATE_HASH;
typedef ENCRYPTION_CERTIFICATE_HASH *PENCRYPTION_CERTIFICATE_HASH;
#endif
/* Encryption certificate hash list */
#if (NTDDI_VERSION >= 0x05000000)
typedef struct _ENCRYPTION_CERTIFICATE_HASH_LIST {
DWORD nCert_Hash;
PENCRYPTION_CERTIFICATE_HASH *pUsers;
} ENCRYPTION_CERTIFICATE_HASH_LIST;
typedef ENCRYPTION_CERTIFICATE_HASH_LIST *PENCRYPTION_CERTIFICATE_HASH_LIST;
#endif
/* Encryption certificate list */
#if (NTDDI_VERSION >= 0x05000000)
typedef struct _ENCRYPTION_CERTIFICATE_LIST {
DWORD nUsers;
PENCRYPTION_CERTIFICATE *pUsers;
} ENCRYPTION_CERTIFICATE_LIST;
typedef ENCRYPTION_CERTIFICATE_LIST *PENCRYPTION_CERTIFICATE_LIST;
#endif
/* Encrypted file metadata signature */
#if (NTDDI_VERSION >= 0x06000000)
typedef struct _ENCRYPTED_FILE_METADATA_SIGNATURE {
DWORD dwEfsAccessType;
PENCRYPTION_CERTIFICATE_HASH_LIST pCertificatesAdded;
PENCRYPTION_CERTIFICATE pEncryptionCertificate;
PEFS_RPC_BLOB pEfsStreamSignature;
} ENCRYPTED_FILE_METADATA_SIGNATURE;
typedef ENCRYPTED_FILE_METADATA_SIGNATURE *PENCRYPTED_FILE_METADATA_SIGNATURE;
#endif
/* Functions in ADVAPI32.DLL */
#if (NTDDI_VERSION >= 0x05000000)
WINADVAPI DWORD WINAPI AddUsersToEncryptedFile( LPCWSTR, PENCRYPTION_CERTIFICATE_LIST );
WINADVAPI BOOL WINAPI EncryptionDisable( LPCWSTR, BOOL );
WINADVAPI VOID WINAPI FreeEncryptionCertificateHashList( PENCRYPTION_CERTIFICATE_HASH_LIST );
WINADVAPI DWORD WINAPI QueryRecoveryAgentsOnEncryptedFile( LPCWSTR, PENCRYPTION_CERTIFICATE_HASH_LIST * );
WINADVAPI DWORD WINAPI QueryUsersOnEncryptedFile( LPCWSTR, PENCRYPTION_CERTIFICATE_HASH_LIST * );
WINADVAPI DWORD WINAPI RemoveUsersFromEncryptedFile( LPCWSTR, PENCRYPTION_CERTIFICATE_HASH_LIST );
WINADVAPI DWORD WINAPI SetUserFileEncryptionKey( PENCRYPTION_CERTIFICATE );
#endif
#if (NTDDI_VERSION >= 0x50200000)
WINADVAPI DWORD WINAPI DuplicateEncryptionInfoFile( LPCWSTR, LPCWSTR, DWORD, DWORD, CONST LPSECURITY_ATTRIBUTES );
#elif (NTDDI_VERSION >= 0x05010000)
WINADVAPI DWORD WINAPI DuplicateEncryptionInfoFile( LPCWSTR, LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES );
#endif
#if (NTDDI_VERSION >= 0x06000000)
WINADVAPI VOID WINAPI FreeEncryptedFileMetadata( PBYTE );
WINADVAPI DWORD WINAPI GetEncryptedFileMetadata( LPCWSTR, PDWORD, PBYTE * );
WINADVAPI DWORD WINAPI SetEncryptedFileMetadata( LPCWSTR, PBYTE, PBYTE, PENCRYPTION_CERTIFICATE_HASH, DWORD, PENCRYPTION_CERTIFICATE_HASH_LIST );
WINADVAPI DWORD WINAPI SetUserFileEncryptionKeyEx( PENCRYPTION_CERTIFICATE, DWORD, DWORD, LPVOID );
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __WINEFS_H__ */