Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

77 lines
2.3 KiB

import "unknwn.idl";
cpp_quote("DEFINE_GUID(CLSID_FileHandleCache, 0xa93b88df, 0xef9d, 0x420c, 0xb4, 0x69, 0xce, 0x07, 0x4e, 0xbe, 0x94, 0xbc);")
cpp_quote("DEFINE_GUID(IID_IFileHandleCache, 0x3017e0e1, 0x94d6, 0x4896, 0xbc, 0x57, 0xb2, 0xdf, 0x75, 0x92, 0xd1, 0x75);")
typedef struct
{
// New lock description data
//
DWORD m_dwAccess;
DWORD m_dwLockType;
DWORD m_dwLockScope;
DWORD m_dwSecondsTimeout;
[unique, string] LPWSTR m_pwszResourceString;
[unique, string] LPWSTR m_pwszOwnerComment;
} SNewLockData;
typedef struct
{
// Lock handle description
//
DWORD_PTR h;
DWORD dwProcessID;
} SLockHandleData;
[
object,
uuid(3017e0e1-94d6-4896-bc57-b2df7592d175),
pointer_default(unique)
]
interface IFileHandleCache : IUnknown {
HRESULT HrRegisterWorkerProcess([in] DWORD dwProcessId);
HRESULT HrGetGUIDString( [in] UINT cchBufferLen,
[out, size_is(cchBufferLen)] WCHAR * pwszGUIDString,
[out] UINT * pcchGUIDString);
HRESULT HrGetNewLockData([in] DWORD_PTR hFile,
[in] DWORD dwProcessId,
[in] DWORD dwSid,
[in, size_is(dwSid)] BYTE * pbSid,
[in] SNewLockData * pnld,
[in] UINT cchBufferLen,
[out, size_is(cchBufferLen)] WCHAR * pwszLockToken,
[out] UINT * pcchLockToken);
HRESULT HrGetLockData([in] LARGE_INTEGER liLockID,
[in] DWORD dwSid,
[in, size_is(dwSid)] BYTE * pbSid,
[unique, in, string] LPCWSTR pwszPath,
[in] DWORD dwTimeout,
[out] SNewLockData * pnld,
[out] SLockHandleData * plhd,
[in] UINT cchBufferLen,
[out, size_is(cchBufferLen)] WCHAR * pwszLockToken,
[out] UINT * pcchLockToken);
HRESULT HrCheckLockID([in] LARGE_INTEGER liLockID,
[in] DWORD dwSid,
[in, size_is(dwSid)] BYTE * pbSid,
[unique, in, string] LPCWSTR pwszPath);
HRESULT HrDeleteLock([in] LARGE_INTEGER liLockID);
HRESULT HrGetAllLockDataForName([unique, in, string] LPCWSTR pwszPath,
[in] DWORD dwLockType,
[out] DWORD * pdwLocksFound,
[out, size_is( , *pdwLocksFound)] SNewLockData ** ppNewLockDatas,
[out, size_is( , *pdwLocksFound)] LPWSTR ** ppwszLockTokens);
};