Windows NT 4.0 source code leak
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.

105 lines
3.3 KiB

4 years ago
  1. /*++
  2. Copyright (c) 1992 Microsoft Corporation
  3. Module Name:
  4. trans2.h
  5. Abstract:
  6. This module provides the routine headers for the routines in smbfuncs.c
  7. Author:
  8. Larry Osterman (LarryO) 19-Nov-1992
  9. Revision History:
  10. 19-Nov-1992 LarryO
  11. Created
  12. --*/
  13. #ifndef _TRANS2_
  14. #define _TRANS2_
  15. struct _TRANCEIVE2CONTEXT;
  16. typedef
  17. NTSTATUS
  18. (*PTRANSACTION_COMPLETION_ROUTINE)(
  19. IN NTSTATUS TransactionStatus,
  20. IN PVOID Context,
  21. IN struct _TRANCEIVE2CONTEXT *TransactionContext,
  22. IN PVOID OutSetup,
  23. IN CLONG OutSetupCount,
  24. IN PVOID OutParam,
  25. IN CLONG OutParamCount,
  26. IN PVOID OutData,
  27. IN CLONG OutDataLength
  28. );
  29. /*++
  30. Routine Description:
  31. This routine is called when a transaction SMB is completed.
  32. Arguments:
  33. IN PVOID OutSetup - Response setup words
  34. IN CLONG OutSetupCount - Length of response setup in bytes
  35. IN PVOID OutParam - Response parameters
  36. IN CLONG OutParameterCount - Size of response parameters in bytes
  37. IN PVOID OutData - Response data
  38. IN CLONG OutDataCount - Size of response data in bytes.
  39. Return Value:
  40. NTSTATUS - Status of request
  41. --*/
  42. //
  43. // The _Tranceive2Context structure defines all of the
  44. // information needed to complete a request at receive indication
  45. // notification time.
  46. //
  47. typedef struct _TRANCEIVE2CONTEXT {
  48. TRANCEIVE_HEADER Header; // Common header structure
  49. PIRP ReceiveIrp OPTIONAL; // IRP used for receive if specified
  50. PMPX_ENTRY MpxEntry; // MPX table used for this transaction
  51. PSECURITY_ENTRY Se; // Security entry for Trans2.
  52. ULONG TransactionStartTime; // Timeout for this tranceive exchange
  53. ULONG TransactionTimeout; // Timeout for this tranceive exchange
  54. PVOID SetupWords; // Points to setup words.
  55. ULONG MaxSetupWords; // Max # setup words.
  56. PMDL ReceiveMdl; // Points to ReceiveSmbBuffer->Mdl
  57. PMDL ParameterMdl; // Places parameters from SMB directly
  58. PMDL InParameterPartialMdl; // into callers input buffer
  59. PMDL OutParameterPartialMdl; // into callers output buffer
  60. PMDL OutDataMdl; // Places Data from SMB directly
  61. // into the callers buffer
  62. PMDL OutDataPartialMdl; // Used to tell where in the callers
  63. // data buffer the data from the SMB
  64. // is to be placed.
  65. PMDL PadMdl; // Used to discard pad bytes after
  66. // the parameters.
  67. CLONG Lsetup; // Number of setup bytes to return.
  68. CLONG Lparam; // Parameter bytes received so far
  69. CLONG ParametersExpected; // Stop when <= Lparam
  70. CLONG Ldata; // Data bytes received so far
  71. CLONG DataExpected; // Stop when <= Ldata
  72. PTRANSACTION_COMPLETION_ROUTINE Routine;
  73. PVOID CallbackContext;
  74. USHORT Flags; // Transaction flags.
  75. BOOLEAN ErrorMoreData; // One of the packets received contained
  76. // this warning.
  77. } TRANCEIVE2CONTEXT, *PTRANCEIVE2CONTEXT;
  78. #endif // _TRANS2_