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.

73 lines
1.3 KiB

  1. /*++
  2. Copyright (C) Microsoft Corporation, 1996 - 1999
  3. Module Name:
  4. smcnt.h
  5. Abstract:
  6. This files inlcudes the Windows NT specific data structure
  7. for the smart card library
  8. Environment:
  9. Kernel mode only.
  10. Notes:
  11. Revision History:
  12. - Created December 1996 by Klaus Schutz
  13. --*/
  14. #define SMCLIB_NT 1
  15. typedef struct _OS_DEP_DATA {
  16. // Pointer to the device object (Must be set by driver)
  17. PDEVICE_OBJECT DeviceObject;
  18. //
  19. // This is the current Irp to be processed
  20. // Use OsData->SpinLock to access this member
  21. //
  22. PIRP CurrentIrp;
  23. //
  24. // Irp to be notified of card insertion/removal
  25. // Use OsData->SpinLock to access this member
  26. //
  27. PIRP NotificationIrp;
  28. // Used to synchronize access to the driver
  29. KMUTANT Mutex;
  30. // Use this spin lock to access protected members (see smclib.h)
  31. KSPIN_LOCK SpinLock;
  32. struct {
  33. BOOLEAN Removed;
  34. LONG RefCount;
  35. KEVENT RemoveEvent;
  36. LIST_ENTRY TagList;
  37. } RemoveLock;
  38. #ifdef DEBUG_INTERFACE
  39. PDEVICE_OBJECT DebugDeviceObject;
  40. #endif
  41. } OS_DEP_DATA, *POS_DEP_DATA;
  42. #ifdef POOL_TAGGING
  43. #ifndef ExAllocatePool
  44. #error ExAllocatePool not defined
  45. #endif
  46. #undef ExAllocatePool
  47. #define ExAllocatePool(a,b) ExAllocatePoolWithTag(a,b, SMARTCARD_POOL_TAG)
  48. #endif