| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef __WINEFS_H__ |
| #define __WINEFS_H__ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef ALGIDDEF |
| #define ALGIDDEF |
| typedef unsigned int ALG_ID; |
| #endif |
| |
| typedef struct _CERTIFICATE_BLOB { |
| DWORD dwCertEncodingType; |
| DWORD cbData; |
| PBYTE pbData; |
| } EFS_CERTIFICATE_BLOB,*PEFS_CERTIFICATE_BLOB; |
| |
| typedef struct _EFS_HASH_BLOB { |
| DWORD cbData; |
| PBYTE pbData; |
| } EFS_HASH_BLOB,*PEFS_HASH_BLOB; |
| |
| typedef struct _EFS_RPC_BLOB { |
| DWORD cbData; |
| PBYTE pbData; |
| } EFS_RPC_BLOB,*PEFS_RPC_BLOB; |
| |
| typedef struct _EFS_KEY_INFO { |
| DWORD dwVersion; |
| ULONG Entropy; |
| ALG_ID Algorithm; |
| ULONG KeyLength; |
| } EFS_KEY_INFO,*PEFS_KEY_INFO; |
| |
| typedef struct _ENCRYPTION_CERTIFICATE { |
| DWORD cbTotalLength; |
| SID *pUserSid; |
| PEFS_CERTIFICATE_BLOB pCertBlob; |
| } ENCRYPTION_CERTIFICATE,*PENCRYPTION_CERTIFICATE; |
| |
| #define MAX_SID_SIZE 256 |
| |
| typedef struct _ENCRYPTION_CERTIFICATE_HASH { |
| DWORD cbTotalLength; |
| SID *pUserSid; |
| PEFS_HASH_BLOB pHash; |
| LPWSTR lpDisplayInformation; |
| } ENCRYPTION_CERTIFICATE_HASH,*PENCRYPTION_CERTIFICATE_HASH; |
| |
| typedef struct _ENCRYPTION_CERTIFICATE_HASH_LIST { |
| DWORD nCert_Hash; |
| PENCRYPTION_CERTIFICATE_HASH *pUsers; |
| } ENCRYPTION_CERTIFICATE_HASH_LIST,*PENCRYPTION_CERTIFICATE_HASH_LIST; |
| |
| typedef struct _ENCRYPTION_CERTIFICATE_LIST { |
| DWORD nUsers; |
| PENCRYPTION_CERTIFICATE *pUsers; |
| } ENCRYPTION_CERTIFICATE_LIST,*PENCRYPTION_CERTIFICATE_LIST; |
| |
| WINADVAPI DWORD WINAPI QueryUsersOnEncryptedFile(LPCWSTR lpFileName,PENCRYPTION_CERTIFICATE_HASH_LIST *pUsers); |
| WINADVAPI DWORD WINAPI QueryRecoveryAgentsOnEncryptedFile(LPCWSTR lpFileName,PENCRYPTION_CERTIFICATE_HASH_LIST *pRecoveryAgents); |
| WINADVAPI DWORD WINAPI RemoveUsersFromEncryptedFile(LPCWSTR lpFileName,PENCRYPTION_CERTIFICATE_HASH_LIST pHashes); |
| WINADVAPI DWORD WINAPI AddUsersToEncryptedFile(LPCWSTR lpFileName,PENCRYPTION_CERTIFICATE_LIST pUsers); |
| WINADVAPI DWORD WINAPI SetUserFileEncryptionKey(PENCRYPTION_CERTIFICATE pEncryptionCertificate); |
| WINADVAPI VOID WINAPI FreeEncryptionCertificateHashList(PENCRYPTION_CERTIFICATE_HASH_LIST pHashes); |
| WINADVAPI WINBOOL WINAPI EncryptionDisable(LPCWSTR DirPath,WINBOOL Disable); |
| WINADVAPI DWORD WINAPI DuplicateEncryptionInfoFile(LPCWSTR SrcFileName,LPCWSTR DstFileName,DWORD dwCreationDistribution,DWORD dwAttributes,CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |