Leaked source code of windows server 2003
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.

97 lines
2.5 KiB

  1. /*++
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. vrnetb.h
  5. Abstract:
  6. Contains prototypes and definitions for Vdm netbios support routines
  7. Author:
  8. Colin Watson (colinw) 09-Dec-1991
  9. Revision History:
  10. 09-Dec-1991 colinw
  11. Created
  12. --*/
  13. //
  14. // Internal version of the ncb layout for mvdm.
  15. //
  16. #include <packon.h>
  17. //
  18. // Use packing to ensure that the cu union is not forced to word alignment.
  19. // All elements of this structure are naturally aligned.
  20. //
  21. typedef struct _NCBW {
  22. UCHAR ncb_command; /* command code */
  23. volatile UCHAR ncb_retcode; /* return code */
  24. UCHAR ncb_lsn; /* local session number */
  25. UCHAR ncb_num; /* number of our network name */
  26. PUCHAR ncb_buffer; /* address of message buffer */
  27. WORD ncb_length; /* size of message buffer */
  28. union {
  29. UCHAR ncb_callname[NCBNAMSZ];/* blank-padded name of remote */
  30. struct _CHAIN_SEND {
  31. WORD ncb_length2;
  32. PUCHAR ncb_buffer2;
  33. } ncb_chain;
  34. } cu;
  35. UCHAR ncb_name[NCBNAMSZ]; /* our blank-padded netname */
  36. UCHAR ncb_rto; /* rcv timeout/retry count */
  37. UCHAR ncb_sto; /* send timeout/sys timeout */
  38. void (*ncb_post)( struct _NCB * ); /* POST routine address */
  39. UCHAR ncb_lana_num; /* lana (adapter) number */
  40. volatile UCHAR ncb_cmd_cplt; /* 0xff => commmand pending */
  41. // Make driver specific use of the reserved area of the NCB.
  42. WORD ncb_reserved; /* return to natural alignment */
  43. union {
  44. LIST_ENTRY ncb_next; /* queued to worker thread */
  45. IO_STATUS_BLOCK ncb_iosb; /* used for Nt I/O interface */
  46. } u;
  47. HANDLE ncb_event; /* HANDLE to Win32 event */
  48. // Extra workspace utilized by the mvdm component.
  49. WORD ncb_es; /* 16 bit address of the real NCB */
  50. WORD ncb_bx;
  51. PNCB ncb_original_ncb; /* 32 bit address of the real NCB */
  52. DWORD ProtectModeNcb; /* TRUE if NCB originated in PM */
  53. } NCBW, *PNCBW;
  54. #include <packoff.h>
  55. VOID
  56. VrNetbios5c(
  57. VOID
  58. );
  59. VOID
  60. VrNetbios5cInterrupt(
  61. VOID
  62. );
  63. VOID
  64. VrNetbios5cInitialize(
  65. VOID
  66. );
  67. BOOLEAN
  68. IsPmNcbAtQueueHead(
  69. VOID
  70. );