Source code of Windows XP (NT5)
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.

83 lines
2.6 KiB

  1. Open questions:
  2. 1. Does IrXfer send anything in ANSI, forcing NT to detect whether the other guy is Unicode or ANSI?
  3. OBEX is natively Unicode, so only private header types would be ANSI.
  4. 2. How do I register a service DLL, as opposed to a service that is an EXE?
  5. There is a flag for this: SERVICE_WIN32_SHARE_PROCESS
  6. 3. What is the best way to fix the TerminateThread() logic used for timeouts?
  7. Use async reads and writes.
  8. 4. How should the client and server share files, since BUILD.EXE generates only a single executable file per directory?
  9. 5. What is the structure of the receive-file service?
  10. - it must handle IR devices coming and going
  11. - one thread would block in AcceptEx(), listening for connections
  12. ...unless we can set up an async accept() with a c/b
  13. - it would launch another thread to read the incoming data
  14. - it should show a progress bar for the user
  15. 6. What are the possibilities for sending?
  16. Here are the modules to be divided between shell extension, the service, and perhaps another program:
  17. - getting the file name (definitely part of the shell)
  18. - getting the file handle
  19. - getting the file data
  20. - sending the data
  21. - displaying the progress bar
  22. possible solutions:
  23. 1. the shell reads and sends the data itself
  24. - protocol code is in two places
  25. - two copies of progress code
  26. + the send path is simple
  27. 2. the shell opens the file, displays progress, sends data to service for transmission
  28. + a single copy of protocol code
  29. + all send UI is in the shell extension
  30. - shell <-> service communication is complex
  31. - two copies of progress code
  32. 3. the shell opens the file, displays progress; the service reads and sends data
  33. + a single copy of protocol code
  34. + all UI is in the shell extension
  35. - shell <-> service communication is complex
  36. - two copies of progress code
  37. * 4. the shell opens the file; the service reads data, sends it, and displays progress
  38. + a single copy of protocol code
  39. + a single copy of progress code
  40. + shell <-> service communication is modest
  41. - not as simple as 1.
  42. request sends an array of file names and a destination directory
  43. receives a transfer cookie
  44. checkup sends a transfer cookie and an XFER_DATA pointer
  45. receives data in the XFER_DATA
  46. close sends a transfer cookie
  47. xfer is aborted if still in progress
  48. E_ADDRINUSE at connect() means the port is bound to another device
  49. tasks:
  50. - convert to Unicode
  51. - create RPC interface
  52. - allow 64-bit file sizes