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.

119 lines
2.3 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //
  4. // Copyright (c) 1996, 1997 Microsoft Corporation
  5. //
  6. //
  7. // Module Name:
  8. // test.c
  9. //
  10. // Abstract:
  11. //
  12. // This file is a test to find out if dual binding to NDIS and KS works
  13. //
  14. // Author:
  15. //
  16. // P Porzuczek
  17. //
  18. // Environment:
  19. //
  20. // Revision History:
  21. //
  22. //
  23. //////////////////////////////////////////////////////////////////////////////
  24. //
  25. //
  26. #include <forward.h>
  27. #include <memory.h>
  28. #include <ndis.h>
  29. #include <link.h>
  30. #include <ipsink.h>
  31. #include "Main.h"
  32. #include "NdisApi.h"
  33. /////////////////////////////////////////////////////////////////////////////
  34. //
  35. // Highest accepatble memory address
  36. //
  37. NDIS_HANDLE global_ndishWrapper = NULL;
  38. /////////////////////////////////////////////////////////////////////////////
  39. //
  40. // Default debug mode
  41. //
  42. ULONG TestDebugFlag = 0;
  43. //ULONG TestDebugFlag = TEST_DBG_INFO | TEST_DBG_ERROR;
  44. #ifdef DBG
  45. /////////////////////////////////////////////////////////////////////////////
  46. // Debugging definitions
  47. //
  48. //
  49. // Debug tracing defintions
  50. //
  51. #define TEST_LOG_SIZE 256
  52. UCHAR TestLogBuffer[TEST_LOG_SIZE]={0};
  53. UINT TestLogLoc = 0;
  54. /////////////////////////////////////////////////////////////////////////////
  55. //
  56. // Logging function in debug builds
  57. //
  58. extern VOID
  59. TestLog (
  60. UCHAR c // input character
  61. )
  62. /////////////////////////////////////////////////////////////////////////////
  63. {
  64. TestLogBuffer[TestLogLoc++] = c;
  65. TestLogBuffer[(TestLogLoc + 4) % TEST_LOG_SIZE] = '\0';
  66. if (TestLogLoc >= TEST_LOG_SIZE) {
  67. TestLogLoc = 0;
  68. }
  69. }
  70. #endif // DBG
  71. //////////////////////////////////////////////////////////////////////////////////////
  72. NTSTATUS
  73. DriverEntry (
  74. IN PDRIVER_OBJECT pDriverObject,
  75. IN PUNICODE_STRING pszuRegistryPath
  76. )
  77. //////////////////////////////////////////////////////////////////////////////////////
  78. {
  79. NTSTATUS ntStatus = STATUS_SUCCESS;
  80. #ifdef BREAK_ON_STARTUP
  81. _asm {int 3};
  82. #endif
  83. //
  84. // Register the NDIS binding
  85. //
  86. ntStatus = NdisDriverInitialize (pDriverObject, pszuRegistryPath, &global_ndishWrapper);
  87. if (ntStatus != STATUS_SUCCESS)
  88. {
  89. goto ret;
  90. }
  91. ret:
  92. TEST_DEBUG (TEST_DBG_TRACE, ("Driver Entry complete, ntStatus: %08X\n", ntStatus));
  93. return ntStatus;
  94. }