|
|
|
Microsoft Win32 API calls
supported by
Network Appliance filers
|
|
|
The following Win32 API calls are supported on Network Appliance filers running
CIFS. This list is Network Appliance confidential. Third parties may not share
it with other 3rd parties.
Caution: While we have attempted to be complete here, this
is almost certainly a partial listing. There is no one-to-one relationship between
Win32 APIs and the calls the filer sees on the wire from the client, so it is
difficult to enumerate for sure all the APIs that work. The best way to tell
if a routine not mentioned here is supported is to add a call to it into previously
working code, and see if the call succeeds or not. Please send any needed corrections
you may discover to sdk-feedback@netapp.com.
The authoritative source of information for every routine mentioned herein
is the MSDN article(s) pertaining to that routine. Failure of the filer to
obey the semantics given in Microsoft's documentation is nearly always a bug,
and should be reported as such.
Note: Win32 and Windows are trademarks of Microsoft Corporation.
| Win32
routines |
Native Win32 calls |
| |
CreateFile |
Open (or create) a file |
| |
CreateFileForMapping |
Open a file for memory mapping. This call looks to the server like
CreateFile(); the client does the memory mapping. There are numerous
other routines related to memory mapping not listed here. |
| |
CloseHandle |
Close a stream |
| |
CopyFile |
Copy a file |
| |
CopyFileEx |
Extended copy |
| |
CreateDirectory |
Create a directory |
| |
CreateDirectoryEx |
Extended directory create |
| |
DeleteFile |
Delete a file |
| |
FlushFileBuffers |
Flush a file's memory buffers to disk |
| |
GetDiskFreeSpace |
Get info about a logical drive, which might possibly be a network
drive mounted on a remote server |
| |
GetDiskFreeSpaceEx |
|
| |
GetFileAttributes |
Get file attributes |
| |
GetFileAttributesEx |
|
| |
GetFileInformationByHandle |
Get info about a file from its HANDLE |
| |
GetFileSecurity |
Get NT file permissions (ACEs on an ACL, i.e. Access Control Entries
on an Access Control List) |
| |
GetFileSize |
Size of file |
| |
GetFileSizeEx |
|
| |
LockFile |
Lock a range or all of a file |
| |
LockFileEx |
|
| |
MoveFile |
Move a file from one place to another, swapping pointers if possible
and copying if necessary |
| |
MoveFileEx |
|
| |
MoveFileWithProgress |
The client actually does the progress indication based on the write
size and what GetFileSize() says the amount to be written is |
| |
ReadDirectoryChangesW |
Set change-notify status on a directory |
| |
ReadFile |
Read part or all of a file |
| |
ReadFileEx |
|
| |
ReadFileScatter |
|
| |
RemoveDirectory |
Remove an empty directory |
| |
ReplaceFile |
Replace one file with another, possibly backing up the replaced file
first |
| |
SetFileAttributes |
File setattr |
| |
SetFileSecurity |
Set NT file permissions (ACEs on an ACL, i.e. Access Control Entries
on an Access Control List) |
| |
SetFileShortName |
Set the DOS 8.3 name of a file |
| |
UnlockFile |
Unlock a byte range or whole file lock |
| |
UnlockFileEx |
|
| |
WriteFile |
Write to a file |
| |
WriteFileEx |
|
| |
WriteFileGather |
|
| FILE*
routines |
ANSI calls FILE*s
"streams". These are not the same thing as NTFS streams,
though an NTFS stream may be opened as an ANSI stream by using <filename>:<streamname>
notation. |
| |
fopen |
_tfopen |
_wfopen |
Open (or create) a file |
| |
freopen |
_tfreopen |
_wfreopen |
Reassign a file pointer |
| |
fclose |
_tfclose |
_wfclose |
Close a stream |
| |
_fcloseall |
|
|
Close all open streams |
| |
|
_tfdopen |
_wfdopen |
Associate a stream with a file that was previously opened for low-level
I/O |
| |
fsetpos |
|
|
Set the stream-position indicator |
| |
fread |
|
|
Read data from a stream (an ANSI stream, a FILE*, not an NTFS stream) |
| |
fwrite |
|
|
Write data to a stream |
| |
fgetc |
_fgettc |
fgetwc |
Get a character from a stream |
| |
fputc |
_fputtc |
fputwc |
Put a character to a stream |
| |
fgets |
_fgetts |
fgetws |
Get a string from a stream |
| |
rewind |
|
|
Reset the file pointer to the beginning of the file |
| |
fprintf |
_ftprintf |
fwprintf |
Formatted print to file |
| |
vfprintf |
_vftprintf |
vfwprintf |
Formatted print to file using varargs list |
| |
fflush |
|
|
Flush stream buffers to file |
| |
_flushall |
|
|
Flush all open streams |
| |
fseek |
|
|
Set file pointer to a specified position |
| |
_fdopen |
_tfdopen |
_wfdopen |
Associate a stream with a file previously opened for low-level I/O |
| |
_popen |
_tpopen |
_wpopen |
Open a pipe |
| |
_sopen |
_tsopen |
_wsopen |
Open a file for sharing |
| |
_fsopen |
_tfsopen |
_wfsopen |
Open a stream for sharing |
| Filehandle routines |
|
|
| |
_creat |
_tcreat |
_wcreat |
Create a file |
| |
_read |
|
|
Read from a file |
| |
_write |
|
|
Write to a file |
| |
_close |
|
|
Close a file |
| |
_lseek |
|
|
Seek to a specified offset |
| |
_lseeki64 |
|
|
Seek to a 64-bit offset |
| |
_tell |
|
|
Get current file offset |
| |
_telli64 |
|
|
Get offset as a 64-bit integer (__int64) |
| |
_filelength |
|
|
Get length of file |
| |
_filelengthi64 |
|
|
Get length of file as 64-bit integer |
| |
_fstat |
|
|
Get stat info about file |
| |
_fstat64 |
|
|
"" |
| |
_fstati64 |
|
|
"" |
| |
_chsize |
|
|
Truncate file, or extend and pad with zeroes |
| File management routines |
|
| |
_mkdir |
_tmkdir |
_wmkdir |
Create a directory |
| |
_rmdir |
_trmdir |
_wrmdir |
Remove a directory |
| |
rename |
_trename |
_wrename |
Rename a file or directory |
| |
_unlink |
_tunlink |
_wunlink |
Delete a file |
| |
remove |
_tremove |
_wremove |
Delete a file |
| |
_stat |
_tstat |
_wstat |
Get file stats |
| |
_stat64 |
_tstat64 |
_wstat64 |
"" |
| |
_stati64 |
_tstati64 |
_wstati64 |
"" |
| |
_access |
_taccess |
_waccess |
Set POSIX file perms |
| |
_chmod |
_tchmod |
_wchmod |
Set POSIX file perms |
| Search routines |
|
| |
FindFirstFile |
|
|
Find a file using a possibly wildcarded pattern |
| |
FindFirstFileEx |
|
|
Search on attributes as well as filename |
| |
FindNextFile |
|
|
Continue a file search |
| |
FindClose |
|
|
Release buffers used by FindFirst and FindNext |
| |
_findfirst |
_tfindfirst |
_wfindfirst |
Similar to FindFirstFile |
| |
_findfirst64 |
_tfindfirst64 |
_wfindfirst64 |
64-bit version |
| |
_findfirsti64 |
_tfindfirsti64 |
_wfindfirsti64 |
yet another 64-bit version |
| |
_findnext |
_tfindnext |
_wfindnext |
Similar to FindNextFile |
| |
_findnext64 |
_tfindnext64 |
_wfindnext64 |
64-bit version |
| |
_findnexti64 |
_tfindnexti64 |
_wfindnexti64 |
yet another 64-bit version |
| |
_findclose |
|
|
Similar to FindClose |
| Miscellaneous routines |
|
| |
_pipe |
|
|
Set up a pair of pipes for reading and writing (used prior to forking) |
| |
_getdiskfree |
|
|
Get freespace info for a logical drive |
| Obsolete routines |
These routines are used for backward compatibility with
Win16 clients |
| |
_hread, _hwrite, _lclose, _lcreat, _lfind,
_llseek, _lopen, _lread, _lwrite, OpenFile |
| |
|
LsaClose |
|
see Microsoft documentation |
| |
|
LsaOpenPolicy |
|
|
| |
|
LsaQueryInformationPolicy |
|
|
| |
|
LsaEnumerateTrustedDomains |
|
|
| |
|
LsaLookupNames |
|
|
| |
|
LsaLookupSids |
|
|
| |
|
LsaEnumerateAccountRights |
|
|
| |
|
LsaOpenPolicy |
|
|
| |
|
LsaGetUserName |
|
|
| |
|
LsaLookupNames2 |
ONTAP 7g |
|
| OpenPrinter |
The filer simply returns NULL here, signifying that it
doesn't have any printers |
| |
|
NetConnectionEnum |
| |
|
NetFileEnum |
| |
|
NetFileGetInfo |
| |
|
NetFileClose |
| |
|
NetSessionEnum |
| |
|
NetSessionDel |
| |
|
NetShareAdd |
| |
|
NetShareEnum |
| |
|
NetShareGetInfo |
| |
|
NetShareSetInfo |
| |
|
NetShareDel |
| |
|
NetServerGetInfo |
| |
|
NetServerSetInfo |
| |
|
NetServerDiskEnum |
| |
|
NetServerTransportAdd |
| |
|
NetServerTransportEnum |
| |
|
NetServerTransportDel |
| |
|
NetRemoteTOD |
| |
|
NetValidateName |
Local groups
| |
NetLocalGroupEnum |
| |
NetLocalGroupGetInfo |
| |
NetLocalGroupGetMembers |
| |
NetLocalGroupAddMembers |
| |
NetLocalGroupDelMembers |
| |
NetLocalGroupSetMembers |
| |
NetLocalGroupAdd |
| |
NetLocalGroupDel |
Local users (a maximum of 99 local users are permitted).
| |
NetQueryDisplayInformation |
Note: this call works only for users, not for machines
or groups |
| |
NetUserGetInfo |
Information level 0 only |
| |
NetUserGetGroups |
|
The filer supports the Service Manager just enough to tell Windows systems
that no services are running.
|
|
CloseServiceHandle |
| |
|
OpenSCManager |
| |
|
OpenService |
|
|
NetWkstaGetInfo levels 101, 102 in DOT 6.2, level
100 only in prior releases |
| Registry Manipulation routines |
| |
|
RegOpenKeyEx |
| |
|
RegCloseKey |
| |
|
RegCreateKey |
| |
|
RegDeleteKey |
| |
|
RegDeleteValue |
| |
|
RegEnumKey |
| |
|
RegEnumValue |
| |
|
RegFlushKey |
| |
|
RegGetKeySecurity |
| |
|
RegLoadKey |
| |
|
RegOpenKey |
| |
|
RegQueryInfoKey |
| |
|
RegQueryValue |
| |
|
RegReplaceKey |
| |
|
RegRestoreKey |
| |
|
RegSaveKey |
| |
|
RegSetKeySecurity |
| |
|
RegSetValue |
| |
|
RegUnLoadKey |
| |
|
RegGetVersion |