/[rdesktop]/sourceforge.net/trunk/rdesktop/rdpdr.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/rdpdr.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 650 by astrand, Thu Apr 15 20:11:19 2004 UTC revision 660 by astrand, Fri Apr 16 12:20:56 2004 UTC
# Line 1  Line 1 
1    /* -*- c-basic-offset: 8 -*-
2       rdesktop: A Remote Desktop Protocol client.
3       Copyright (C) Matthew Chapman 1999-2004
4    
5       This program is free software; you can redistribute it and/or modify
6       it under the terms of the GNU General Public License as published by
7       the Free Software Foundation; either version 2 of the License, or
8       (at your option) any later version.
9    
10       This program is distributed in the hope that it will be useful,
11       but WITHOUT ANY WARRANTY; without even the implied warranty of
12       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13       GNU General Public License for more details.
14    
15       You should have received a copy of the GNU General Public License
16       along with this program; if not, write to the Free Software
17       Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18    */
19    
20    /*
21      Here are some resources, for your IRP hacking pleasure:
22    
23      http://cvs.sourceforge.net/viewcvs.py/mingw/w32api/include/ddk/winddk.h?view=markup
24    
25      http://win32.mvps.org/ntfs/streams.cpp
26    
27      http://www.acc.umu.se/~bosse/ntifs.h
28    
29      http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/File/
30    
31      http://us1.samba.org/samba/ftp/specs/smb-nt01.txt
32    
33      http://www.osronline.com/
34    */
35    
36  #include <unistd.h>  #include <unistd.h>
37  #include <sys/types.h>  #include <sys/types.h>
38  #include <sys/time.h>  #include <sys/time.h>
# Line 34  uint32 g_num_devices; Line 69  uint32 g_num_devices;
69    
70  /* Table with information about rdpdr devices */  /* Table with information about rdpdr devices */
71  RDPDR_DEVICE g_rdpdr_device[RDPDR_MAX_DEVICES];  RDPDR_DEVICE g_rdpdr_device[RDPDR_MAX_DEVICES];
72  char * g_rdpdr_clientname = NULL;  char *g_rdpdr_clientname = NULL;
73    
74  /* Used to store incoming io request, until they are ready to be completed */  /* Used to store incoming io request, until they are ready to be completed */
75  /* using a linked list ensures that they are processed in the right order, */  /* using a linked list ensures that they are processed in the right order, */
# Line 167  rdpdr_send_name(void) Line 202  rdpdr_send_name(void)
202          STREAM s;          STREAM s;
203          uint32 hostlen;          uint32 hostlen;
204    
205          if (NULL == g_rdpdr_clientname) {          if (NULL == g_rdpdr_clientname)
206            g_rdpdr_clientname = hostname;          {
207                    g_rdpdr_clientname = hostname;
208          }          }
209          hostlen = (strlen(g_rdpdr_clientname) + 1) * 2;          hostlen = (strlen(g_rdpdr_clientname) + 1) * 2;
210    
# Line 622  rdpdr_process_irp(STREAM s) Line 658  rdpdr_process_irp(STREAM s)
658                          result = buffer_len = out.p - out.data;                          result = buffer_len = out.p - out.data;
659                          break;                          break;
660    
661    
662                    case IRP_MJ_LOCK_CONTROL:
663    
664                            if (g_rdpdr_device[device].device_type != DEVICE_TYPE_DISK)
665                            {
666                                    status = STATUS_INVALID_HANDLE;
667                                    break;
668                            }
669    
670                            in_uint32_le(s, info_level);
671    
672                            out.data = out.p = buffer;
673                            out.size = sizeof(buffer);
674                            /* FIXME: Perhaps consider actually *do*
675                               something here :-) */
676                            status = STATUS_SUCCESS;
677                            result = buffer_len = out.p - out.data;
678                            break;
679    
680                  default:                  default:
681                          unimpl("IRP major=0x%x minor=0x%x\n", major, minor);                          unimpl("IRP major=0x%x minor=0x%x\n", major, minor);
682                          break;                          break;

Legend:
Removed from v.650  
changed lines
  Added in v.660

  ViewVC Help
Powered by ViewVC 1.1.26