Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ağ İzleyicisi, tanınan bir veri parçasında bulunan özellikleri eşlemek için AttachProperties işlevini çağırır. AttachProperties işlevi özellikleri belirli bir konuma eşler.
Ağ İzleyicisi, bir çerçevedeki verileri ayrıştırmak için aşağıdaki işlemi kullanır.
- İlk olarak, Ağ İzleyicisi bir çerçevede var olan tüm protokolleri tanımak için RecognizeFrame çağırır.
- Ardından Ağ İzleyicisi, bir veri parçasını tanıyan her ayrıştırıcı için AttachPropertiesçağırır.
Ağ İzleyicisi, tanınan veriler için AttachProperties işlevini çağırdığında, çağrılan ayrıştırıcının verileri ayrıştırması ve ardından mevcut her özelliği tanınan verilerdeki bir konuma eşlemesi gerekir. Ayrıştırıcı hangi özelliklerin mevcut olduğunu ve her özelliğin verilerde nerede bulunduğunu belirler. Aşağıdaki şekilde ayrıştırıcı tarafından tanınan veriler gösterilmektedir.
AttachPropertiesuygulaması sırasında, bir veri çerçevesinde bulunan her özellik için aşağıdaki işlevlerden birini çağırmanız gerekir.
- Bir çerçevedeki özellik verilerini değiştirmek istediğinizde AttachPropertyInstanceEx işlevini çağırın.
- Bir çerçevedeki özellik verilerini değiştirmek istemediğinizde AttachPropertyInstance işlevini çağırın.
Not
Yakalamada var olan verileri kullanmanız önerilir.
Aşağıdaki yordam, AttachPropertiesuygulamak için gereken adımları tanımlar.
AttachProperties'yi uygulamak için
- Hangi özelliklerin mevcut olduğunu ve verilerdeki özellik konumunu belirleyin.
- Değiştirmek istediğiniz bir değere sahip her özellik için AttachPropertyInstanceEx çağırın.
- Değiştirmek istemediğiniz bir değere sahip her özellik için AttachPropertyInstance çağırın. Genellikle, çağırmanız gereken tek işlev budur.
Aşağıda, AttachPropertiestemel bir uygulaması yer alır. Örnekte hangi özelliklerin mevcut olduğunu belirleyen kodun veya özelliklerin bulunacağı kodun bulunmadığını unutmayın.
#include <windows.h>
LPBYTE BHAPI MyProtocolAttachProperties( HFRAME hFrame,
LPBYTE pMacFrame,
LPBYTE pBLRPLATEFrame,
DWORD MacType,
DWORD BytesLeft,
HPROTOCOL hPreviousProtocol,
DWORD nPrevProtocolOffset,
DWORD InstData)
{
PBLRPLATEHDR pBLRPLATEHdr = (PBLRPLATEHDR)pBLRPLATEFrame;
// Attach summary property.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_SUMMARY].hProperty,
(WORD)BytesLeft,
(LPBYTE)pBLRPLATEFrame,
0, // No Help file.
0, // Indent level.
0); // Data flag.
// Attach signature property.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_SIGNATURE].hProperty,
sizeof(DWORD),
&(pBLRPLATEHdr->Signature),
0, // No Help file.
1, // Indent level.
0); // Data flag.
// Attach opcode.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_OPCODE].hProperty,
sizeof(WORD),
&(pBLRPLATEHdr->Opcode),
0, // No Help file.
1, // Indent level.
0); // Data flag.
// Attach flags summary.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_FLAGS_SUMMARY].hProperty,
sizeof(BYTE),
&(pBLRPLATEHdr->Flags),
0, // No Help file.
1, // Indent level.
0); // Data flag.
// Attach flags decode.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_FLAGS_FLAGS].hProperty,
sizeof(BYTE),
&(pBLRPLATEHdr->Flags),
0, // No Help file.
2, // Indent level.
0); // Data flag.
RETURN null;
}