Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

ndisprot.h

Go to the documentation of this file.
00001 // 00002 // Function types for NDIS_PROTOCOL_CHARACTERISTICS 00003 // 00004 00005 typedef 00006 VOID 00007 (*OPEN_ADAPTER_COMPLETE_HANDLER)( 00008 IN NDIS_HANDLE ProtocolBindingContext, 00009 IN NDIS_STATUS Status, 00010 IN NDIS_STATUS OpenErrorStatus 00011 ); 00012 00013 typedef 00014 VOID 00015 (*CLOSE_ADAPTER_COMPLETE_HANDLER)( 00016 IN NDIS_HANDLE ProtocolBindingContext, 00017 IN NDIS_STATUS Status 00018 ); 00019 00020 typedef 00021 VOID 00022 (*RESET_COMPLETE_HANDLER)( 00023 IN NDIS_HANDLE ProtocolBindingContext, 00024 IN NDIS_STATUS Status 00025 ); 00026 00027 typedef 00028 VOID 00029 (*REQUEST_COMPLETE_HANDLER)( 00030 IN NDIS_HANDLE ProtocolBindingContext, 00031 IN PNDIS_REQUEST NdisRequest, 00032 IN NDIS_STATUS Status 00033 ); 00034 00035 typedef 00036 VOID 00037 (*STATUS_HANDLER)( 00038 IN NDIS_HANDLE ProtocolBindingContext, 00039 IN NDIS_STATUS GeneralStatus, 00040 IN PVOID StatusBuffer, 00041 IN UINT StatusBufferSize 00042 ); 00043 00044 typedef 00045 VOID 00046 (*STATUS_COMPLETE_HANDLER)( 00047 IN NDIS_HANDLE ProtocolBindingContext 00048 ); 00049 00050 typedef 00051 VOID 00052 (*SEND_COMPLETE_HANDLER)( 00053 IN NDIS_HANDLE ProtocolBindingContext, 00054 IN PNDIS_PACKET Packet, 00055 IN NDIS_STATUS Status 00056 ); 00057 00058 typedef 00059 VOID 00060 (*WAN_SEND_COMPLETE_HANDLER) ( 00061 IN NDIS_HANDLE ProtocolBindingContext, 00062 IN PNDIS_WAN_PACKET Packet, 00063 IN NDIS_STATUS Status 00064 ); 00065 00066 typedef 00067 VOID 00068 (*TRANSFER_DATA_COMPLETE_HANDLER)( 00069 IN NDIS_HANDLE ProtocolBindingContext, 00070 IN PNDIS_PACKET Packet, 00071 IN NDIS_STATUS Status, 00072 IN UINT BytesTransferred 00073 ); 00074 00075 typedef 00076 VOID 00077 (*WAN_TRANSFER_DATA_COMPLETE_HANDLER)( 00078 VOID 00079 ); 00080 00081 typedef 00082 NDIS_STATUS 00083 (*RECEIVE_HANDLER)( 00084 IN NDIS_HANDLE ProtocolBindingContext, 00085 IN NDIS_HANDLE MacReceiveContext, 00086 IN PVOID HeaderBuffer, 00087 IN UINT HeaderBufferSize, 00088 IN PVOID LookAheadBuffer, 00089 IN UINT LookaheadBufferSize, 00090 IN UINT PacketSize 00091 ); 00092 00093 typedef 00094 NDIS_STATUS 00095 (*WAN_RECEIVE_HANDLER)( 00096 IN NDIS_HANDLE NdisLinkHandle, 00097 IN PUCHAR Packet, 00098 IN ULONG PacketSize 00099 ); 00100 00101 typedef 00102 VOID 00103 (*RECEIVE_COMPLETE_HANDLER)( 00104 IN NDIS_HANDLE ProtocolBindingContext 00105 ); 00106 00107 // 00108 // Protocol characteristics for down-level NDIS 3.0 protocols 00109 // 00110 typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS 00111 { 00112 UCHAR MajorNdisVersion; 00113 UCHAR MinorNdisVersion; 00114 USHORT Filler; 00115 union 00116 { 00117 UINT Reserved; 00118 UINT Flags; 00119 }; 00120 OPEN_ADAPTER_COMPLETE_HANDLER OpenAdapterCompleteHandler; 00121 CLOSE_ADAPTER_COMPLETE_HANDLER CloseAdapterCompleteHandler; 00122 union 00123 { 00124 SEND_COMPLETE_HANDLER SendCompleteHandler; 00125 WAN_SEND_COMPLETE_HANDLER WanSendCompleteHandler; 00126 }; 00127 union 00128 { 00129 TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler; 00130 WAN_TRANSFER_DATA_COMPLETE_HANDLER WanTransferDataCompleteHandler; 00131 }; 00132 00133 RESET_COMPLETE_HANDLER ResetCompleteHandler; 00134 REQUEST_COMPLETE_HANDLER RequestCompleteHandler; 00135 union 00136 { 00137 RECEIVE_HANDLER ReceiveHandler; 00138 WAN_RECEIVE_HANDLER WanReceiveHandler; 00139 }; 00140 RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler; 00141 STATUS_HANDLER StatusHandler; 00142 STATUS_COMPLETE_HANDLER StatusCompleteHandler; 00143 NDIS_STRING Name; 00144 } NDIS30_PROTOCOL_CHARACTERISTICS; 00145 00146 // 00147 // Function types extensions for NDIS 4.0 Protocols 00148 // 00149 typedef 00150 INT 00151 (*RECEIVE_PACKET_HANDLER)( 00152 IN NDIS_HANDLE ProtocolBindingContext, 00153 IN PNDIS_PACKET Packet 00154 ); 00155 00156 typedef 00157 VOID 00158 (*BIND_HANDLER)( 00159 OUT PNDIS_STATUS Status, 00160 IN NDIS_HANDLE BindContext, 00161 IN PNDIS_STRING DeviceName, 00162 IN PVOID SystemSpecific1, 00163 IN PVOID SystemSpecific2 00164 ); 00165 00166 typedef 00167 VOID 00168 (*UNBIND_HANDLER)( 00169 OUT PNDIS_STATUS Status, 00170 IN NDIS_HANDLE ProtocolBindingContext, 00171 IN NDIS_HANDLE UnbindContext 00172 ); 00173 00174 typedef 00175 NDIS_STATUS 00176 (*PNP_EVENT_HANDLER)( 00177 IN NDIS_HANDLE ProtocolBindingContext, 00178 IN PNET_PNP_EVENT NetPnPEvent 00179 ); 00180 00181 typedef 00182 VOID 00183 (*UNLOAD_PROTOCOL_HANDLER)( 00184 VOID 00185 ); 00186 00187 // 00188 // Protocol characteristics for NDIS 4.0 protocols 00189 // 00190 typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS 00191 { 00192 #ifdef __cplusplus 00193 NDIS30_PROTOCOL_CHARACTERISTICS Ndis30Chars; 00194 #else 00195 NDIS30_PROTOCOL_CHARACTERISTICS; 00196 #endif 00197 00198 // 00199 // Start of NDIS 4.0 extensions. 00200 // 00201 RECEIVE_PACKET_HANDLER ReceivePacketHandler; 00202 00203 // 00204 // PnP protocol entry-points 00205 // 00206 BIND_HANDLER BindAdapterHandler; 00207 UNBIND_HANDLER UnbindAdapterHandler; 00208 PNP_EVENT_HANDLER PnPEventHandler; 00209 UNLOAD_PROTOCOL_HANDLER UnloadHandler; 00210 00211 } NDIS40_PROTOCOL_CHARACTERISTICS; 00212 00213 00214 // 00215 // Protocol (5.0) handler proto-types - used by clients as well as call manager modules 00216 // 00217 typedef 00218 VOID 00219 (*CO_SEND_COMPLETE_HANDLER)( 00220 IN NDIS_STATUS Status, 00221 IN NDIS_HANDLE ProtocolVcContext, 00222 IN PNDIS_PACKET Packet 00223 ); 00224 00225 typedef 00226 VOID 00227 (*CO_STATUS_HANDLER)( 00228 IN NDIS_HANDLE ProtocolBindingContext, 00229 IN NDIS_HANDLE ProtocolVcContext OPTIONAL, 00230 IN NDIS_STATUS GeneralStatus, 00231 IN PVOID StatusBuffer, 00232 IN UINT StatusBufferSize 00233 ); 00234 00235 typedef 00236 UINT 00237 (*CO_RECEIVE_PACKET_HANDLER)( 00238 IN NDIS_HANDLE ProtocolBindingContext, 00239 IN NDIS_HANDLE ProtocolVcContext, 00240 IN PNDIS_PACKET Packet 00241 ); 00242 00243 typedef 00244 NDIS_STATUS 00245 (*CO_REQUEST_HANDLER)( 00246 IN NDIS_HANDLE ProtocolAfContext, 00247 IN NDIS_HANDLE ProtocolVcContext OPTIONAL, 00248 IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, 00249 IN OUT PNDIS_REQUEST NdisRequest 00250 ); 00251 00252 typedef 00253 VOID 00254 (*CO_REQUEST_COMPLETE_HANDLER)( 00255 IN NDIS_STATUS Status, 00256 IN NDIS_HANDLE ProtocolAfContext OPTIONAL, 00257 IN NDIS_HANDLE ProtocolVcContext OPTIONAL, 00258 IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, 00259 IN PNDIS_REQUEST NdisRequest 00260 ); 00261 00262 // 00263 // CO_CREATE_VC_HANDLER and CO_DELETE_VC_HANDLER are synchronous calls 00264 // 00265 typedef 00266 NDIS_STATUS 00267 (*CO_CREATE_VC_HANDLER)( 00268 IN NDIS_HANDLE ProtocolAfContext, 00269 IN NDIS_HANDLE NdisVcHandle, 00270 OUT PNDIS_HANDLE ProtocolVcContext 00271 ); 00272 00273 typedef 00274 NDIS_STATUS 00275 (*CO_DELETE_VC_HANDLER)( 00276 IN NDIS_HANDLE ProtocolVcContext 00277 ); 00278 00279 typedef 00280 VOID 00281 (*CO_AF_REGISTER_NOTIFY_HANDLER)( 00282 IN NDIS_HANDLE ProtocolBindingContext, 00283 IN PCO_ADDRESS_FAMILY AddressFamily 00284 ); 00285 00286 typedef struct _NDIS50_PROTOCOL_CHARACTERISTICS 00287 { 00288 #ifdef __cplusplus 00289 NDIS40_PROTOCOL_CHARACTERISTICS Ndis40Chars; 00290 #else 00291 NDIS40_PROTOCOL_CHARACTERISTICS; 00292 #endif 00293 00294 // 00295 // Placeholders for protocol extensions for PnP/PM etc. 00296 // 00297 PVOID ReservedHandlers[4]; 00298 00299 // 00300 // Start of NDIS 5.0 extensions. 00301 // 00302 00303 CO_SEND_COMPLETE_HANDLER CoSendCompleteHandler; 00304 CO_STATUS_HANDLER CoStatusHandler; 00305 CO_RECEIVE_PACKET_HANDLER CoReceivePacketHandler; 00306 CO_AF_REGISTER_NOTIFY_HANDLER CoAfRegisterNotifyHandler; 00307 00308 } NDIS50_PROTOCOL_CHARACTERISTICS; 00309 00310 #if NDIS50 00311 typedef NDIS50_PROTOCOL_CHARACTERISTICS NDIS_PROTOCOL_CHARACTERISTICS; 00312 #else 00313 #if NDIS40 00314 typedef NDIS40_PROTOCOL_CHARACTERISTICS NDIS_PROTOCOL_CHARACTERISTICS; 00315 #else 00316 typedef NDIS30_PROTOCOL_CHARACTERISTICS NDIS_PROTOCOL_CHARACTERISTICS; 00317 #endif 00318 #endif 00319 typedef NDIS_PROTOCOL_CHARACTERISTICS *PNDIS_PROTOCOL_CHARACTERISTICS; 00320 00321 // 00322 // Requests used by Protocol Modules 00323 // 00324 00325 EXPORT 00326 VOID 00327 NdisRegisterProtocol( 00328 OUT PNDIS_STATUS Status, 00329 OUT PNDIS_HANDLE NdisProtocolHandle, 00330 IN PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics, 00331 IN UINT CharacteristicsLength 00332 ); 00333 00334 EXPORT 00335 VOID 00336 NdisDeregisterProtocol( 00337 OUT PNDIS_STATUS Status, 00338 IN NDIS_HANDLE NdisProtocolHandle 00339 ); 00340 00341 00342 EXPORT 00343 VOID 00344 NdisOpenAdapter( 00345 OUT PNDIS_STATUS Status, 00346 OUT PNDIS_STATUS OpenErrorStatus, 00347 OUT PNDIS_HANDLE NdisBindingHandle, 00348 OUT PUINT SelectedMediumIndex, 00349 IN PNDIS_MEDIUM MediumArray, 00350 IN UINT MediumArraySize, 00351 IN NDIS_HANDLE NdisProtocolHandle, 00352 IN NDIS_HANDLE ProtocolBindingContext, 00353 IN PNDIS_STRING AdapterName, 00354 IN UINT OpenOptions, 00355 IN PSTRING AddressingInformation OPTIONAL 00356 ); 00357 00358 00359 EXPORT 00360 VOID 00361 NdisCloseAdapter( 00362 OUT PNDIS_STATUS Status, 00363 IN NDIS_HANDLE NdisBindingHandle 00364 ); 00365 00366 00367 EXPORT 00368 VOID 00369 NdisCompleteBindAdapter( 00370 IN NDIS_HANDLE BindAdapterContext, 00371 IN NDIS_STATUS Status, 00372 IN NDIS_STATUS OpenStatus 00373 ); 00374 00375 EXPORT 00376 VOID 00377 NdisCompleteUnbindAdapter( 00378 IN NDIS_HANDLE UnbindAdapterContext, 00379 IN NDIS_STATUS Status 00380 ); 00381 00382 EXPORT 00383 VOID 00384 NdisSetProtocolFilter( 00385 OUT PNDIS_STATUS Status, 00386 IN NDIS_HANDLE NdisBindingHandle, 00387 IN RECEIVE_HANDLER ReceiveHandler, 00388 IN RECEIVE_PACKET_HANDLER ReceivePacketHandler, 00389 IN NDIS_MEDIUM Medium, 00390 IN UINT Offset, 00391 IN UINT Size, 00392 IN PUCHAR Pattern 00393 ); 00394 00395 EXPORT 00396 VOID 00397 NdisOpenProtocolConfiguration( 00398 OUT PNDIS_STATUS Status, 00399 OUT PNDIS_HANDLE ConfigurationHandle, 00400 IN PNDIS_STRING ProtocolSection 00401 ); 00402 00403 EXPORT 00404 VOID 00405 NdisGetDriverHandle( 00406 IN NDIS_HANDLE NdisBindingHandle, 00407 OUT PNDIS_HANDLE NdisDriverHandle 00408 ); 00409 00410 EXPORT 00411 VOID 00412 NdisReEnumerateProtocolBindings( 00413 IN NDIS_HANDLE NdisProtocolHandle 00414 ); 00415 00416 EXPORT 00417 NDIS_STATUS 00418 NdisWriteEventLogEntry( 00419 IN PVOID LogHandle, 00420 IN NDIS_STATUS EventCode, 00421 IN ULONG UniqueEventValue, 00422 IN USHORT NumStrings, 00423 IN PVOID StringsList OPTIONAL, 00424 IN ULONG DataSize, 00425 IN PVOID Data OPTIONAL 00426 ); 00427 00428 // 00429 // The following routine is used by transports to complete pending 00430 // network PnP events. 00431 // 00432 EXPORT 00433 VOID 00434 NdisCompletePnPEvent( 00435 IN NDIS_STATUS Status, 00436 IN NDIS_HANDLE NdisBindingHandle, 00437 IN PNET_PNP_EVENT NetPnPEvent 00438 ); 00439 00440 // 00441 // The following routine is used by a transport to query the localized 00442 // friendly instance name of the adapter that they are bound to. There 00443 // are two variations of this, one uses the binding handle and the other 00444 // the binding context. Some transports need this before they bind - like 00445 // TCP/IP for instance. 00446 // 00447 EXPORT 00448 NDIS_STATUS 00449 NdisQueryAdapterInstanceName( 00450 OUT PNDIS_STRING pAdapterInstanceName, 00451 IN NDIS_HANDLE NdisBindingHandle 00452 ); 00453 00454 EXPORT 00455 NDIS_STATUS 00456 NdisQueryBindInstanceName( 00457 OUT PNDIS_STRING pAdapterInstanceName, 00458 IN NDIS_HANDLE BindingContext 00459 ); 00460 00461 // 00462 // The following is used by TDI/NDIS interface as part of Network PnP. 00463 // For use by TDI alone. 00464 // 00465 typedef 00466 NTSTATUS 00467 (*TDI_REGISTER_CALLBACK)( 00468 IN PUNICODE_STRING DeviceName, 00469 OUT HANDLE * TdiHandle 00470 ); 00471 00472 typedef 00473 NTSTATUS 00474 (*TDI_PNP_HANDLER)( 00475 IN PUNICODE_STRING UpperComponent, 00476 IN PUNICODE_STRING LowerComponent, 00477 IN PUNICODE_STRING BindList, 00478 IN PVOID ReconfigBuffer, 00479 IN UINT ReconfigBufferSize, 00480 IN UINT Operation 00481 ); 00482 00483 EXPORT 00484 VOID 00485 NdisRegisterTdiCallBack( 00486 IN TDI_REGISTER_CALLBACK RegsterCallback, 00487 IN TDI_PNP_HANDLER PnPHandler 00488 ); 00489 00490 EXPORT 00491 VOID 00492 NdisRegisterTdiPnpHandler( 00493 IN TDI_PNP_HANDLER PnPHandler 00494 ); 00495 00496 #if BINARY_COMPATIBLE 00497 00498 VOID 00499 NdisSend( 00500 OUT PNDIS_STATUS Status, 00501 IN NDIS_HANDLE NdisBindingHandle, 00502 IN PNDIS_PACKET Packet 00503 ); 00504 00505 VOID 00506 NdisSendPackets( 00507 IN NDIS_HANDLE NdisBindingHandle, 00508 IN PPNDIS_PACKET PacketArray, 00509 IN UINT NumberOfPackets 00510 ); 00511 00512 VOID 00513 NdisTransferData( 00514 OUT PNDIS_STATUS Status, 00515 IN NDIS_HANDLE NdisBindingHandle, 00516 IN NDIS_HANDLE MacReceiveContext, 00517 IN UINT ByteOffset, 00518 IN UINT BytesToTransfer, 00519 IN OUT PNDIS_PACKET Packet, 00520 OUT PUINT BytesTransferred 00521 ); 00522 00523 VOID 00524 NdisReset( 00525 OUT PNDIS_STATUS Status, 00526 IN NDIS_HANDLE NdisBindingHandle 00527 ); 00528 00529 VOID 00530 NdisRequest( 00531 OUT PNDIS_STATUS Status, 00532 IN NDIS_HANDLE NdisBindingHandle, 00533 IN PNDIS_REQUEST NdisRequest 00534 ); 00535 00536 #else // BINARY_COMPATIBLE 00537 00538 #define NdisSend(Status, NdisBindingHandle, Packet) \ 00539 { \ 00540 *(Status) = \ 00541 (((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->SendHandler)( \ 00542 ((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->MacBindingHandle, \ 00543 (Packet)); \ 00544 } 00545 00546 #define NdisSendPackets(NdisBindingHandle, PacketArray, NumberOfPackets) \ 00547 { \ 00548 (((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->SendPacketsHandler)( \ 00549 (PNDIS_OPEN_BLOCK)(NdisBindingHandle), \ 00550 (PacketArray), \ 00551 (NumberOfPackets)); \ 00552 } 00553 00554 #define WanMiniportSend(Status, \ 00555 NdisBindingHandle, \ 00556 NdisLinkHandle, \ 00557 WanPacket) \ 00558 { \ 00559 *(Status) = \ 00560 ((((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->WanSendHandler))( \ 00561 ((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->MacBindingHandle, \ 00562 (NdisLinkHandle), \ 00563 (PNDIS_PACKET)(WanPacket)); \ 00564 } 00565 00566 #define NdisTransferData(Status, \ 00567 NdisBindingHandle, \ 00568 MacReceiveContext, \ 00569 ByteOffset, \ 00570 BytesToTransfer, \ 00571 Packet, \ 00572 BytesTransferred) \ 00573 { \ 00574 *(Status) = \ 00575 (((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->TransferDataHandler)( \ 00576 ((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->MacBindingHandle, \ 00577 (MacReceiveContext), \ 00578 (ByteOffset), \ 00579 (BytesToTransfer), \ 00580 (Packet), \ 00581 (BytesTransferred)); \ 00582 } 00583 00584 00585 #define NdisReset(Status, NdisBindingHandle) \ 00586 { \ 00587 *(Status) = \ 00588 (((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->ResetHandler)( \ 00589 ((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->MacBindingHandle); \ 00590 } 00591 00592 #define NdisRequest(Status, NdisBindingHandle, NdisRequest) \ 00593 { \ 00594 *(Status) = \ 00595 (((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->RequestHandler)( \ 00596 ((PNDIS_OPEN_BLOCK)(NdisBindingHandle))->MacBindingHandle, \ 00597 (NdisRequest)); \ 00598 } 00599 00600 #endif // BINARY_COMPATIBLE 00601 00602 // 00603 // Routines to access packet flags 00604 // 00605 00606 /*++ 00607 00608 VOID 00609 NdisSetSendFlags( 00610 IN PNDIS_PACKET Packet, 00611 IN UINT Flags 00612 ); 00613 00614 --*/ 00615 00616 #define NdisSetSendFlags(_Packet,_Flags) (_Packet)->Private.Flags = (_Flags) 00617 00618 /*++ 00619 00620 VOID 00621 NdisQuerySendFlags( 00622 IN PNDIS_PACKET Packet, 00623 OUT PUINT Flags 00624 ); 00625 00626 --*/ 00627 00628 #define NdisQuerySendFlags(_Packet,_Flags) *(_Flags) = (_Packet)->Private.Flags 00629 00630 // 00631 // The following is the minimum size of packets a miniport must allocate 00632 // when it indicates packets via NdisMIndicatePacket or NdisMCoIndicatePacket 00633 // 00634 #define PROTOCOL_RESERVED_SIZE_IN_PACKET (4 * sizeof(PVOID)) 00635 00636 EXPORT 00637 VOID 00638 NdisReturnPackets( 00639 IN PNDIS_PACKET * PacketsToReturn, 00640 IN UINT NumberOfPackets 00641 ); 00642 00643 EXPORT 00644 PNDIS_PACKET 00645 NdisGetReceivedPacket( 00646 IN NDIS_HANDLE NdisBindingHandle, 00647 IN NDIS_HANDLE MacContext 00648 ); 00649 00650 // 00651 // Macros to portably manipulate NDIS buffers. 00652 // 00653 #if BINARY_COMPATIBLE 00654 00655 EXPORT 00656 ULONG 00657 NdisBufferLength( 00658 IN PNDIS_BUFFER Buffer 00659 ); 00660 00661 EXPORT 00662 PVOID 00663 NdisBufferVirtualAddress( 00664 IN PNDIS_BUFFER Buffer 00665 ); 00666 00667 #else // BINARY_COMPATIBLE 00668 00669 #ifdef NDIS_NT 00670 #define NdisBufferLength(Buffer) MmGetMdlByteCount(Buffer) 00671 #define NdisBufferVirtualAddress(_Buffer) MmGetSystemAddressForMdl(_Buffer) 00672 #define NdisBufferVirtualAddressSafe(_Buffer, _Priority) MmGetSystemAddressForMdlSafe(_Buffer, _Priority) 00673 #else 00674 #define NdisBufferLength(_Buffer) (_Buffer)->Length 00675 #define NdisBufferVirtualAddress(_Buffer) (_Buffer)->VirtualAddress 00676 #define NdisBufferVirtualAddressSafe(_Buffer, _Priority) (_Buffer)->VirtualAddress 00677 #endif 00678 00679 #endif // BINARY_COMPATIBLE 00680 00681 

Generated on Sat May 15 19:40:56 2004 for test by doxygen 1.3.7