mirror of https://github.com/tongzx/nt5src
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.
88 lines
1.9 KiB
88 lines
1.9 KiB
/***
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
SetShare.c
|
|
|
|
Abstract:
|
|
|
|
This is a command line test utility for setting the
|
|
shareable bit on a file on a Netware server.
|
|
|
|
Author:
|
|
|
|
Cory West [corywest] 25-April-96
|
|
|
|
***/
|
|
|
|
#include "ndsapi32.h"
|
|
|
|
int
|
|
_cdecl main(
|
|
int argc,
|
|
char **argv
|
|
) {
|
|
|
|
NTSTATUS Status;
|
|
int ReturnCode = 0;
|
|
IO_STATUS_BLOCK IoStatusBlock;
|
|
HANDLE hFile;
|
|
|
|
//
|
|
// Check the command line arguments for a file.
|
|
//
|
|
|
|
if ( argc < 1 ) {
|
|
printf( "Usage: setshare [path to file]\n" );
|
|
return -1;
|
|
}
|
|
|
|
//
|
|
// Open the file.
|
|
//
|
|
|
|
hFile = CreateFile( argv[1], // file name
|
|
GENERIC_READ, // read access
|
|
0, // exclusive
|
|
NULL, // no security specifications
|
|
OPEN_EXISTING, // do not create
|
|
0, // no attributes that we care about
|
|
NULL ); // no template
|
|
|
|
if ( hFile == INVALID_HANDLE_VALUE ) {
|
|
printf( "Couldn't open the request file. Error = %08lx\n", Status );
|
|
return -1;
|
|
}
|
|
|
|
//
|
|
// Tell the redirector to set the shareable bit.
|
|
//
|
|
|
|
Status = NtFsControlFile( hFile,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
&IoStatusBlock,
|
|
FSCTL_NWR_SET_SHAREBIT,
|
|
NULL,
|
|
0,
|
|
NULL,
|
|
0 );
|
|
|
|
if ( !NT_SUCCESS( Status ) ) {
|
|
printf( "A parameter was not correct. This only works for a file\n" );
|
|
printf( "on a Netware volume. Status = %08lx\n", Status );
|
|
ReturnCode = -1;
|
|
}
|
|
|
|
CloseHandle( hFile );
|
|
|
|
//
|
|
// The bit actually gets set when you close the file.
|
|
//
|
|
|
|
return ReturnCode;
|
|
|
|
}
|