/*++ Copyright (c) 1993 Microsoft Corporation Module Name: ncpsvc.idl Abstract: This is the IDL file that describes the RPC interface for the NCP server internal APIs. Author: Yi-Hsin Sung 11-Sept-1993 Environment: User Mode -Win32 --*/ // // Interface Attributes // [ uuid(E67AB081-9844-3521-9D32-834F038001C1), version(1.0), #ifdef __midl ms_union, #endif // __midl pointer_default(unique) ] // // Interface Keyword // interface ncpsvc // // Interface Body // { import "imports.idl"; // // Handle type // typedef [handle] wchar_t * NCPSVC_HANDLE; // // Data type // typedef struct _FPNWVOLUMEINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PFPNWVOLUMEINFO Buffer; } FPNWVOLUMEINFO_CONTAINER, *PFPNWVOLUMEINFO_CONTAINER; typedef struct _NWVOLUMEINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PNWVOLUMEINFO Buffer; } NWVOLUMEINFO_CONTAINER, *PNWVOLUMEINFO_CONTAINER; typedef struct _FPNWCONNECTIONINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PFPNWCONNECTIONINFO Buffer; } FPNWCONNECTIONINFO_CONTAINER, *PFPNWCONNECTIONINFO_CONTAINER; typedef struct _NWCONNECTIONINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PNWCONNECTIONINFO Buffer; } NWCONNECTIONINFO_CONTAINER, *PNWCONNECTIONINFO_CONTAINER; typedef struct _FPNWVOLUMECONNINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PFPNWVOLUMECONNINFO Buffer; } FPNWVOLUMECONNINFO_CONTAINER, *PFPNWVOLUMECONNINFO_CONTAINER; typedef struct _NWVOLUMECONNINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PNWVOLUMECONNINFO Buffer; } NWVOLUMECONNINFO_CONTAINER, *PNWVOLUMECONNINFO_CONTAINER; typedef struct _FPNWFILEINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PFPNWFILEINFO Buffer; } FPNWFILEINFO_CONTAINER, *PFPNWFILEINFO_CONTAINER; typedef struct _NWFILEINFO_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] PNWFILEINFO Buffer; } NWFILEINFO_CONTAINER, *PNWFILEINFO_CONTAINER; // // Internal 2 structure used for passing and/or returning // self-relative security descriptors. // typedef struct _FPNWVolumeInfo_2_I { [string] LPWSTR lpVolumeName; DWORD dwType; DWORD dwMaxUses; DWORD dwCurrentUses; [string] LPWSTR lpPath; DWORD dwFileSecurityDescriptorLength; [size_is(dwFileSecurityDescriptorLength)] PUCHAR FileSecurityDescriptor; } FPNWVOLUMEINFO_2_I, *PFPNWVOLUMEINFO_2_I; typedef [switch_type(unsigned long)] union _VOLUME_INFO { // for Get & Set Info [case(1)] FPNWVOLUMEINFO VolumeInfo1; [case(2)] FPNWVOLUMEINFO_2_I VolumeInfo2; [default] ; } VOLUME_INFO, *PVOLUME_INFO, *LPVOLUME_INFO; // // Function prototype // DWORD NwrServerGetInfo( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [out] PFPNWSERVERINFO *ppServerInfo ); DWORD NwrServerSetInfo( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [in] PFPNWSERVERINFO pServerInfo ); DWORD NwrVolumeAdd( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [in, switch_is(dwLevel)] LPVOLUME_INFO pVolumeInfo ); DWORD NwrVolumeDel( [in, string, unique] NCPSVC_HANDLE pServerName, [in, string] LPWSTR pVolumeName ); DWORD NwrVolumeEnum( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [out] PFPNWVOLUMEINFO_CONTAINER pVolumeInfoContainer, [in, out, unique] PDWORD resumeHandle ); DWORD NwrVolumeGetInfo( [in, string, unique] NCPSVC_HANDLE pServerName, [in, string] LPWSTR pVolumeName, [in] DWORD dwLevel, [out, switch_is(dwLevel)] LPVOLUME_INFO *ppVolumeInfo ); DWORD NwrVolumeSetInfo( [in, string, unique] NCPSVC_HANDLE pServerName, [in, string] LPWSTR pVolumeName, [in] DWORD dwLevel, [in, switch_is(dwLevel)] LPVOLUME_INFO pVolumeInfo ); DWORD NwrConnectionEnum( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [out] PFPNWCONNECTIONINFO_CONTAINER pConnectionInfoContainer, [in, out, unique] PDWORD resumeHandle ); DWORD NwrConnectionDel( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwConnectionId ); DWORD NwrVolumeConnEnum( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [in, string, unique] LPWSTR pVolumeName, [in] DWORD dwConnectionId, [out] PFPNWVOLUMECONNINFO_CONTAINER pVolumeConnInfoContainer, [in, out, unique] PDWORD resumeHandle ); DWORD NwrFileEnum( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwLevel, [in, string, unique] LPWSTR pPathName, [out] PFPNWFILEINFO_CONTAINER pFileInfoContainer, [in, out, unique] PDWORD resumeHandle ); DWORD NwrFileClose( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwFileId ); DWORD NwrMessageBufferSend( [in, string, unique] NCPSVC_HANDLE pServerName, [in] DWORD dwConnectionId, [in] DWORD fConsoleBroadcast, [in, size_is(cbBuffer)] LPBYTE pbBuffer, [in] DWORD cbBuffer ); DWORD NwrSetDefaultQueue( [in, string, unique] NCPSVC_HANDLE pServerName, [in, string] LPWSTR pQueueName ); DWORD NwrAddPServer( [in, string, unique] NCPSVC_HANDLE pServerName, [in, string] LPWSTR pPServerName ); DWORD NwrRemovePServer( [in, string, unique] NCPSVC_HANDLE pServerName, [in, string] LPWSTR pPServerName ); }